Przejdź do głównej zawartości

Linux RHCSA cz.21 - System plików - Zarządzanie limitami dyskowymi- QUOTAS

QUOTAS - czyli limity dyskowe określające dostępne rozmiary przestrzeni dyskowej dla poszczególnych użytkowników. Jeżeli wszystkie zagadnienia z poprzednich rozdziałów mamy już za sobą teraz dodamy kolejne narzędzie usprawniające zarządzanie i administrację systemem. Zobaczymy jak przydzielić ograniczoną ilość przestrzeni dyskowej danemu użytkownikowi. 

Krok 1 - Instalacja pakietu quota.

# yum install – y quota

Krok 2 - Weryfikacja poprawności instalacji pakietu

# rpm -qa | grep quota
quota-3.17-10.el6.x86_64

Pomimo że domyślnie pakiet ten powinien znajdować się w systemie warto zawsze sprawdzić czy jest i pracuje prawidłowo.

Krok 3 - Sprawdzenie czy jądro systemu wspiera quota

# grep -i config_quota /boot/config-`uname -r`
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y

Jeżeli widać "y" oznacza to iż jądro systemu wspiera "quota" .

KONFIGURACJA LIMITÓW QUOTA 

Na początku zobaczymy jakimi poleceniami będziemy się posługiwać :

  • quotaon            - Włączenie konfiguracji quota 
  • quotaoff            - Wyłączenie ograniczeń quota
  • edquota            - Edycja ustawień limitów dla użytkowników
  • quota                - Zezwolenie dla użytkownika na wykorzystanie przestrzeni dysku 
  • repquota          - Generowanie raportu o użyciu quota
  • quotacheck      - Inicjalizacja bazy danych quota
Poznaliśmy już polecenia jakich będziemy używać w celu ustalania limitów. Teraz po pierwsze należy wyedytować plik /etc/fstab by ustalić, na których systemach plików "quota" ma obowiązywać. Ograniczenia mogą dotyczyć użytkownika, grupy lub obu zakresów jednocześnie. 

Krok 1 - Edycja pliku /etc/fstab dopisujemy jak poniżej

/dev/hdb1 /opt/company_data ext4 defaults,usrquota,grpquota 1 2

Krok 2 - Zapisanie i zamknięcie pliku 

UWAGA 
Jeżeli edytujemy plik w jakimś edytorze tekstu może on źle zapisać miejsce nowego wiersza. Dokładnie upewnij się że tak nie jest. Jeżeli podczas startu systemu wykryte zostanie, że wartości pliku /etc/fstab zostały zapisane w dwóch różnych liniach zostanie to potraktowane jako błąd i system nie uruchomi się

Teraz należy przemontować dany system plików by osiągnąć zamierzony efekt. 

Krok 3 - Przemontowanie 

# mount -o remount /opt/company_data

Krok 4 - Weryfikacja zmian 

# mount | grep company_data
/dev/hdb1 on /opt/company_data type ext4 (rw,usrquota,grpquota)

Wraz z dodaniem opcji limitowania w pliku /opt/company_data możemy rozpocząć konfigurację określonych opcji określających limity. Istnieją dwa pliki w których dokonujemy konfiguracji dla użytkowników i grup. 

aquota.users            Plik limitów dla użytkowników
aquota.group           Plik limitów dla grup 

Te dwa pliki zostają utworzone automatycznie w katalogu danego systemu plików w momencie włączenia opcji quota. Pokazane ćwiczenia dotyczą systemu plików /opt/company_data. By zacząć używać systemu limitów użyj polecenia quotacheck

Składnia polecenia quotacheck : # quotacheck [opcje] <partycja>

Opcje polecenia quotacheck : 
  • -c   - Nie odczytuj istniejących plików qouota
  • -u   - Sprawdź tylko limity użytkowników
  • -g   - Sprawdź tylko limity grup 
  • -m  - Nie przemontuj systemu plików tylko do odczytu
  • -v   - Wyświetlaj informacje o bieżących operacjach 
Limity "quota" nie powinny być zakładane na systemach plików, które są aktywnie wykorzystywane. Prowadzić to może do uszkodzenia przez co narzędzie quota w celu ochrony przed uszkodzeniem przemontuje system plików na stan tylko do odczytu. Ponieważ nie chcemy by partycja /opt/company_data stała się partycją tylko do odczytu możemy zastosować przełącznik "-m" aby się przed tym uchronić.  Wtym przypadku wiemy również, iż nie istniały żadne inne pliki limitów dlatego też uszkodzenie nie jest raczej możliwe. 

Krok 5 - Utworzenie plików limitów quota 

# quotacheck -ugm /opt/company_data/

Krok 6 - Sprawdzenie czy pliki zostały poprawnie utworzone

# ls /opt/company_data/
aquota.group aquota.user lost+found

URUCHOMIENIE I ZASTOSOWANIE QUOTA

