ผู้ดูแลระบบ Linux - การจัดการโควต้า

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

การเปิดใช้งานการจัดการโควต้าใน CentOS Linux นั้นโดยพื้นฐานแล้วเป็นกระบวนการ 4 ขั้นตอน -

  • Step 1 - เปิดใช้งานการจัดการโควต้าสำหรับกลุ่มและผู้ใช้ใน / etc / fstab

  • Step 2 - ติดตั้งระบบไฟล์ใหม่

  • Step 3 - สร้างฐานข้อมูลโควต้าและสร้างตารางการใช้งานดิสก์

  • Step 4 - กำหนดนโยบายโควต้า

เปิดใช้งานการจัดการโควต้าใน / etc / fstab

ขั้นแรกเราต้องการสำรองไฟล์ / etc / fstab ของเรา -

[root@centosLocal centos]# cp -r /etc/fstab ./

ตอนนี้เรามีสำเนาของworking / etc / fstab ที่เรารู้จักในไดเร็กทอรีการทำงานปัจจุบัน

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

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

  • usrquota
  • grpquota

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

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

การกำหนดค่าตัวเลือกการบูตเคอร์เนลใหม่สำหรับระบบไฟล์ XFS

ขั้นตอนนี้จำเป็นภายใต้สองเงื่อนไขเท่านั้น -

  • เมื่อดิสก์ / พาร์ติชันที่เราเปิดใช้งานโควต้ากำลังใช้ระบบไฟล์ xfs
  • เมื่อเคอร์เนลส่งผ่านพารามิเตอร์ noquota ไปยัง / etc / fstab ในเวลาบูต

Step 1 - ทำการสำรองข้อมูลของ / etc / default / grub

cp /etc/default/grub ~/

Step 2- ปรับเปลี่ยน/ etc / default / ด้วง

นี่คือไฟล์เริ่มต้น

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

เราต้องการแก้ไขบรรทัดต่อไปนี้ -

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"

ถึง

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

Note- เป็นสิ่งสำคัญที่เราต้องคัดลอกการเปลี่ยนแปลงเหล่านี้แบบคำต่อคำ หลังจากที่เรากำหนดค่า grub.cfg ใหม่แล้วระบบของเราจะไม่สามารถบูตได้หากมีข้อผิดพลาดเกิดขึ้นในการกำหนดค่า โปรดลองส่วนนี้ของบทแนะนำเกี่ยวกับระบบที่ไม่ใช่ระบบการผลิต

Step 3 - สำรองข้อมูล grub.cfg ที่ทำงานของคุณ

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

สร้างgrub.cfgใหม่

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

รีบูต

[root@localhost rdc]#reboot

หากการแก้ไขทั้งหมดแม่นยำเราไม่ควรมีความพร้อมในการเพิ่มโควต้าให้กับระบบไฟล์xfs

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

เราได้ส่งผ่านพารามิเตอร์usrquotaและgrpquotaผ่านด้วง

ตอนนี้แก้ไข/ etc / fstabอีกครั้งเพื่อรวม / ตั้งแต่/ homeบนฟิสิคัลดิสก์เดียวกัน

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

ตอนนี้ให้เปิดใช้งานฐานข้อมูลโควต้า

[root@localhost rdc]# quotacheck -acfvugM

ตรวจสอบให้แน่ใจว่าเปิดใช้งานโควต้าแล้ว

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

ติดตั้งระบบไฟล์ใหม่

หากพาร์ติชันหรือดิสก์แยกจากพาร์ติชันที่บู๊ตแอ็คทีฟเราสามารถติดตั้งใหม่ได้โดยไม่ต้องรีบูต หากกำหนดโควต้าไว้บนดิสก์ / พาร์ติชันที่บูตในไดเร็กทอรีราก / เราอาจต้องรีบูตระบบปฏิบัติการ การบังคับให้ติดตั้งใหม่และใช้การเปลี่ยนแปลงความจำเป็นในการต่อเชื่อมระบบไฟล์ใหม่อาจแตกต่างกันไป

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

อย่างที่เราเห็นมีการใช้โวลุ่ม LVM ดังนั้นจึงเป็นเรื่องง่ายที่จะรีบูต การดำเนินการนี้จะติดตั้ง/ home ใหม่และโหลดการเปลี่ยนแปลงการกำหนดค่า/ etc / fstabในการกำหนดค่าที่ใช้งานอยู่

สร้างไฟล์ฐานข้อมูลโควต้า

