Kwota ZFS: Powiedzmy, że masz pulę wielkości ZFS 10 GB. Utworzyłeś system plików ZFS na tej puli. Jeśli ustawiłeś limit 2 GB W tym systemie plików ZFS wówczas system plików ZFS może użyć tylko 2 GB miejsca na dysku z puli. Nie może użyć więcej niż tego, nawet jeśli na basenie dostępnym jest wolne miejsce.
Rezerwacja ZFS: Jeśli ustawiłeś limit 2 GB W przypadku systemu plików ZFS ZFS nie przydzieli 2 GB miejsca na dysku dla tego systemu plików. Miejsce na dysku będzie przydzielane zgodnie z wymaganiami do momentu osiągnięcia limitu kwot. Wyobraź sobie, że masz wiele systemów plików na puli ZFS, a wielu użytkowników pisze do nich. Może nadejść czas, kiedy limit kwotu systemu plików nie zostanie osiągnięty, ale inne systemy plików wypełniły przestrzeń dysku w puli. Tak więc, mimo że system plików zużył mniej niż 2 GB miejsca na dysku z puli, nadal nie będzie pisać do puli, ponieważ pula nie ma żadnego bezpłatnego miejsca na dysku.
Aby rozwiązać ten problem, możesz użyć rezerwacji ZFS. Możesz ustawić 2 GB rezerwacji dla twojego specjalnego systemu plików ZFS, a w momencie ustawienia rezerwacji, 2 GB miejsca na dysku zostanie przydzielone dla systemu plików z puli ZFS. W ten sposób, bez względu na to, ile danych przechowuje inne systemy plików na tej puli, nadal będziesz mieć dedykowane miejsca na dysku dla systemu plików i nadal będziesz mógł tworzyć pliki na tym systemie plików, nawet jeśli pula jest pełna (nie ma żadnych wolne miejsce na dysku).
W tym artykule pokażę, jak skonfigurować kwoty i zastrzeżenia dla systemów plików ZFS. Więc zacznijmy.
Spis treści
Tworzenie pul i systemy plików ZFS
Aby eksperymentować z kwotą i rezerwacją ZFS, utworzę pulę ZFS Pool1 i 4 systemy plików ZFS FS1, FS2, FS3, I FS4 na puli ZFS Pool1. Jeśli chcesz śledzić, możesz zrobić to samo.
W tym artykule użyje VDB I VDC Urządzenia do przechowywania w celu utworzenia puli ZFS Pool1.
$ sudo lsblk -e7 -dAby utworzyć pulę ZFS Pool1 używając VDB I VDC Urządzenia do przechowywania, uruchom następujące polecenie:
$ sudo zpool Utwórz -f pula 1 vdb vdcPula ZFS Pool1 należy utworzyć.
Lista $ sudo zfsUtwórz systemy plików FS1, FS2, FS3, I FS4 na puli ZFS Pool1 Z następującymi poleceniami:
$ sudo zfs Utwórz pulę1/fs1Systemy plików ZFS FS1, FS2, FS3, I FS4 należy utworzyć na puli ZFS Pool1.
Lista $ sudo zfsKonfigurowanie limitu systemu plików ZFS
Aby skonfigurować limit systemu plików ZFS, będziesz musiał skonfigurować kontyngent I Refquota właściwości tego systemu plików ZFS.
kontyngent: Kwota zostanie ustawiona dla danych, migawek systemu plików i klonów systemu plików. Tak więc całkowity rozmiar danych systemu plików, migawek systemu plików i klonów systemu plików nie mogą przekroczyć limitu kwot.
W skrócie,
system plików dane Rozmiar + system plików migawki Rozmiar + system plików klony rozmiar < kontyngent limit
Refquota: Limit kwoty jest ustawiony tylko dla danych systemu plików, a nie dla migawek systemu plików i klonów systemu plików.
W skrócie,
system plików dane rozmiar < Refquota limit
Domyślnie, kontyngent I Refquota Właściwości nie są ustawione na żadnych systemach plików ZFS. Tak więc dane systemu plików, migawki systemu plików i klony systemu plików dowolnego systemu plików ZFS mogą obejmować cały rozmiar puli ZFS.
Jak widzisz, kontyngent I Refquota właściwości są ustawione na nic na systemie plików ZFS FS1 domyślnie. To samo dla FS2, FS3, I FS4 systemy plików.
$ sudo zfs get refquota, limit puli1/fs1Ustanowić limit 2 GB dla systemu plików ZFS FS1, Uruchom następujące polecenie:
$ sudo zfs set kwot = 2G pula 1/fs1Jak widać, limit 2 GB jest ustawiony dla systemu plików ZFS FS1.
$ sudo zfs get quotta pula 1/fs1Po 2 GB z kontyngent jest ustawiony dla systemu plików ZFS FS1, dostępna przestrzeń na dysku (WYKORZYSTAĆ) FS1 system plików powinien być 2 GB Zamiast dostępnej przestrzeni dysku w basenie Pool1 (8.72 GB w takim przypadku), jak widać na zrzucie ekranu poniżej.
Lista $ sudo zfsUstaliłeś limit 2 GB dla systemu plików ZFS FS1. Więc nie możesz zatrzymać więcej niż 2 GB danych na systemie plików FS1. Wyobraź sobie, że tworzy kilka migawek i klonów systemu plików, które zużyły około 1 GB miejsca na dysku. W takim przypadku będziesz mieć tylko 1 GB miejsca na dysku dla danych na temat FS1 system plików. Jeśli migawki i klony systemu plików wykorzystują około 1.5 GB miejsca na dysku, będziesz mieć tylko 500 MB miejsca na dysku FS1 system plików. To jest problem.
Czasami możesz poświęcić trochę miejsca na przechowywanie tylko danych na temat systemu plików ZFS, aby migawki i klony systemu plików nie wykorzystały całego dostępnego miejsca na dysku z systemu plików ZFS. Możesz ustawić Refquota własność do tego.
Powiedzmy, że chcesz ustawić limit 2 GB dla systemu plików ZFS FS2 i poświęć 1 GB miejsca na dysku dane. W ten sposób możesz tylko użyć 1 GB miejsca na dysku do przechowywania Migawki systemu plików I klony.
Organizować coś 2 GB kwoty dla systemu plików ZFS FS2 następująco:
$ sudo zfs set kwot = 2G pula 1/fs1Jak widzisz, 2 GB limitu jest ustawiony dla systemu plików ZFS FS2.
Lista $ sudo zfsDedykować 1 GB miejsca na dysku do przechowywania tylko danych dla systemu plików ZFS FS2, Ustaw Refquota właściwość systemu plików FS2 następująco:
$ sudo zfs set refququota = 1 g pula 1/fs2Jak widać, Refquota właściwość jest ustawiona na 1 GB, i kontyngent właściwość jest ustawiona na 2 GB na systemie plików ZFS FS2.
$ sudo zfs get refquota, limit puli 1/fs2Dostępna przestrzeń dysku plików ZFS FS2 Powinien być 1 GB (1024 MB) - Rozmiar, który widziałeś za pomocą Refquota właściwość, jak widać na zrzucie ekranu poniżej.
Lista $ sudo zfsPo ustawieniu kwoty zobaczmy, jak przydzielane są przestrzenie dysku, tworząc pliki na systemie plików ZFS FS1 i FS2.
Stwórz 200 MB plik test.img w systemie plików ZFS FS1 następująco:
$ sudo dd if =/dev/land of =/pula1/fs1/test.IMG BS = 1M liczba = 200 status = postępStwórz 100 MB plik test.img w systemie plików ZFS FS2 następująco:
$ sudo dd if =/dev/land of =/pula1/fs2/test.IMG BS = 1M liczba = 100 Status = postępJak widzisz, FS1 zastosowania 200 MB miejsca na dysku i FS2 zastosowania 100 MB miejsca na dysku z basenu Pool1. Razem, 300 MB przestrzeni dysku jest używany z basenu Pool1. Nawet jeśli ustaliłeś kwoty dla FS1 I FS2 systemy plików, tylko wymagane miejsce na dysku jest przydzielane dla systemów plików FS1 I FS2 z basenu Pool1.
Lista $ sudo zfsJeśli chcesz ustawić limit tylko dla danych systemu plików ZFS, a nie dla migawek i klonów systemu plików, to tylko ustaw Refquota właściwość na żądanym systemie plików ZFS. Nie musisz ustawiać kontyngent nieruchomość. W ten sposób migawki i klony systemu plików mogą zajmować tyle miejsca na dysku, ile jest to wymagane z puli ZFS. Ale limit kwot zostanie umieszczony tylko na danych, które przechowujesz w systemie plików ZFS.
Jeśli nie bierzesz żadnych migawek systemu plików ani nie tworzysz klonów systemu plików, wtedy kontyngent I Refquota Pracuj w ten sam sposób. Nie ma znaczenia, którego z nich używasz.
Konfigurowanie rezerwacji systemu plików ZFS
Wcześniej widziałeś, że po ustawieniu kwoty na systemie plików ZFS nie jest automatycznie przydzielana na ten system plików z puli ZFS. Przestrzeń dysku jest przydzielana, ponieważ pliki są tworzone na tym systemie plików. Nie ma z tym problemu. Ale są chwile, kiedy tego nie chcesz.
W niektórych przypadkach możesz poświęcić trochę miejsca na dysku dla określonego systemu plików ZFS z puli. W ten sposób, nawet jeśli inne systemy plików wypełnią pulę, nadal będziesz mieć bezpłatne przestrzenie na systemie plików ZFS. Do tego jest używana rezerwacja ZFS.
Aby skonfigurować rezerwację systemu plików ZFS, będziesz musiał skonfigurować rezerwacja I Odświeżanie właściwości tego systemu plików ZFS.
Rezerwacja: Miejsce na dysku będzie zarezerwowane dla danych, migawek systemu plików i klonów systemu plików ZFS z puli ZFS.
Odświeżanie: Miejsce na dysku będzie zarezerwowane tylko dla danych systemu plików ZFS z puli ZFS. Żadne miejsce na dysku nie będzie zarezerwowane dla migawek systemu plików i klonów systemu plików.
Domyślnie, rezerwacja I Odświeżanie Właściwości nie są ustawione na żadnych systemach plików ZFS. ZFS nie przeznacza żadnego miejsca na dysku dla danych, migawek systemu plików i klonów systemu plików dowolnego systemu plików ZFS z puli ZFS.
Jak widzisz, rezerwacja I Odświeżanie właściwości są ustawione na nic na systemie plików ZFS FS3 domyślnie. To samo dla FS1, FS2, I FS4 systemy plików.
$ sudo zfs otrzymaj rezerwację, odświeżanie puli 1/fs3Domyślnie system plików ZFS FS3 I FS4 mają tę samą bezpłatną przestrzeń na dysku (8.43 GB) jako basen Pool1.
Lista $ sudo zfsRezerwować 2 GB miejsca na dysku dla systemu plików ZFS FS3 (W przypadku danych systemu plików, migawek i klonów) z puli ustaw rezerwacja właściwość systemu plików ZFS FS3 następująco:
$ sudo ZFS Set Reservation = 2G Pool1/FS3Jak widać, rezerwacja właściwość jest ustawiona na 2 GB dla systemu plików ZFS FS3.
$ sudo zfs get Reservation Pool1/FS3Zauważ, że natychmiast po ustawieniu rezerwacja własność do 2 GB dla systemu plików ZFS FS3, 2 GB jest używany z puli ZFS Pool11. Dostępne miejsce na dysku dla systemu plików ZFS FS3 Jest 2 GB Więcej niż pula ZFS Pool12.
Lista $ sudo zfsRezerwować 1 GB miejsca na dysku dla danych (nie dla migawek i klonów) systemu plików ZFS FS4 Z puli ustaw Odświeżanie właściwość systemu plików ZFS FS4 następująco:
$ sudo zfs zestaw odświeżania = 1 g puli1/fs4Odświeżanie właściwość powinna być ustawiona na 1 GB dla systemu plików ZFS FS4, Jak widać na zrzucie ekranu poniżej.
$ sudo zfs otrzymuj odświeżanie puli 1/fs4Zauważ, że natychmiast po ustawieniu Odświeżanie własność do 1 GB dla systemu plików ZFS FS4, 1 GB jest używany z systemu plików ZFS FS41. 1 GB jest również używany z puli ZFS Pool12, oraz dostępna przestrzeń dysku plików ZFS FS4 Jest 1 GB więcej3 niż pula ZFS Pool14.
Lista $ sudo zfsKonfigurowanie rezerwacji systemu plików ZFS wraz z kwotą
Możesz również użyć rezerwacji wraz z kwotą na systemach plików ZFS. Zobaczmy kilka przykładów.
Powiedzmy, że chcesz ustawić limit 2 GB dla systemu plików ZFS FS3 i rezerwat 2 GB miejsca na dysku dla systemu plików ZFS FS3 (do przechowywania danych systemu plików, migawek i klonów) z puli ZFS.
Aby to zrobić, ustaw kontyngent I rezerwacja właściwości systemu plików ZFS FS3 następująco:
$ sudo zfs set kwot = 2G Rezerwacja = 2G pula 1/fs3kontyngent I rezerwacja właściwości systemu plików ZFS FS3 powinien być ustawiony na 2 GB, Jak widać na zrzucie ekranu poniżej.
$ sudo zfs get quotta, Reservation Pool1/FS3Dostępna przestrzeń dysku plików ZFS FS3 powinien być ustawiony na 2 GB. 2 GB miejsca na dysku powinno być również zarezerwowane dla systemu plików ZFS FS3 Z puli ZFS Pool1.
Lista $ sudo zfsPowiedzmy, że chcesz ustawić limit 2 GB dla systemu plików ZFS FS4. Ale chcesz tylko zezwolić 1 GB miejsca na dysku do przechowywania danych systemu plików i drugiego 1 GB do przechowywania migawek i klonów systemu plików. Chcesz też zarezerwować 1 GB miejsca na dysku do przechowywania systemu plików ZFS FS4 Z puli ZFS.
Aby to zrobić, ustaw kontyngent, Refquota, I Odświeżanie właściwości systemu plików ZFS FS4 następująco:
$ sudo zfs set kwot = 2G refquota = 1G Refresation = 1G Pool1/FS4kontyngent właściwość systemu plików ZFS FS4 powinien być ustawiony na 2 GB, i Refquota I Odświeżanie właściwości powinny być ustawione na 1 GB, Jak widać na zrzucie ekranu poniżej.
$ sudo zfs set kwot, refquota, odświeżanie puli 1/fs4Dostępna przestrzeń dysku plików ZFS FS4 powinien być ustawiony na 1 GB. 1 GB miejsca na dysku powinno być również zarezerwowane dla systemu plików ZFS FS4 Z puli ZFS Pool1.
Lista $ sudo zfsPowiedzmy, że chcesz ustawić limit 2 GB dla systemu plików ZFS FS4. Ale chcesz tylko zezwolić 1 GB miejsca na dysku do przechowywania danych systemu plików i drugiego 1 GB do przechowywania migawek i klonów systemu plików. Chcesz też zarezerwować 2 GB miejsca na dysku do przechowywania danych systemu plików, migawek i klonów i 1 GB przestrzeni dysku z tej rezerwacji do przechowywania tylko systemu plików ZFS FS4.
Aby to zrobić, ustaw kontyngent, Refquota, rezerwacja, I Odświeżanie właściwości systemu plików ZFS FS4 następująco:
$ sudo zfs set kwot = 2G refquota = 1 g rezerwaJak widać, kontyngent I rezerwacja właściwości systemu plików ZFS FS4 są ustawione na 2 GB, i Refquota I Odświeżanie właściwości są ustawione na 1 GB.
$ sudo zfs get quoty, refquota, rezerwacja, odświeżanie puli 1/fs4Wcześniej system plików ZFS zarezerwował 1 GB miejsca na dysku z basenu Pool1. Teraz zarezerwował 1 GB więcej. Razem, 2 GB miejsca na dysku jest zarezerwowane dla systemu plików ZFS FS4 Z puli ZFS Pool1. Ponadto limit kwoty jest ustawiony dla systemu plików ZFS FS4.
Lista $ sudo zfsWyłączanie rezerwacji systemu plików ZFS
Możesz ustawić rezerwacja I Odświeżanie właściwość systemu plików ZFS nic Lub 0 Aby wyłączyć rezerwację tego systemu plików ZFS.
Aby wyłączyć rezerwację dla systemu plików ZFS FS4, Ustaw rezerwacja I Odświeżanie właściwości systemu plików ZFS FS4 Do nic następująco:
$ sudo ZFS Set Reservation = Brak Refresation = Brak puli 1/fs4Rezerwacja powinna być wyłączona dla systemu plików ZFS FS4.
$ sudo zfs otrzymaj rezerwację, odświeżanie puli 1/fs4Jak widzisz, 2 GB przestrzeni dysku (4.49 GB do 2.29 GB teraz) jest rozdzielone z puli ZFS Pool1 Ponieważ rezerwacja jest wyłączona dla systemu plików ZFS FS4.
Lista $ sudo zfsWyłączanie limitu systemu plików ZFS
Możesz ustawić kontyngent I Refquota właściwość systemu plików ZFS nic Lub 0 Aby wyłączyć kwotę dla tego systemu plików ZFS.
Aby wyłączyć kwotę dla systemu plików ZFS FS4, Ustaw kontyngent I Refquota właściwości systemu plików ZFS FS4 Do nic następująco:
$ sudo zfs set cuteta = Brak refquota = brak puli 1/fs4Kwota powinna być wyłączona dla systemu plików ZFS FS4.
$ sudo zfs get quotta, refquota pula 1/fs4Jak widać, dla systemu plików ZFS nie ustalono żadnych limitów kwot FS4 nie więcej.
Lista $ sudo zfsWniosek
W tym artykule omówiłem cechy limitu i rezerwacji systemu plików ZFS. Pokazałem, jak skonfigurować kwoty i rezerwacje dla systemów plików ZFS. Pokazałem również, jak wyłączyć kwoty i zastrzeżenia z systemów plików ZFS.
Bibliografia
[1] Ustawienie kwot i zastrzeżeń ZFS (Przewodnik administracyjny Solaris ZFS)