Normalnie stosujemy polecenia "quotaon" lub "quotaoff" dla limitowania systemów plików ale jeżeli chcielibyśmy by działo się to automatycznie przy uruchomieniu systemu. Polecenie quota on nie może wywołać plików limitów utworzonych w katalogu "root". 

Krok 1 - Uruchom polecenie ręcznie 

# quotaon -v /opt/company_data/
/dev/hdb1 [/opt/company_data]: group quotas turned on
/dev/hdb1 [/opt/company_data]: user quotas turned on

 W tym miejscu krótko przedstawię dwa różne rodzaje limitowania w quota: 
  • Soft Limit - Limit określający maksymalny rozmiar przestrzeni dyskowej dla użytkownika  posiadający okres karencji, działający jak alarm sygnalizujący moment osiągnięcia limitu przez użytkownika. Jeżeli okres karencji dobiega końca użytkownik jest zobowiązany usunąć nadmiarowe pliki jakie posiada. Jeżeli okres karencji nie został określony "Soft Limit" - określa maksymalną liczbę plików jaką może posiadać użytkownik. 
  • Hard Limit - Ma zastosowanie w momencie określenia okresu karencji w Soft Limit. Jeżeli hard limit został włączony oznacz on maksymalną nieprzekraczalną granicę do której można dojść przed wygaśnięciem okresu karencji wyznaczonej w soft limit. 
Znając powyższe limity możesz rozpocząć tworzenie ograniczeń dla użytkowników systemu jakim administrujesz. W systemie powinien istnieć z poprzednich ćwiczeń użytkownik User01 (jeżeli nie utwórz go ) Zastosujmy polecenie "edquota" do konfiguracji. Ponieważ użytkownik nie ma jeszcze dostępu do tej części systemu plików nie użytkuję tu żadnej przestrzeni. Aby dobrze opracować przydziały dyskowe dla użytkowników należy zrobić kilka założeń i wszystko ułożyć dobrze w głowie. Każdy blok jest równy 1 KB. Należy pamiętać że w tym przypadku 1,000KB = 1MB więc tutaj pobierasz jedynie 40kb wolnej przestrzeni. Możesz również ograniczyć liczbę plików jakie może posiadać dany użytkownik. Możemy również założyć miekki i twardy limit dla użytkownika User01. Na potrzeby przećwiczenia tego zagadnienia utwórzmy limity na ilość miejsca w których : soft limit = 20 MB , a hard limit = 25 MB. Ustawienia limitów wykonujemy poleceniem "edquota

Składnia polecenia edquota : # edquota [ -u | -g ] ( username | groupname) 

Krok 2 - Zmieniamy system plików dla /dev/hdb1 w następujący sposób:

# edquota -u user01
Disk quotas for user user01 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 20000 25000 0 0 0

Krok 3 - Zapisz zmiany i zamknij plik 

Teraz User01 posiada już zdefiniowane limity swojej przestrzeni. Ustawmy również okresy karencji dla tego użytkownika. 

Krok 4 - Ponownie używamy polecenie edquota ale z innym przełącznikiem

# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb1 7days 7days

Krok 5 -  Zmieniamy ostatnią linie zgodnie z przykładem : 

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb1 2days 2days

Krok 6 - Zapisujemy zmiany i zamykamy plik 

UWAGA
Podczas wpisywania limitów w plikach nie używamy pustych znaków spacji.

Aby zastosować takie same limity dla innych użytkowników wystarczy skopiować te uprawnienia: 

# edquota -up user01 user02 user03

Ograniczenia dla użytkowników zostały nałożone zobaczmy teraz w jaki sposób można przeglądać ustawione limity. 

QUOTA REPORTS 

Możemy użyć polecenia "repquota" w celu zebrania informacji na temat założonych limitów. 

Składnia polecenia repquota : # repquota [opcje] <partycja> 

Opcje polecenia repquota: 
  • -a     Raport o wszystkich nie NFS'owych systemach plików
  • -u     Raport limitów dotyczący użytkowników
  • -g     Raport limitów dla grup 
  • -v     Wyświetlenie informacji o przebiegających zadaniach
Krok 1 - Wyświetl informacje o limitach dla użytkowników systemu 

# repquota -uv /opt/company_data/
*** Report for user quotas on device /dev/hdb1
Block grace time: 2days; Inode grace time: 2days
Block limits File limits
User used soft hard grace used soft
hard grace
—————————————————————————————————
——
root — 142656 0 0 4 0 0
user01 — 0 20000 25000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000

Widzimy dużo informacji dotyczących założonych limitów. Później zautomatyzujemy ten proces by zbierać informacje dzienne, tygodniowe i inne dla danych użytkowników. Te informacje dają wiedzę administratorowi w kwestii, w jaki sposób użytkownicy wykorzystują przestrzeń dyskową środowiska.  


Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości