การบริหารจัดการเนื้อที่ของดิสก์ให้กับผู้ใช้ด้วย Disk Quota

ในบางครั้งเราจำเป็นต้องมีการบริหารจัดการพื้นที่ของฮาร์ดดิสก์ในแต่ละพาร์ทิชัน ให้กับผู้ใช้งาน หรือกลุ่มผู้ใช้งาน เนื่องจากพื้นที่ของฮาร์ดดิสก์มีอยู่อย่างจำกัด ระบบบริหารจัดการดังกล่าวมีอยู่แล้วในระบบปฏิบัติการลินุกซ์ โดยมีชื่อว่า โควต้า (Quota)

 

 

ขั้นตอนการติดตั้งดิสก์โควต้า (Disk Quota)

ขั้นตอนที่ 1 เข้าสู่ Single User Mode

เนื่องจากว่าต้องมีการเมาท์พาร์ทิชันที่จะทำการเซ็ตดิสก์โควต้าใหม่อีกรอบ จึงจำเป็นที่จะต้องเข้าสู่ Single User Mode เพื่อเป็นการรับประกันว่า ไม่มีคนใช้งานอยู่ในระบบ แต่ถ้ายังไม่มีผู้ใช้คนอื่นมาใช้ระบบด้วย ก็สามารถข้ามขั้นตอนนี้ไปได้เลย

[root@netserv ~]# init 1

ขั้นตอนที่ 2

ระบุพาร์ทิชันที่จะใช้ดิสก์โควต้า ในที่นี้เราเลือกเป็น /homeซึ่งเป็นที่เก็บไฟล์ของผู้ใช้งาน โดยทำการเพิ่มออพชั่น usrquotaในไฟล์ /etc/fstabตรงพาร์ทิชัน /homeดังนี้

จาก

LABEL=/home /home ext3 defaults 1 2

เป็น

LABEL=/home /home ext3 defaults,usrquota 1 2

ขั้นตอนที่ 3

ทำการเมาท์พาร์ทิชัน /home ใหม่อีกครั้ง เพื่อให้ลินุกซ์อ่านข้อมูลของพาร์ทิชันใหม่ โดยใช้คำสั่ง mount แล้วเพิ่มออพชั่น -oดังนี้

# mount -o remount /home

ขั้นตอนที่ 4

ออกจาก Single User Mode โดยใช้คำสั่ง exit เพื่อกลับมาสู่โหมดการทำงานปกติ

# exit

 

ขั้นตอนที่ 5

ทำการสร้างไฟล์คอนฟิกกูเรชั่นสำหรับพาร์ทิชัน /home โดยมีชื่อไฟล์ว่า aquota.user โดยเก็บไว้ที่ /home ดังนี้

[root@netserv ~]# touch /home/aquota.user

 

จากนั้นทำการเปลี่ยนสิทธิ์ของไฟล์นี้ ให้เจ้าของไฟล์สามารถอ่านและเขียนได้เท่านั้น (600) ดังนี้

[root@netserv ~]# chmod 600 /home/aquota.user

ขั้นตอนที่ 6

ทำการสร้างตารางของโควต้า (Quota Table) โดยใช้คำสั่ง quotacheckดังนี้

[root@netserv ~]# quotacheck -vagum

quotacheck: WARNING - Quotafile /home/aquota.user was probably truncated. Can't save quota settings...

quotacheck: Scanning /dev/sda6 [/home] done

quotacheck: Checked 377 directories and 172 files

[root@netserv ~]#

ขั้นตอนที่ 7

กำหนดดิสก์โควต้าของผู้ใช้งานแต่ละคน ตัวอย่างเช่น ต้องการกำหนดดิสก์โควต้าของผู้ใช้ที่ชื่อว่า sawasdee ก็สามารถทำได้ดังนี้

[root@netserv ~]# edquota -u sawasdee

จะมีหน้าต่างสำหรับปรับแก้ไขขนาดของพื้นที่ ที่ผู้ใช้สามารถนำข้อมูลมาเก็บได้

Disk quotas for user sawasdee (uid 505):

Filesystem blocks soft hard inodes soft hard

/dev/sda6 0 0 0 0 0 0

โดยแต่ละฟิลด์มีความหมายดังนี้

  • Blocks : เป็นขนาดของพื้นที่ ที่มีการใช้งานไปแล้ว หน่วนเป็น 1k

  • Inodes : จำนวนไฟล์ ที่ผู้ใช้งานมีอยู่ในปัจจุบัน

  • Soft Limit : เป็นขนาดของพื้นที่ / จำนวนไฟล์ ที่ผู้ใช้สามารถนำมาเก็บไว้ได้ ถ้าเกินจากนี้ จะมีข้อความเตือน

  • Hard Limit : เป็นขนาดของพื้นที่ / จำนวนไฟล์ ที่ผู้ใช้สามารถนำมาเก็บไว้ได้ ซึ่งในบางครั้ง ขนาดของพื้นที่ / จำนวนไฟล์ สามารถเกิน Soft Limitได้ แต่จะไม่สามารถเกิน Hard Limit

ให้ทำการแบ่งพื้นที่ให้ผู้ใช้ sawasdeeให้เก็บไฟล์ได้ 10MBแต่ไม่เกิน 15MBดังนี้

Disk quotas for user sawasdee (uid 505):

Filesystem blocks soft hard inodes soft hard

/dev/sda6 0 1000015000 0 0 0

 

ขั้นตอนที่ 8 ดูรายงานการใช้พื้นที่ของดิสก์

เราสามารถดูรายงานการใช้พื้นที่ของดิสก์ได้ โดยใช้คำสั่ง repquotaดังนี้

[root@netserv ~]# repquota /home

*** Report for user quotas on device /dev/sda6

Block grace time: 7days; Inode grace time: 7days

Block limits File limits

User used soft hard grace used soft hard grace

----------------------------------------------------------------------

root -- 176204 0 0 4 0 0

...

sawasdee -- 420 10000 15000 8 0 0