Administrator systemu Linux - zarządzanie limitami

Przydziały dysku CentOS można włączyć zarówno; ostrzeganie administratora systemu i odmawianie użytkownikowi dalszego dostępu do pamięci dyskowej przed przekroczeniem pojemności dysku. Kiedy dysk jest pełny, w zależności od tego, co się na nim znajduje, cały system może się zatrzymać aż do odzyskania.

Włączanie zarządzania limitami w CentOS Linux jest w zasadzie procesem 4-etapowym -

  • Step 1 - Włącz zarządzanie limitami dla grup i użytkowników w / etc / fstab.

  • Step 2 - Ponownie podłącz system plików.

  • Step 3 - Utwórz bazę danych Quota i wygeneruj tabelę użycia dysku.

  • Step 4 - Przypisz zasady dotyczące limitów.

Włącz zarządzanie limitami w / etc / fstab

Najpierw chcemy wykonać kopię zapasową naszego pliku / etc / fstab -

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

Mamy teraz kopię naszego znanego roboczego / etc / fstab w bieżącym katalogu roboczym.

# 
# /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

Wprowadziliśmy następujące zmiany w sekcji opcji pliku / etc / fstab dla wolumenu lub etykiety, do której mają być stosowane przydziały dla użytkowników i grup.

  • usrquota
  • grpquota

Jak widać, używamy xfssystem plików. Podczas korzystania z xfs wymagane są dodatkowe czynności ręczne./homeznajduje się na tym samym dysku co /. Dalsze badanie pokazuje / jest ustawione na noquota , czyli opcję montowania na poziomie jądra. Musimy ponownie skonfigurować opcje rozruchu jądra.

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

[root@localhost rdc]#

Ponowna konfiguracja opcji rozruchu jądra dla systemów plików XFS

Ten krok jest konieczny tylko pod dwoma warunkami -

  • Gdy dysk / partycja, na której włączamy limity, używa systemu plików xfs
  • Gdy jądro przekazuje parametr noquota do / etc / fstab podczas uruchamiania

Step 1 - Zrób kopię zapasową / etc / default / grub.

cp /etc/default/grub ~/

Step 2- Zmodyfikuj / etc / default / grub .

Oto plik domyślny.

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"

Chcemy zmodyfikować następujący wiersz -

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

do

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

Note- Ważne jest, abyśmy skopiowali te zmiany dosłownie. Po ponownej konfiguracji grub.cfg, nasz system nie uruchomi się, jeśli wystąpią jakiekolwiek błędy w konfiguracji. Wypróbuj tę część samouczka na systemie nieprodukcyjnym.

Step 3 - Utwórz kopię zapasową działającego pliku grub.cfg

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

Utwórz nowy plik 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]#

Restart

[root@localhost rdc]#reboot

Gdyby wszystkie modyfikacje były precyzyjne, nie mielibyśmy możliwości dodawania kwot do systemu plików xfs .

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

Przekazaliśmy parametry usrquota i grpquota za pośrednictwem grub.

Teraz ponownie wyedytuj / etc / fstab, aby uwzględnić / od / homena tym samym dysku fizycznym.

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

Teraz włączmy bazy danych kwot.

[root@localhost rdc]# quotacheck -acfvugM

Upewnij się, że przydziały są włączone.

[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]#

Ponownie podłącz system plików

Jeśli partycja lub dysk jest oddzielony od partycji, która jest aktywnie uruchamiana, możemy ponownie zamontować bez ponownego uruchamiania. Jeśli limit został skonfigurowany na dysku / partycji uruchomionej w katalogu głównym /, może być konieczne ponowne uruchomienie systemu operacyjnego. Wymuszenie ponownego zamontowania i zastosowanie zmian może różnić się w zależności od potrzeby ponownego zamontowania systemu plików.

[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 ~]$

Jak widać, woluminy LVM są w użyciu. Więc łatwo jest po prostu zrestartować. Spowoduje to ponowne zamontowanie / home i załadowanie zmian konfiguracyjnych / etc / fstab do aktywnej konfiguracji.

Utwórz pliki bazy danych kwot

CentOS może teraz pracować z przydziałami dyskowymi w / home. Aby włączyć obsługę pełnego limitu, musimy uruchomićquotacheck Komenda.

quotacheck utworzy dwa pliki -

  • aquota.user
  • aquota.group

Są one używane do przechowywania informacji o przydziałach dla dysków / partycji z włączonymi przydziałami.

Poniżej przedstawiono typowe przełączniki quotacheck.

Przełącznik Akcja
-u Sprawdza limity użytkowników
-sol Sprawdza limity grupowe
-do Przydziały powinny być włączone dla każdego systemu plików z włączonymi limitami
-v Wyświetla szczegółowe dane wyjściowe

Dodaj limity przydziałów na użytkownika

W tym celu użyjemy polecenia edquota, po którym nastąpi nazwa użytkownika -

[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

Spójrzmy na każdą kolumnę.

  • Filesystem - Jest to limity systemu plików dla użytkownika, do którego zastosowano

  • blocks - Ile bloków aktualnie używa użytkownik w każdym systemie plików

  • soft- Ustaw bloki dla miękkiego limitu. Miękki limit umożliwia użytkownikowi przenoszenie kwoty na określony czas

  • hard- Ustaw bloki na twardy limit. Twardy limit to całkowity dopuszczalny limit

  • inodes - Ile i-węzłów aktualnie używa użytkownik

  • soft - Miękki limit i-węzłów

  • hard - Twardy limit i-węzłów

Aby sprawdzić aktualny limit jako użytkownik -

[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 ~]$

Poniżej znajduje się błąd wyświetlany użytkownikowi po przekroczeniu sztywnego limitu.

[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]$

Jak widać, jesteśmy blisko przydziału dyskowego tego użytkownika. Ustawmy ostrzeżenie o miękkim limicie. W ten sposób użytkownik zostanie powiadomiony z wyprzedzeniem przed wygaśnięciem limitów. Z doświadczenia wynika, że ​​użytkownicy końcowi zgłaszają skargi, gdy przychodzą do pracy i muszą poświęcić 45 minut na czyszczenie plików, aby faktycznie zabrać się do pracy.

Jako administrator możemy sprawdzić wykorzystanie limitu za pomocą repquota Komenda.

[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]#

Jak widać, użytkownik centos przekroczył swój twardy przydział bloków i nie może już używać więcej miejsca na dysku w / home .

- + oznacza, że ​​twardy limit został przekroczony w systemie plików.

Planując limity, trzeba trochę matematyki. Administrator powinien wiedzieć: Ilu użytkowników jest w systemie? Ile wolnego miejsca przydzielić użytkownikom / grupom? Ile bajtów tworzy blok w systemie plików?

Zdefiniuj limity w postaci bloków w odniesieniu do wolnego miejsca na dysku. Zaleca się pozostawienie „bezpiecznego” buforu wolnego miejsca w systemie plików, który pozostanie w najgorszym przypadku: wszystkie limity zostaną przekroczone jednocześnie. Dotyczy to zwłaszcza partycji używanej przez system do zapisywania dzienników.