3. Quota w NTFS

W systemie Windows długo nie było wsparcia dla quoty, pojawiło się dopiero wraz NTFS-em.

Quota w systemie NTFS pozwala na ustawienie limitu dla każdego użytkownika z osobna, można również ustawić opcję logowania każdego zdarzenia które przekracza limit. Jeżeli program użytkownika przekracza limit dyskowy, to próba alokacji nowego kawałka dysku kończ y się błędem "disk full".

Ustawienie limitów w Windowsie jest bardzo proste, co pokazuje poniższy obrazek:

Figure 12.1. Ustawianie quoty w systemie operacyjnym Windows

Ustawianie quoty w systemie operacyjnym Windows

Jak widać można ustawić "warning level", co odpowiada limitowi miękkiemu, oraz "limit disk space", co odpowiada limitowi twardemu. Dodatkowo po kliknięciu w Quota Entries możemy ustawić inne limity aktualnym użytkownikom.

NTFS przechowuje informacje o limitach w pliku \$Extend\$Quota, który zawiera tabele $O i $Q. NFTS przydziela każdemu użytkownikowi unikalny numer UserID. Kiedy administrator ustawia limit dla użytkownika, NTFS przypisuje jego Security ID (SID) numer użytkownika User ID oraz w tabeli $Q zamieszcza informacje o limitach dla danego użytkownika. Informacja w tabeli $Q zawiera nie tylko wartość limitu, ale także ilość aktualnie zajętego miejsca.

Przy liczeniu sumarycznego miejsca zajmowanego przez użytkownika, rozmiar pliku jest liczony na podstawie jego nominalnej wielkości a niekoniecznie ilości faktycznego miejsca zajętego na dysku. Chodzi tu zwłaszcza o rzadkie pliki czy sytuacje, gdy jest włączona kompresja dysku. Wtedy nawet jeżeli plik o rozmiarze 50 KB po skompresowaniu zajmuje na dysku tylko 10 KB, to cała jego wielkość (czyli 50 KB) zostanie uznana jako używana przez użytkownika.

Poniżej znajduje się obrazek ilustrujący wygląd tabel $O i $Q:

Figure 12.2. Plik informacji o quocie

Plik informacji o quocie

Kiedy aplikacja tworzy plik, NTFS bierze Security ID danej aplikacji i wyszukuje odpowiadający jej numer User ID w tabeli $O. Później sprawdza w tablicy $Q czy stworzenie danego pliku nie przekroczy limitów. Jeżeli przekracza, to NTFS odmawia stworzenia pliku i rejestruje ten fakt w logach systemowych. W przeciwnym przypadku NTFS uaktualnia dane o ilości zajętego przez danego użytkownika miejsca.