Wyszukiwanie w witrynie

Jak ustawić limity systemu plików (dysku) w systemie Ubuntu


Limit systemu plików to standardowa wbudowana funkcja dostępna w jądrze Linuksa. Przydziały określają ilość miejsca, jaką plik powinien mieć do obsługi działań użytkownika. Przydziały dysku ograniczają również liczbę plików, które użytkownik może utworzyć w systemie.

Systemy plików obsługujące system kwot obejmują między innymi xfs, ext2, ext4 i ext3. Przypisanie kwot jest specyficzne dla systemu plików i dla każdego użytkownika. W tym artykule znajdziesz wszystko, co musisz wiedzieć o pracy z systemem plików przydziałowych w środowisku Ubuntu dla wielu użytkowników.

Zakłada się, że używasz systemu Ubuntu z użytkownikiem (tecmint) posiadającym uprawnienia sudo. Podzielone tutaj pomysły mogą działać w dowolnej dystrybucji Linuksa, o ile zastosujesz odpowiednią technikę wdrażania.

Krok 1: Instalowanie przydziału w Ubuntu

Aby przydziały były gotowe i użyteczne, zainstaluj narzędzie wiersza poleceń quota za pomocą polecenia apt, ale wcześniej musisz zaktualizować pakiety oprogramowania systemowego.

sudo apt update

Teraz użyj następującego polecenia, aby zainstalować pakiet quota na Ubuntu.

sudo apt install quota

Naciśnij Y, a następnie ENTER, aby rozpocząć proces instalacji.

Potwierdź wersję instalacji, uruchamiając poniższe polecenie. Numer wersji może różnić się od tego, który widzisz poniżej.

quota --version

Krok 2: Instalowanie modułu dla jądra przydziałów

W przypadku użytkowników systemu wirtualnego opartego na chmurze w domyślnej instalacji Ubuntu może brakować modułów jądra obsługujących wykorzystanie przydziałów. Musisz potwierdzić użycie narzędzia wyszukiwania i upewnić się, że dwa moduły, quota_v1 i quota _v2, znajdują się w katalogu /lib/modules.

find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Taki powinien być wynik powyższego polecenia.

Nie przejmuj się wersjami jądra, o ile obecne są oba moduły. Jeśli nie zostanie znaleziony, użyj następującego polecenia, aby zainstalować moduły jądra przydziału, jak pokazano.

sudo apt install linux-image-extra-virtual

Otrzymasz odpowiednie moduły potrzebne do wdrożenia kwot.

Krok 3: Aktualizacja opcji montowania systemu plików

Aby przydziały były aktywne w konkretnym systemie, należy go zamontować z powiązanymi opcjami przydziałów. Możesz to zrobić, aktualizując wpis systemu plików znajdujący się w pliku /etc/fstab.

sudo nano /etc/fstab

Powinieneś być gotowy do odpowiedniej edycji pliku. Różnica między plikiem fstab a plikiem na komputerze polega na różnicy w sposobie, w jaki / lub główny system plików reprezentuje całe miejsce na dysku. Zastąp linię (/) wskazującą system główny, korzystając z poniższych linii.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Linie zmienią się, aby umożliwić dostęp do userquota i grpquota. Możesz pozostawić taki, który nie jest częścią ostatecznej konfiguracji. Jeśli fstab miał jakieś opcje, dodaj nowe opcje na końcu linii. Podczas dodawania nowe elementy oddzielaj przecinkami, ale bez odstępów między nimi.

Zamontuj ponownie system plików, aby zmiany odniosły skutek.

sudo mount -o remount /

UWAGA: upewnij się, że pomiędzy opcjami w /etc/fstab nie ma spacji, aby uniknąć takich błędów.

mount: /etc/fstab: parse error

Weryfikacja użycia nowych opcji przy montowaniu systemu plików w pliku /proc/mounts odbywa się poprzez grep. Polecenie wyświetla w pliku wpis głównego systemu plików.

sudo cat /proc/mounts | grep ' / '

W wynikach widać dwie skonfigurowane przez nas opcje. Czas włączyć system kwotowy.

Krok 4: Włączanie przydziałów dysku w Ubuntu

Najpierw musisz uruchomić polecenie quotacheck.

sudo quotacheck -ugm /

Polecenie tworzy dwa pliki, użytkownik przydziału i grupa przydziałów, które zawierają informacje na temat limitów i wykorzystania systemu plików. Pliki te muszą być dostępne przed rozpoczęciem korzystania z limitu.

Oto definicja parametrów:

  • -u: symbolizuje utworzenie pliku kwot opartego na użytkownikach.
  • -g: wskazuje, że zostanie utworzony plik kwot oparty na grupach.
  • -m: wyłącza ponowne montowanie systemu plików w trybie tylko do odczytu, jednocześnie dając dokładne wyniki w środowisku, w którym użytkownik ciągle zapisuje pliki. Opcja m nie jest obowiązkowa podczas konfiguracji.

Jeśli nie ma potrzeby włączania wykorzystania limitów na podstawie użytkownika lub grupy, nie ma potrzeby uruchamiania opcji quotacheck. Potwierdź to, wyświetlając katalog główny za pomocą polecenia ls.

ls /
Przykładowe wyjście
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Jeśli w poleceniu quotacheck nie zostaną uwzględnione parametry u i g, będzie brakować odpowiednich plików.

Teraz jesteśmy gotowi włączyć limit w głównym systemie plików (/) za pomocą następującego polecenia.

sudo quotaon -v /

Krok 5: Skonfiguruj limity dla pojedynczego użytkownika

Możemy użyć poleceń edquota i setquota, aby ustawić je dla użytkowników lub grup.

Korzystanie z edquoty

Komendy edquota edytują limity, na przykład możemy edytować limit należący do użytkownika tecmint za pomocą:

sudo edquota -u tecmint

Użycie opcji -u określa, że przydział należy do użytkownika. Użyj opcji -g, jeśli chcesz edytować limit należący do grupy. Polecenie otworzy plik przy użyciu wybranego edytora tekstu.

Dane wyjściowe zawierają nazwę użytkownika, identyfikator użytkownika, system plików z aktywnymi przydziałami oraz użycie bloków i i-węzłów. Limit oparty na i-węzłach ogranicza liczbę plików i katalogów, które użytkownicy mogą utworzyć, niezależnie od rozmiaru dysku. Większość administratorów preferuje limit oparty na blokach, który kontroluje miejsce na dysku.

UWAGA: użycie bloków nie pokazuje, jak mogą się one zmieniać w zależności od różnych czynników, takich jak zgłaszające je narzędzie wiersza poleceń. W ramach limitów kontekstowych w Ubuntu możemy założyć, że pojedynczy blok to tyle samo, co jeden kilobajt miejsca na dysku.

Używając powyższego wiersza poleceń, użytkownik użyje 2032 bloków, co odpowiada 2032 KB miejsca na /dev/sda1. Wartość 0 wyłącza zarówno miękkie, jak i twarde limity.

Każdy zestaw kwot pozwala na ustawienie limitów miękkich i twardych. Użytkownik, który przekroczy miękki limit, może przekroczyć swój limit, ale nie będzie miał zakazu używania większej liczby spacji lub i-węzłów. Użytkownik w takim przypadku ma siedem dni na wykorzystanie swojego miękkiego limitu miejsca, a niezastosowanie się do tego powoduje trudności w zapisywaniu lub tworzeniu plików.

Twardy limit oznacza, że tworzenie nowych bloków lub i-węzłów zatrzymuje się w momencie osiągnięcia limitu. Użytkownicy będą zgłaszać ostrzeżenia lub błędy podczas wykonywania zwykłych zadań.

Możemy zaktualizować limit bloków Tecmint, aby mieć miękki limit 100MB i 110MB dla twardego limitu.

Po edycji zamknij plik i sprawdź ustawienia nowego limitu przydziału użytkownika za pomocą polecenie quota.

