ایجاد درایو مجازی (RamDsik) در لینوکس
ramdisk قسمتی از حافظه ram سیستم است که شما آنرا بصورتی آدرسدهی میکنید که مجازا" بصورت یک پارتیشن هارد دیسک عمل کند. به عبارت دیگر شما قسمتی از حافظه رم سیستم خودرا که دارای سرعتی چندین برابر بیشتر از هارددیسک شماست در اختیار میگیرید و به سیستم میگوئید که اینگونه وانمود کند که این بخش یک پارتیشن اضافی در کنار هارد دیسک شماست و از آن درست مثل هارد دیسک ولی با توان و سرعت بسیار بالاتر استفاده کند.
● آشنائی با 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۰