۱۳۸۶ آبان ۸, سه‌شنبه

سهمیه بندی دیسک سخت در لینوکس

گاها در هر شرایطی زمانی فرا می رسد که با کمبود منابع روبرو هستیم و در چنین اوضاع و احوالی است که به کلمه آشنای سهمیه بندی (برای ایرانیان) می رسیم.
در این مقاله منظور از کمبود منابع , کمیود فضای دیسک سخت می باشد ; که ممکن است این کمبود بر روی یک سیستم خانگی با چند کاربر تا یک سرور با چندین هزار کاربر وجود داشته باشد.در این وضعیت هر مدیر سیستم یا شبکه ای تصمیم می گیرد تا کابران خود را با محدودیت مواجه کند و در اصطلاح منابع سیستم را بنا به موارد استفاده هر کدام سهمیه بندی کند.
سهمیه بندی دیسک سخت را می توان برای یک کاربر به تنهایی یا برای یک گروه کاربری تعیین و تنظیم کرد.
بسته ی مورد استفاده در لینوکس برای اعمال سهمیه بندی quota می باشد.

نوع سهمیه بندی در لینوکس به 2 دسته تقسیم می شود :
  1. سهمیه بندی مقدار فضا
  2. سهمیه بندی تعداد فایل ها و دایرکتوری ها

مراحل نصب و تنظیم سهمیه بندی
برای مشاهده تصویر در سایز واقعی بر روی آن ها کلیک کنید

در مرحله اول می بایست بررسی کنیم که آیا هسته از سهمیه بندی دسیک سخت پشتیبانی می کند یا خیر.
معمولا این ویژگی در اکثر توزیع ها پشتیبانی می شود.

[root@localhost ~]# dmesg | grep quota
VFS: Disk quotas dquot_6.5.1

اگر جواب بدین صورت باشد , بدین معناست که هسته از سهمیه بندی دیسک سخت پشتیبانی می کند , در غیر اینصورت باید هسته را مجدد کامپایل کرد.

مرحله دوم نصب ابزار سهمیه بندی می باشد :
در لینوکس های بر پایه دبین :
apt-get install quota
در لینوکس های بر پایه ردهت :
yum install quota

مرحله سوم
تنظیم پارتیشن های مورد نظر برای سهمیه بندی می باشد :

در این مرحله باید گزینه های usrquota برای سهمیه بندی کاربران و grpquota را برای سهمیه بندی گروه ها در option های مربوط به پارتیشن مورد نظر در etc/fstab/ اضافه کنیم :
nano /etc/fstab
/dev/sda1 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1



مرحله چهارم فعال کردن پارتیشن های مورد نظر برای سهمیه بندی از طریق فعال کردن فایل های دیتابیس بعد از اضافه کردن تنظیمات بالا می باشد.
پارتیشن ها را بدین طریق برای سهمیه بندی فعال می کنیم :
در لینوکس های بر پایه دبین :

etc/init.d/quota restart/

برای فعال کردن سهمیه بندی بر روی پارتیشن ریشه , حتما باید سیستم را restart کنید.
اولین باری که مراحل بالا را انجام دهید , 2 فایل به نام های aquota.user و aquota.group بر روی پارتیشن های مورد نظر ایجاد می شود.


در لینوکس های بر پایه ردهت :
ابتدا پارتیشن را در صورت mount بودن , از این حالت خارج و دوباره mount می کنیم.
umount /etc/sda1
mount –a

نکته :
برای پارتیشن ریشه از آنجایی که امکان umount وجود ندارد , باید سیستم را restart کرد.

سپس برای ایجاد فایل های سهمیه بدین طریق عمل می کنیم :
/ quotacheck -cugm