sudo quota -vs tecmint

UWAGA: aby umożliwić użytkownikom analizowanie przydziałów bez wywoływania polecenie sudo, muszą oni mieć możliwość odczytu plików przydziałów podczas faza tworzenia w kroku czwartym. Jednym z łatwych sposobów jest utworzenie grupy użytkowników i przyznanie jej dostępu, aby można było dodawać do niej użytkowników.

Korzystanie z setquota

setquota aktualizuje informacje o przydziałach za pomocą jednego polecenia, bez żadnej interaktywnej konfiguracji. Polecenie wymaga podania nazwy użytkownika i ustawienia zarówno miękkich, jak i twardych limitów, których będzie używać blok i i-węzeł. Będziesz także musiał zadeklarować system plików, z którego będzie korzystał limit.

sudo setquota -u tecmint 200M 220M 0 0 /

Polecenie podwaja limity blokowe do 200 megabajtów i 220 megabajtów. Dwa 0 0 wskazują, że zarówno twarde, jak i miękkie limity nie są ustawione. Jest to wymagane nawet wtedy, gdy nie ma potrzeby ustawiania limitów opartych na i-węzłach.

Jak zwykle użyj polecenia quota, aby sprawdzić swoje postępy.

sudo quota -vs tecmint

Krok 6: Generowanie raportów dotyczących przydziałów

Wygenerowanie raportu dotyczącego przydziału musi wskazywać wykorzystanie przez wszystkich użytkowników. Używane jest polecenie repquota.

sudo repquota -s /

Powyższe dane wyjściowe to raport dotyczący głównego systemu plików /. -s instruuje repquota, aby podawać wyniki w formacie czytelnym dla człowieka.

Domyślny czas prolongaty blokady wynosi 7 dni. Kolumna prolongaty informuje użytkownika o liczbie dni poprzedzających odmowę dostępu do dysku zasobów.

Krok 7: Ustaw okresy prolongaty konfiguracji

Okres karencji to czas, w którym użytkownik otrzymuje pozwolenie na pracę po upływie domyślnego terminu.

sudo setquota -t 864000 864000 /

Polecenie instruuje, że blok i i-węzeł mają okres prolongaty wynoszący 864000 sekund, co odpowiada 10 dniom. Ustawienie będzie miało wpływ na wszystkich użytkowników, dlatego wartości należy ustawić nawet wtedy, gdy nie będzie używane bloki i i-węzły. Wartość czasu musi być podana w sekundach.

Potwierdź zmiany i sprawdź, czy zaczęły obowiązywać, za pomocą polecenia:

sudo repquota -s /

Najczęstsze komunikaty o błędach

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

Powyższy błąd występuje często, jeśli spróbujesz włączyć limity za pomocą polecenia qoutaon przed próbą sprawdzenia statusu limitu za pomocą polecenia quotacheck.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Ten błąd informuje Administratora, że jądro go nie obsługuje lub możesz mieć niewłaściwą wersję na komputerze (mamy quota_v1 i quota_v2). W przypadku Ubuntu takie błędy są typowe na serwerze wirtualnym opartym na chmurze.

Napraw błąd, instalując pakiet Linux-image-extra-virtual za pomocą polecenia apt.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

Błąd jest zauważalny, gdy bieżący użytkownik nie ma uprawnień do odczytu plików kwot. Jako administrator musisz wprowadzić prawidłowe zmiany uprawnień lub użyć sudo tylko wtedy, gdy potrzebujesz dostępu do plików w systemie przydziałów lub pliku.

Wniosek

Na początku artykułu zaczęliśmy od narzędzi wiersza poleceń quota i weryfikacji wersji jądra, a następnie poszliśmy dalej, aby wyjaśnić, jak skonfigurować limit blokowy dla pojedynczego użytkownika i jak wygeneruj raport dotyczący wykorzystania limitu systemu plików.

W artykule omówiono także typowe błędy i sposoby ich uniknięcia poprzez użycie dodatkowego pakietu lub weryfikację wersji jądra w systemie.