منبع اصلی نوشتار زیر در این لینک قرار دارد

اضافه کردن فضای SWAP در FreeBsd

با سلام خدمت دوستان گرامی

توی این پست قصد دارم به طور کامل اضافه کردن یا تغییر فضای 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

01

خوب تا اینجا یه فایل با حجم یک گیگابایت ایجاد کردیم ، حالا باید برای swap تعریفش کنیم ، باید توی فایل rc.conf فایل مورد نظر رو وارد کنیم :

echo 'swapfile="/root/swap.1GIG.bin"' >> /etc/rc.conf

بعد از ورود دستور بالا و اطمینان از فایل rc.conf سیستم رو ریبوت میکنیم . حتما میپرسید راهی نیست که ریبوت رو دور بزنیم ؟ :D راهی هست!

برای فعال کردن 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

02

نکاتی برای امنیت بیشتر و رمزنگاری 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

03

خوب این مبحث به پایان رسید ، فقط نکته ای که هست با دستورات زیر میتونید حجم swap رو ببینید :

# top
# pstat -s
# swapinfo -k
# vmstat
# systat swap

امیدوارم که این آموزش هم براتون مفید واقع شده باشه .

پیروز و سربلند باشید .

نویسنده : N3td3v!l

منبع : او اس لرن دات آی آر