بعد از اینکه فایل ها ساخته شد , دستور زیر را جهت ساختن جدول میزان استفاده از دیسک بر اساس سیستم فایل هایی که سهمیه بندی برای آنها فعال شده است , اجرا میکنیم :
quotacheck -avug
گزینه “a” تمام پارتیشن هایی که سهمیه بندی برای آنها فعال شده است را بررسی می کند.
گزینه “u” اطلاعات سهمیه دیسک کاربران را بررسی می کند.
گزینه “g” اطلاعات سهمیه دیسک گروه ها را بررسی می کند.
گزینه “c” هم فایل های سهمیه را ایجاد می کند.

و سپس
/ quotaon


در مرحله پنجم نوبت به اختصاص سهمیه کاربران و گروه ها می رسد :
با استفاده از ابزار edquota می توانیم برای کاربران و گروه ها سهمیه تعیین کنیم.
edquota [-ug] name
Uجهت ایجاد سهمیه برای کاربران
G برای ایجاد سهمیه برای گروه ها استفاده می شود.

برای مثال :
edquota -u reza
این مرحله نشانه موفق آمیز بودن انجام مراحل قبلی می باشد.

با اجرای این دستور ادیتور پیش فرض همراه با اطلاعاتی در مورد سهمیه کاربر رضا باز شده و می توانیم ازطریق آن سهمیه بندی را اعمال کنیم.(شکل زیر)

همانطور که در ابتدا اشاره کردیم و در شکل هم قابل مشاهده است , دو نوع سهمیه بندی قابل انجام است :
  1. محدودیت مقدار فضای قابل استفاده که با blocks مشخص می شود.(واحد مورد استفاده block می باشد که برابر با 1024 بایت یا 1 کیلوبایت می باشد.)
  2. محدودیت تعداد فایل ها و دایرکتوری ها که با inodes مشخص می شود.

عددهایی که در زیر blocks و inodes درج شده است , مقدار استفاده فعلی را نشان می دهد.

محدودیت های بالا در 2 سطح صورت می پذیرد :
  1. Soft
  2. Hard
هارد حداکثر مقدار استفاده بصورت قطعی را تعیین می کند.برای مثال اگر برای کابر رضا مقدار 2 مگابایت فضا در نظر گرفته شود , این کاربر نمی تواند از این مقدار تحت هیچ شرایطی تجاوز کند.
سافت حداکثر مقدار استفاده را نشان می دهد که برخلاف هارد بصورت مطلق نیست و کابر می تواند در یک دوره زمانی مشخص (پیش فرض 7 روز می باشد) از این مقدار تجاوز کند.این دوره زمانی را دوره رشد یا grace period می نامند.

مقدار صفر برای Soft&Hard به معنای استفاده بدون محدودیت می باشد.

دوره رشد می تواند بر اساس روز , ساعت , دقیقه و ثانیه تنظیم شود.برای تنظیم آن بدین صورت عمل می کنیم :
edquota –t


مرحله ششم و آخر مربوط به گزارش گیری از سهمیه بندی می باشد.
برای گزارش گیری در لینوکس از 2 ابزار دستور استفاده می کنیم :
  • Quota
  • Repquota
برای مشاهده لیست پارامترها بهمراه کاربرد هر کدام از دستورات بالا , می توانید دستورات را با پارامتر help-- استفاده کنید.در اینجا به مهمترین این پارامترها می پردازیم.

دستور quota برای مشاهده سهمیه اعمال شده به کاربران و گروه ها بصورت انفرادی استفاده می شود.
quota [-ug] name
g اطلاعات سهمیه بندی گروه و
u اطلاعات سهمیه بندی کاربر را نشان می دهند.


دستور repquota اطلاعات کلی تر از سهمیه بندی در اختیار ما قرار می دهد.
repquota [-vug] -a | /filesystem
u گزارش از سهمیه تعریف شده برای تمامی کاربران
g گزارش از سهمیه تعریف شده برای تمامی گروه ها
a گزارش از تمام فایل سیستم هایی که سهمیه بندی آنها در فایل fstab فعال شده است.



هیچ نظری موجود نیست: