با سلام خدمت دوستان گرامی
توی این پست قصد دارم به طور کامل اضافه کردن یا تغییر فضای Swap در فری بی اس دی رو خدمتتون عنوان کنم . فضای swap هنگامی که فضای حافظه اصلی (RAM) پر می شود و دیگر جایی برای فرایند های جدید وجود نداشته باشد، مورد استفاده قرار می گیرد. توجه کنید که فرایند بخشی از یک برنامه است، که برای اجرا شدن باید ابتدا توسط الگوریتم های زمانبندی خاص (مانند FIFI, SJF و غیره) از فضای دیسک (حافظه ثانویه : مانند هارد دیسک) به درون حافظه اصلی بار گذاری شود (در صف آماده برای اجرا قرار بگیرد) و سپس برای اجرا شدن توسط الگوریتم های زمانبندی فرایند ها، برای اجرا شدن، پردازنده را دریافت کنند. فرض کنید سیستم ما یک پردازنده دارد و تعداد بسیاری فرایند نیز در حافظه اصلی، برای اجرا شدن، صف بندی شود، حال یک فرایند با اولویت بالا بخواهد اجرا شود اما جایی در حافظه اصلی وجود ندارد که فرایند در آن قرار بگیرد، در این مواقع، سیستم عامل توسط معیار هایی فرایندی را برای خروج از حافظه اصلی و قرار گرفتن در حافظه فضای swap انتخاب می کند.به عمل مبادله فرایند ها میان حافظه اصلی و فضای swap، اصطلاحا swapping و به عمل خروج فرایند از حافظه اصلی و قرار گیری در swap، اصطلاحا swap in و به عمل خروج فرایند از swap و قرار گیری در حافظه اصلی، اصطلاحا swap out گفته می شود. توجه داشته باشید که swap جزئی از حافظه اصلی (RAM) نیست بلکه فضایی است بر روی رسانه ثانویه مانند هارد دیسک و به همین خاطر است که زمان نصب هر توزیع لینوکسی یا هر سیستم عامل دیگر یونیکسی، بخشی از هارد دیسک را از نوع سیستم فایل swap، پارتیشن بندی می کنید.
طریقه اضافه کردن swap در نسخه 9 و قدیمی تر
خوب اول باید از طریق کامند dd یک فایل به حجم دلخواه ایجاد کنیم :
dd if=/dev/zero of=/root/swap.1GIG.bin bs=1M count=1024
خوب بعد از ایجاد شدن فایل پرمیژن مناسب رو بهش میدیم :
chmod 0600 /root/swap.1GIG.bin
خوب تا اینجا یه فایل با حجم یک گیگابایت ایجاد کردیم ، حالا باید برای swap تعریفش کنیم ، باید توی فایل rc.conf فایل مورد نظر رو وارد کنیم :
echo 'swapfile="/root/swap.1GIG.bin"' >> /etc/rc.conf
بعد از ورود دستور بالا و اطمینان از فایل rc.conf سیستم رو ریبوت میکنیم . حتما میپرسید راهی نیست که ریبوت رو دور بزنیم ؟ راهی هست!
برای فعال کردن swap از دستور زیر استفاده میکنیم :
mdconfig -a -t vnode -f /root/swap.1GIG.bin -u 0
برای دیدن لیست دیوایس های سیستم از جمله swap :
mdconfig -l -v
بعد هم که باید با دستور swapon که در گنو هم موجود هست پارتیشن md* رو اصطلاحا روشن یا اکتیو کنیم :
swapon /dev/md0
بعد اعمال دستورات فوق میتونیم اطلاعات مربوط به پارتیشن جدید رو با دستورات زیر ببینیم :
swapinfo -k swapinfo -k | grep '/root/swap.1GIG.bin' swapinfo -h
خوب تا اینجا برای فری بی اس دی 9 به پائین بود .
طریقه اضافه کردن swap در FreeBsd 10 به بالا
خوب تا حدودی شبیه به دستورات قبل عمل میکنیم :
dd if=/dev/zero of=/root/swap bs=1m count=1024 chmod 0600 /root/swap mdconfig -lv
فایل fstab رو ویرایش میکنیم :
vi /etc/fstab
خط زیر رو با فایل بالا اضافه میکنیم ، البته اسم دیوایس برای سیستم شما متفاوت هست :
md26 none swap sw,file=/root/swap 0 0
برای فعال شدن فوری swap از دستور زیر استفاده میکنیم :
swapon -aq
نکاتی برای امنیت بیشتر و رمزنگاری swap در یونیکس
encrypt کردن swap میتونه از سرقت اطلاعاتی که توی رم به صورت موقت وجود داره و ایضا حساسیت بالایی هم داره مثل پسورد ها یا هرچیز حساس دیگه ای ، جلوگیری میکنه . یکی از بهترین روش های رمزنگاری فایل در یونیکس به روش زیر هست :
# dd if=/dev/random of=/root/swap_oslearn bs=1m count=1024 # mdconfig -a -t vnode -f /root/swap_oslearn # geom eli init md0
خروجی دستور آخر به شکل زیر خواهد بود :
Enter new passphrase: Reenter new passphrase: Metadata backup can be found in /var/backups/md0.eli and can be restored with the following command: # geli restore /var/backups/md0.eli md0
بعد md0 رو ضمیمه میکنیم :
# geom eli attach md0
بعد هم که طبق معمول باید swap رمز شده رو فعال کنیم :
# swapon /dev/md0.eli
خوب این مبحث به پایان رسید ، فقط نکته ای که هست با دستورات زیر میتونید حجم swap رو ببینید :
# top # pstat -s # swapinfo -k # vmstat # systat swap
امیدوارم که این آموزش هم براتون مفید واقع شده باشه .
پیروز و سربلند باشید .
نویسنده : N3td3v!l
منبع : او اس لرن دات آی آر