وثائق لينوكس العربية

اعداد الحصص (quotas)

كتب بواسطة مسلم عادل بتاريخ 2008/09/15

استخدام الحصص (quotas) مفيد جدا في الخوادم التي تحتوي على مستخدمين، مثل خوادم الاستضافات، او الخوادم الخاصة بالملفات. فبوجود نظام الحصص يمكن ضمان ان مستخدم ما لن يستغل مساحة اكثر من المستخدم الاخر.

عند تفعيل نظام الحصص (quotas) فانه يمكن تحديد مساحة لكل مستخدم بحيث لا يتجاوزها. كما أن نظام الحصص يبحث عن كل الملفات التي يملكها المستخدم وليست فقط الموجودة في مجلده الموطن (home) ويحسبها من ضمن الحصة الخاصة بالمستخدم.

عند تركيب أي توزيعة يفضل أن تقوم بتقسيم التوزيعة وقت التثبيت الى 3 أقسام:
1. قسم للذاكرة سواب (swap).
2. قسم للنظام نفسه (/).
3. قسم للمجلد الذي سيحتوي على ملفات المستخدمين. فاذا كنت تقدم خدمة مشاركة الملفات عبر samba او nfs مثلا، انشيء مجلد رئيسي اسمه /shares على سبيل المثال. واذا كنت تقدم خدمة استضافة المواقع عبر apache استخدم مجلد اخر مثل /var/www/

يوجد نوعين من تحديد المساحة عند استخدام الحصص.
النوع الاول يسمى soft limit والنوع الثاني يسمى hard limit. والفرق بينهم هو ان الـ hard limit هو عبارة عن التحديد بنفسه واما الـ soft limit هو عبارة عن المساحة التي يبدا النظام عند الوصول اليها بارسال رسائل تنبيهية الى المستخدم.
تأمل المثال التالي:

انت قمت بتحديد حصة حجمها 1GB للمستخدم عبد الله ولكن تريد من النظام ان يبدا بتحذيره بان المساحة المتوفرة له اوشكت على الانتهاء عندما يصل حجم مفاته الى 800MB.

في هذه الحالة فإن الـ 1GB هي الـ hard limit، المساحة التي لن يستطيع المستخدم تجاوزها، بل حتى ان نقل الملفات قد تنقطع اثناء العملية اذا وصلت الى الحد المسموح.
اما الـ 800MB فهذه هي الـ soft limit بحيث أول ما يصل حجم الملفات الى هذا الحجم يبدا النظام باخبار المستخدم ان المساحة المتوفرة اوشكت على الانتهاء.

نظام الحصص ايضا يتوفر للمجموعات بالاضافة الى المستخدمين، كما يمكنك استخدام مزيج من الاثنين معا، كان تنشيء مجموعة اسمها lunarproject وتحديد حصة 5GB لكل عضو في هذه المجموعة ولكن بشرط أن لا تتجاوز حصة المجموعة كلها 100GB.

 

تركيب واعداد الحصص

 

root@server:~# apt-get install quota quotatool

بعد انتهاء التركيب، ستحتاج الى تحميل الوحدة البرمجية الخاصة بالنواة (kernel module) والمتعلقة بالحصص:

root@server:~# modprobe quota_v2

الان قم بتحرير الملف /etc/fstab بحيث نفعل الحصص على القسم الذي نريده. بحيث لو كان عندك /home منفصل وفي قسم لوحده يكون التعديل كالاتي:

غير من:

/dev/sda2 /home ext3 defaults 0 2

الى:

/dev/sda2 /home ext3 defaults,usrquota,grpquota 0 2

الان علينا انشاء ملفين داخل القسم الذي تم تفعيل الحصص وعليه وهما: aquota.user, aquota.group

root@server:~# touch /home/aquota.user; chmod 600 /home/aquota.user
root@server:~# touch /home/aquota.group; chmod 600 /home/aquota.group

يفضل الان ان تقوم باعادة تشغيل الجهاز حتى تنفذ التغييرات، ولكن انت على لينوكس واكيد لست مضطرا لاعادة التشغيل، بل يمكنك تنفيذ التعديلات كالاتي:

root@server:~# mount -o remount /home

لتتأكد أن التعدلات اصبحت مفعلة، نفذ الامر mount وابحث عن usrquota,grpquotaـ اذا ظهرت فان العملية نجحت.

الملفين aquota.user و aquota.group الذين قمنا بانشائهم داخل /home يجب ان يتم تهيئتهم بهيئة خاصة. لو قمت باعادة تشغيل الجهاز، فان هذه العملية تكون قد انجزت أما اذا لم تعد تشغيل الجهاز، سيكون علينا عمل هذا يدويا:

root@server:~# quotacheck -vagum

يقوم الأمر quotacheck بفحص الملفات والمستخدمين وانشاء جدول خاص به تحتوي على الملفات والمستخدمين لمراقبة استخدام المساحة المتوفرة. وهذا الجدول يتم تحديثه بشكل الي كلما تم اضافة او حذف ملفات جديدة.

عند تشغيل الأمر quotacheck لأول مرة، فانه يظهر مجموعة من التحذيرات والاخطاء تشير الى ان الملفين aquota.user و aquota.group معطوبة، وهذا شيء متوقع لان الملفات اصلا فارغة !

quotacheck: WARNING – Quotafile /home/aquota.user was probably truncated. Cannot save quota settings…
quotacheck: WARNING – Quotafile /home/aquota.group was probably truncated. Cannot save quota settings…
quotacheck: Scanning /dev/sda2 [/home] done
quotacheck: Checked 36 directories and 331 files

الان فعل استخدام الحصص:

root@server:~# quotaon /home

لايقاف استخدام الحصص:

root@server:~# quotaoff /home

 

تحديد حصة كل مستخدم

 

root@server:~# EDITOR=nano
root@server:~# edquota -u muslim

في الشاشة التي تظهر قم بتغيير القيم الموجودة تحت العمود soft والعمود hard

المساحة تحدد بالكيلوبايت (Kilobyte)
1GB = 1000000 KB

وفي حال احبب ان تحدد حصص للمجموعات:

root@server:~# EDITOR=nano
root@server:~# edquota -g lunarproject

واذا احببت ان تشاهد تقرير عن المستخدمين والمساحات المستخدمة من قبلهم:

root@server:~# repquota /home
, , , , , ,

1 تعليق على هذا الموضوع

أكتب تعليق

هل تبحث عن شيء؟

إستخدم النموذج التالي للبحث:

مواقع أنصح بها!

أنصح بزيارة المواقع التالية:

الأرشيف

ستجد هنا أرشيف المقالات السابقة: