مدیران سیستم اغلب به منظور جلوگیری از ذخیره بیش از حد مجاز اطلاعات بر روی سیستم، از یک سیاست سهمیه بندی فضا یا (Disk quota) استفاده می‌کنند.

به طور پیش فرض، Disk quota نمایش داده شده در پنل DirectAdmin به سهمیه‌های سیستم متکی است؛ بنابراین به منظور مدیریت آن، باید از سطح سیستم عامل شروع کرد.

 

 

این مطلب نیز ممکن است برای شما مفید باشد: رفع خطای xfs_quota: cannot set limits: Function not implemented

 

نحوه فعال سازی پشتیبانی quota در EXT4

اگر از یک سیستم فایل ext4 استفاده می‌کنید، به منظور بررسی quota می‌توانید از دستور زیر استفاده نمایید.

repquota -a

چنانچه quota در سیستم عامل پیکربندی نشده باشند، دستور بالا هیچ خروجی را بر نمی‌گرداند:

اگر چنین بود، شما باید پشتیبانی quota را فعال کنید.

بدین منظور فایل /etc/fstab را ویرایش کرده و usrquota و grpquota را (در لینوکس) در کنار پارتیشن مورد نظر برای فعال سازی quota اضافه نمایید.

یک مثال /etc/fstab از CentOS 7 به صورت زیر است:

# cat /etc/fstab

/dev/mapper/vg_s4-lv_home               /home                   ext4    defaults,usrquota,grpquota      1 2

 

پارتیشن ویرایش شده را که در آن quota فعال شده است، مجدداً mount کنید:

mount -o remount /home

پس از آن، با استفاده از دستور زیر، مجدداً quota را برای پارتیشن مورد نظر بررسی نمایید.

repquota "/home"

هنگامی‌که برنامه repquota یک مقدار عادی را برمی‌گرداند، شما می‌توانید دستور زیر را اجرا کنید تا مصرف صحیح را برای نمایش در DirectAdmin دریافت نمایید:

cat /proc/mounts | grep " /home "

 

نحوه فعال کردن پشتیبانی quota در XFS

سیستم فایل xfs با ext4 قبلی متفاوت است. اگر به تنظیم quota در یک پارتیشن نیاز دارید، ادامه مقاله را مطالعه نمایید.

در اینجا، grpquota را با pquota (یعنی quotaهای پروژه) جایگزین می‌کنیم که به DA اجازه می‌دهد تا quotaهای دایرکتوری را برای مواردی مانند اعمال Disk quota در هر دامنه تنظیم کند.

به منظور تأیید تنظیماتی که دارید، دستور df را اجرا نمایید. به عنوان مثال،

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   14G  2.3G   12G  17% /
devtmpfs                 915M     0  915M   0% /dev
tmpfs                    921M   24K  921M   1% /dev/shm
tmpfs                    921M  8.5M  912M   1% /run
tmpfs                    921M     0  921M   0% /sys/fs/cgroup
/dev/sda1                497M  125M  372M  26% /boot

همانطور که می‌بینید، /home یک پارتیشن نیست، بلکه در زیر پارتیشن / قرار گرفته است و ما باید اطمینان حاصل کنیم که quotaها در پارتیشن / کاربردی هستند.

 

سپس با استفاده از دستور زیر تأیید نمایید که / در واقع از سیستم فایل XFS استفاده می‌کند:

# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)

اگر "noquota" را در گزینه‌های xfs mount برای پارتیشن / می‌بینید، به صورت زیر عمل کنید.

از آنجایی که "noquota" یک گزینه پیش فرض mount کردن هسته (kernel) است، باید آن را در گزینه‌های بوت هسته (kernel) تغییر دهیم. بدین منظور فایل /etc/default/grub را ویرایش کرده و خطی را با متغیر "GRUB_CMDLINE_LINUX" پیدا نمایید، که ممکن است مشابه زیر باشد:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet"

در اینجا، ما یک متغیر "rootflags=" را در انتهای خط قرار داده و uquota,pquota را به عنوان مقادیر اضافه کرده‌ایم. در آخر، این خط به صورت زیر خواهد بود:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,pquota"

 

اکنون، از تنظیمات قبلی یک نسخه پشتیبان ایجاد می‌کنیم و سپس یک فایل grub.cfg جدید ایجاد می‌نماییم:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig
grub2-mkconfig -o /boot/grub2/grub.cfg

این مسیر در برخی از سیستم‌عامل‌ها به صورت زیر است:

/boot/efi/EFI/centos/grub.cfg

در نهایت، باید سیستم را مجدداً راه اندازی کنید تا هسته یا همان kernel، این گزینه‌های جدید را ببیند:

reboot

وارد سیستم شده و به مرحله اول برگردید و گزینه‌های mount را بررسی نمایید تا مطمئن شوید که "noquota" از بین رفته است، به عنوان مثال،

# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,prjquota

)

 

اکنون باید بتوانید usrquota ,prjquota (یا uquota ,pquota، آن‌ها یکسان هستند) را ببینید.

اگر آن‌ها را نمی‌بینید، با راهنمای تنظیم quota استاندارد، به پارتیشن / اضافه کنید.

اطمینان حاصل نمایید که در directadmin.conf دایرکت ادمین، xfs quota فعال شده است:

cd /usr/local/directadmin
./directadmin c | grep use_xfs_quota

اگر کاربرانی در DA دارید، می‌توانید محدودیت‌های سهمیه حافظه آن‌ها را بازنشانی کنید تا اطمینان حاصل نمایید که محدودیت‌های مصرف دیسک شما اعمال می‌شوند؛ در واقع با این کار، اطلاعات جدید مصرف کاربران محسابه خواهد شد:

echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue

 

 

 

منبع:

directadmin