یکشنبه, ۹ اردیبهشت, ۱۴۰۳ / 28 April, 2024
مجله ویستا

ایجاد ramdisk یا درایومجازی در لینوکس


ایجاد ramdisk یا درایومجازی در لینوکس
● آشنائی با ramdisk :
در این مقاله ابتدا سعی میكنم شما را با مفاهیم اولیه ramdisk یا درایو مجازی آشنا كنم . ابتدا باید بدانیم كه ramdisk قسمتی از حافظه ram‌ سیستم است كه شما آنرا بصورتی آدرس دهی میكنید كه مجازا" بصورت یك پارتیشن هارد دیسك عمل كند . به عبارت دیگر شما قسمتی از حافظه رم سیستم خودرا كه دارای سرعتی چندین برابر بیشتر از هارد دیسك شماست در اختیار میگیرید و به سیستم میگوئید كه اینگونه وانمود كند كه این بخش یك پارتیشن اضافی در كنار هارد دیسك شماست و از آن درست مثل هارد دیسك ولی با توان و سرعت بسیار بالاتر استفاده كند .
توجه داشته باشید كه ramdisk همانطوریكه از نام آن پیداست در قسمتی از حافظه ram ایجاد شده و به محض راه اندازی مجدد یا خاموش كردن كامپیوتر اطلاعات آن بكلی پاك میشود و نباید از آن برای ذخیره كردن اطلاعات دائمی مثل اسناد متنی یا فایلهای پیكربندی سیستم ویا برنامه‌های كاربردی استفاده كرد.
سئوالی كه اینجا مطرح میشود این است كه با این اوصاف پس مورد استفاده ramdisk چیست و چرا باید از آن به نحو شایسته استفاده كرد .
پاسخ این است كه در برخی برنامه های كاربردی مثل مرورگرها یا سرورهای وب و حتی خود سیستمهای عامل همیشه قسمتی از اطلاعات موقتی برنامه ها به اصطلاح cache یا موقتا ذخیره میشوند و سرعت ذخیره و بازیابی این اطلاعات در سرعت و كارائی برنامه كاربردی بسیار موثر است . و اینجاست كه با مسیر دهی محل ذخیره سازی این فایلهای موقت در محل ایجاد شده تحت عنوان ramdisk‌ و بهره گیری از سرعت بسیار بالا و توان عملیاتی ram میتوان به كارائی مطلوب سیستمی دست یافت .
در برخی موارد در صورت استفاده صحیح از ramdisk‌ ارتقاء كارائی سیستم به حدی چشمگیر خواهد بود كه درست مثل یك ارتقاء سخت افزاری گران قیمت و البته در اینجا بدون هیچ هزینه جانبی ما را به performance مطلوب و مورد نظرمان نزدیك میكند .
● ایجاد ramdisk در لینوكس :
معمولا هسته كرنل همه توزیعهای لینوكس موجود از ramdisk بصورت پیش گزیده built-in‌ پشتیبانی میكنند و ایجاد ramdisk در این شرایط بسیار ساده و به شرح زیر میباشد :
ابتدا یك دایركتوری یا mount point به نام ramdisk۰ برای استقرا ramdisk ‌ در مسیر /tmp ایجاد میكنیم :
▪mkdir /tmp/ramdisk۰
سپس یك فایل سیستم فرمت ext۲ با نام ram۰‌ در مسیر /dev ایجاد میكنیم :
▪ mke۲fs /dev/ram۰
در ادامه باید فایل سیستم ایجاد شده را در مسیر mount point ایجاد شده الصاق یا به اصطلاح mount كنیم :
▪ mount /dev/ram۰ /tmp/ramdisk۰
این دستورات فایل سیستم مناسب را بر روی قسمتی از فضای ram برای شما ایجاد و آنرا فرمت كرده و در درایوی با نام ramdisk۰‌ برای استفاده شما محیا میكند .
حال میتوانید از دایركتوری /tmp/ramdisk۰ درست مثل یك پارتیشن هارد دیسك استفاده كنید .
اندازه ramdisk‌ بطور پیش فرض ۴ مگابایت تعریف میشود ولی در صورتی كه بخواهید اندازه آنرا به دلخواه تعیین كنید بایستی دستور زیر را به فایل تنظیمات بوت لودر LILO با نام /etc/boot/lilo.conf اضافه كنید :
ramdisk_size=۱۰۰۰۰
احتمالا قسمتی از فایل lilo.conf‌ شما پس از افزودن دستور فوق به شكل زیر خواهد بود :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=۵۰
image=/boot/vmlinuz
label=linux
root=/dev/hda۲
read-only
ramdisk_size=۱۰۰۰۰
پس از افزودن این دستور به فایل lilo.conf وذخیره سازی و سپس اجرای دستور lilo در خط فرمان جهت اعمال تغییرات اندازه ramdisk شما به ده مگابایت ارتقاء می یابد .
بدیهی است در صورتی كه شما هسته kernel خود را خودتان كامپایل نموده و ramdisk‌ را بعنوان loadable module یا همان ماژول قابل اتصال به هسته پیكربندی كرده اید باید برای افزایش فضای ramdisk‌ دستور زیر را در فایل modules.conf واقع در مسیر /etc/ اضافه كنید :
options rd rd_size=۱۰۰۰۰
و یا دستور زیر را در خط فرمان كاربر ریشه اجرا كنید :
insmod rd rd_size=۱۰۰۰۰
▪ نكته : در هر زمان با اجرای دستور زیر میتوان به مشخصات تفصیلی ramdisk‌ دست یافت :
df -k /dev/ram۰
نتایج بدست آمده برای یك ramdisk ‌ با اندازه ۴ مگابایت :
>df -k /dev/ram۰
Filesystem ۱k-blocks Used Available Used Mounted on
/dev/ram۰ ۳۹۶۳ ۱۳ ۳۷۴۶ ۰% /tmp/ramdisk۰
منبع : شبگرد


همچنین مشاهده کنید