Jak skonfigurować kwoty i zastrzeżenia ZFS

Jak skonfigurować kwoty i zastrzeżenia ZFS
ZFS Kontyngent I Rezerwacja są używane do ograniczenia ilości miejsca na dysku, którego określony system plików ZFS może użyć z puli ZFS.

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

  1. Tworzenie pul i systemy plików ZFS
  2. Konfigurowanie limitu systemu plików ZFS
  3. Konfigurowanie rezerwacji systemu plików ZFS
  4. Konfigurowanie rezerwacji systemu plików ZFS wraz z kwotą
  5. Wyłączanie rezerwacji systemu plików ZFS
  6. Wyłączanie limitu systemu plików ZFS
  7. Wniosek
  8. Bibliografia

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 -d

Aby 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 vdc

Pula ZFS Pool1 należy utworzyć.

Lista $ sudo zfs

Utwórz systemy plików FS1, FS2, FS3, I FS4 na puli ZFS Pool1 Z następującymi poleceniami:

$ sudo zfs Utwórz pulę1/fs1
$ sudo zfs Utwórz pulę1/fs2
$ sudo zfs Utwórz pulę1/fs3
$ sudo zfs Utwórz pulę1/fs4

Systemy plików ZFS FS1, FS2, FS3, I FS4 należy utworzyć na puli ZFS Pool1.

Lista $ sudo zfs

Konfigurowanie 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/fs1

Ustanowić limit 2 GB dla systemu plików ZFS FS1, Uruchom następujące polecenie:

$ sudo zfs set kwot = 2G pula 1/fs1

Jak widać, limit 2 GB jest ustawiony dla systemu plików ZFS FS1.

$ sudo zfs get quotta pula 1/fs1

Po 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 zfs

Ustalił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/fs1

Jak widzisz, 2 GB limitu jest ustawiony dla systemu plików ZFS FS2.

Lista $ sudo zfs

Dedykować 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/fs2

Jak 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/fs2

Dostę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 zfs

Po 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ęp

Stwó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ęp

Jak 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 zfs

Jeś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/fs3

Domyślnie system plików ZFS FS3 I FS4 mają tę samą bezpłatną przestrzeń na dysku (8.43 GB) jako basen Pool1.

Lista $ sudo zfs

Rezerwować 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/FS3

Jak widać, rezerwacja właściwość jest ustawiona na 2 GB dla systemu plików ZFS FS3.

$ sudo zfs get Reservation Pool1/FS3

Zauważ, ż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 zfs

Rezerwować 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/fs4

Odś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/fs4

Zauważ, ż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 zfs

Konfigurowanie 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/fs3

kontyngent 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/FS3

Dostę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 zfs

Powiedzmy, ż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/FS4

kontyngent 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/fs4

Dostę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 zfs

Powiedzmy, ż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 rezerwa

Jak 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/fs4

Wcześ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 zfs

Wyłą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/fs4

Rezerwacja powinna być wyłączona dla systemu plików ZFS FS4.

$ sudo zfs otrzymaj rezerwację, odświeżanie puli 1/fs4

Jak 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 zfs

Wyłą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/fs4

Kwota powinna być wyłączona dla systemu plików ZFS FS4.

$ sudo zfs get quotta, refquota pula 1/fs4

Jak widać, dla systemu plików ZFS nie ustalono żadnych limitów kwot FS4 nie więcej.

Lista $ sudo zfs

Wniosek

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)