اعداد الحصص (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
September 16th, 2008 on %H:%M
ماشاء الله درس سهل جدا بسبب الشرح الهادئ الجميل
إلى الأمام يا عادل