ขณะนี้ CentOS สามารถทำงานกับโควต้าดิสก์ใน / home ได้แล้ว ในการเปิดใช้งานการสนับสนุนโควต้าเต็มรูปแบบเราต้องเรียกใช้ไฟล์quotacheck คำสั่ง

quotacheck จะสร้างสองไฟล์ -

  • aquota.user
  • aquota.group

สิ่งเหล่านี้ใช้เพื่อจัดเก็บข้อมูลโควต้าสำหรับดิสก์ / พาร์ติชันที่เปิดใช้โควต้า

ต่อไปนี้เป็นสวิตช์ quotacheck ทั่วไป

สวิตซ์ หนังบู๊
-ยู ตรวจสอบโควต้าผู้ใช้
- ก ตรวจสอบโควต้ากลุ่ม
-ค ควรเปิดใช้โควต้าสำหรับแต่ละระบบไฟล์โดยเปิดใช้โควต้า
-v แสดงเอาต์พุต verbose

เพิ่มขีด จำกัด โควต้าต่อผู้ใช้

สำหรับสิ่งนี้เราจะใช้คำสั่ง edquota ตามด้วยชื่อผู้ใช้ -

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

มาดูแต่ละคอลัมน์

  • Filesystem - เป็นโควต้าระบบไฟล์สำหรับผู้ใช้ที่สมัคร

  • blocks - จำนวนบล็อกที่ผู้ใช้ใช้อยู่ในระบบไฟล์แต่ละระบบ

  • soft- ตั้งค่าบล็อกสำหรับขีด จำกัด อ่อน Soft Limit อนุญาตให้ผู้ใช้มีโควต้าในช่วงเวลาที่กำหนด

  • hard- ตั้งค่าบล็อกสำหรับขีด จำกัด ยาก ขีด จำกัด ยากคือโควต้าทั้งหมดที่อนุญาต

  • inodes - จำนวน inodes ที่ผู้ใช้กำลังใช้อยู่

  • soft - ขีด จำกัด ไอโหนดอ่อน

  • hard - ขีด จำกัด ไอโหนดยาก

เพื่อตรวจสอบโควต้าปัจจุบันของเราในฐานะผู้ใช้ -

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

ต่อไปนี้เป็นข้อผิดพลาดที่มอบให้กับผู้ใช้เมื่อเกินขีด จำกัด โควต้าฮาร์ด

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

อย่างที่เราเห็นเราอยู่ใกล้กับโควต้าดิสก์ของผู้ใช้รายนี้ มาตั้งคำเตือน Soft Limit ด้วยวิธีนี้ผู้ใช้จะต้องแจ้งให้ทราบล่วงหน้าก่อนที่ขีด จำกัด โควต้าจะหมดอายุ จากประสบการณ์คุณจะได้รับคำร้องเรียนจากผู้ใช้ปลายทางเมื่อพวกเขาเข้ามาทำงานและต้องใช้เวลา 45 นาทีในการล้างไฟล์เพื่อไปทำงานจริง

ในฐานะผู้ดูแลระบบเราสามารถตรวจสอบการใช้โควต้าด้วยไฟล์ repquota คำสั่ง

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

อย่างที่เราเห็น Centos ของผู้ใช้เกินโควต้าฮาร์ดบล็อกและไม่สามารถใช้พื้นที่ดิสก์บน/ บ้านได้อีกต่อไป

- + แสดงว่ามีการใช้งานฮาร์ดโควต้าเกินในระบบไฟล์

เมื่อวางแผนโควต้าจำเป็นต้องทำคณิตศาสตร์เล็กน้อย สิ่งที่ผู้ดูแลระบบต้องรู้คือมีผู้ใช้ในระบบกี่คน? มีพื้นที่ว่างเท่าใดในการจัดสรรให้กับผู้ใช้ / กลุ่ม? ระบบไฟล์มีกี่ไบต์?

กำหนดโควต้าในแง่ของบล็อกที่เกี่ยวข้องกับพื้นที่ว่างบนดิสก์ขอแนะนำให้ปล่อยบัฟเฟอร์ "ปลอดภัย" ของพื้นที่ว่างในระบบไฟล์ซึ่งจะยังคงอยู่ในสถานการณ์ที่เลวร้ายที่สุด: โควต้าทั้งหมดเกินพร้อมกัน โดยเฉพาะอย่างยิ่งบนพาร์ติชันที่ระบบใช้ในการเขียนบันทึก