ZFS -Quote: Nehmen wir an, Sie haben einen ZFS -Pool der Größe 10 GB. Sie haben ein ZFS -Dateisystem auf diesem Pool erstellt. Wenn Sie eine Quote von festlegen 2 GB Für dieses ZFS -Dateisystem kann das ZFS -Dateisystem nur 2 GB Speicherplatz aus dem Pool verwenden. Es kann nicht mehr als das gebrauchen, auch wenn auf dem Pool freien Speicherplatz verfügbar ist.
ZFS Reservierung: Wenn Sie eine Quote von festlegen 2 GB Für ein ZFS -Dateisystem ordnen ZFS sofort 2 GB Speicherplatz für dieses Dateisystem sofort zu. Der Speicherplatz wird nach Bedarf zugewiesen, bis die Quotengrenze erreicht ist. Stellen Sie sich vor, Sie haben viele Dateisysteme in Ihrem ZFS -Pool, und viele Benutzer schreiben ihnen. Es kann eine Zeit kommen, in der das Quotenlimit eines Dateisystems nicht erreicht wird, aber andere Dateisysteme haben den Speicherplatz des Pools gefüllt. Obwohl das Dateisystem weniger als 2 GB Scheibenraum aus dem Pool verbraucht, wird es nicht in den Pool geschrieben, da der Pool keinen kostenlosen Speicherplatz hat.
Um dieses Problem zu lösen, können Sie die ZFS -Reservierung verwenden. Sie können festlegen 2 GB Reservierung für Ihr ganz spezielles ZFS -Dateisystem und in dem Moment, in dem Sie die Reservierung festlegen, werden 2 GB Speicherplatz für das Dateisystem aus dem ZFS -Pool zugewiesen. Auf diese Weise, unabhängig davon, wie viel Daten andere Dateisysteme auf diesem Pool speichern freier Speicherplatz).
In diesem Artikel zeige ich Ihnen, wie Sie Quoten und Reservierungen für ZFS -Dateisysteme konfigurieren können. Also lasst uns anfangen.
Inhaltsverzeichnis
Erstellen von ZFS -Pools und Dateisystemen
Um mit ZFS -Quoten und Reservierung zu experimentieren, werde ich einen ZFS -Pool erstellen Pool1 und 4 ZFS -Dateisysteme FS1, FS2, FS3, Und FS4 Auf dem ZFS -Pool Pool1. Wenn Sie mitmachen möchten, können Sie dasselbe tun.
Dieser Artikel wird die verwenden VDB Und VDC Speichergeräte zum Erstellen des ZFS -Pools Pool1.
$ sudo lsblk -e7 -dSo erstellen Sie den ZFS -Pool Pool1 Verwendung der VDB Und VDC Speichergeräte führen Sie den folgenden Befehl aus:
$ sudo zpool erstellen -f pool1 vdb vdcEin ZFS -Pool Pool1 sollte erstellt werden.
$ sudo ZFS -ListeErstellen Sie die Dateisysteme FS1, FS2, FS3, Und FS4 Auf dem ZFS -Pool Pool1 mit den folgenden Befehlen:
$ sudo ZFS erstellen Pool1/FS1Die ZFS -Dateisysteme FS1, FS2, FS3, Und FS4 sollte im ZFS -Pool erstellt werden Pool1.
$ sudo ZFS -ListeKonfigurieren von ZFS -Dateisystemkontingent
Um ein Quoten für ein ZFS -Dateisystem einzurichten, müssen Sie die konfigurieren Quote Und Refquota Eigenschaften dieses ZFS -Dateisystems.
Quote: Das Kontingent wird für Daten, Dateisystem -Schnappschüsse und Dateisystemklone festgelegt. Die Gesamtgröße der Daten Ihres Dateisystems, der Dateisystem -Schnappschüsse und der Dateisystemklone nicht überschreiten das Quotenlimit nicht überschreiten.
Zusamenfassend,
Dateisystem Daten Größe + Dateisystem Schnappschüsse Größe + Dateisystem Klone Größe < Quote Grenze
Refquota: Das Quotenlimit wird nur für die Dateisystemdaten festgelegt, nicht für die Dateisystem -Schnappschüsse und Dateisystemklone.
Zusamenfassend,
Dateisystem Daten Größe < Refquota Grenze
Standardmäßig die Quote Und Refquota Eigenschaften werden in keiner ZFS -Dateisysteme festgelegt. Daher können die Dateisystemdaten, die Dateisystem -Schnappschüsse und die Dateisystemklone eines beliebigen ZFS -Dateisystemsystems die gesamte Größe des ZFS -Pools umfassen.
Wie du sehen kannst, Quote Und Refquota Eigenschaften werden auf eingestellt keiner Auf dem ZFS -Dateisystem FS1 standardmäßig. Es ist das gleiche für die FS2, FS3, Und FS4 Dateisysteme auch.
$ sudo zfs erhalten Refquota, Quotenpool1/FS1Eine Quote von festlegen 2 GB Für das ZFS -Dateisystem FS1, Führen Sie den folgenden Befehl aus:
$ sudo ZFS setzen Quoten = 2G Pool1/FS1Wie Sie sehen können, eine Quote von 2 GB ist für das ZFS -Dateisystem eingestellt FS1.
$ sudo ZFS erhalten Quotenpool1/FS1Nach 2 GB von Quote ist für das ZFS -Dateisystem eingestellt FS1, der verfügbare Festplattenraum (Nutzen) des FS1 Dateisystem sollte sein 2 GB Anstelle des verfügbaren Speicherplatzes des Pools Pool1 (8.72 GB in diesem Fall), wie Sie im Screenshot unten sehen können.
$ sudo ZFS -ListeSie haben eine Quote von festgelegt 2 GB Für das ZFS -Dateisystem FS1. Sie können also nicht mehr als 2 GB Daten im Dateisystem aufbewahren FS1. Stellen Sie sich vor. In diesem Fall haben Sie nur 1 GB Speicherplatz für Daten auf dem FS1 Dateisystem. Wenn Dateisystem -Schnappschüsse und Klone ca. 1 verwenden.5 GB Speicherplatz haben Sie nur 500 MB Speicherplatz für Daten zur Verfügung FS1 Dateisystem. Das ist ein Problem.
Manchmal möchten Sie einen Speicherplatz für das Speichern von nur Daten auf Ihrem ZFS -Dateisystem einsetzen, sodass Dateisystem -Schnappschüsse und Klone nicht den gesamten verfügbaren Speicherplatz aus dem ZFS -Dateisystem verbrauchen. Sie können die festlegen Refquota Eigentum dafür.
Angenommen, Sie möchten eine Quote von festlegen 2 GB Für das ZFS -Dateisystem FS2 und widmen 1 GB von Scheibenraum nur für nur für Daten. Auf diese Weise können Sie nur verwenden 1 GB des Speicherplatzes zum Aufbewahren Dateisystem -Schnappschüsse Und Klone.
Aufstellen 2 GB von Quoten für das ZFS -Dateisystem FS2 folgendermaßen:
$ sudo ZFS setzen Quoten = 2G Pool1/FS1Wie du sehen kannst, 2 GB von Quota ist für das ZFS -Dateisystem festgelegt FS2.
$ sudo ZFS -ListeWidmen 1 GB des Festplattenraums zum Speichern von nur Daten für das ZFS -Dateisystem FS2, Setzen Sie die Refquota Eigenschaft des Dateisystems FS2 folgendermaßen:
$ sudo zfs set refquota = 1 g pool1/fs2Wie Sie sehen können, die Refquota Eigenschaft ist eingestellt auf 1 GB, und das Quote Eigenschaft ist eingestellt auf 2 GB Auf dem ZFS -Dateisystem FS2.
$ sudo zfs erhalten Refquota, Quotenpool1/FS2Der verfügbare Speicherplatz des ZFS -Dateisystems FS2 sollte sein 1 GB (1024 MB) - Die Größe, die Sie verwendet haben Refquota Eigenschaft, wie Sie im Screenshot unten sehen können.
$ sudo ZFS -ListeNachdem die Quote festgelegt wurde, sehen wir uns an, wie die Festplattenräume zugewiesen werden, wenn Sie Dateien auf den ZFS -Dateisystemen FS1 und FS2 erstellen.
Ein ... kreieren 200 MB Datei prüfen.img Im ZFS -Dateisystem FS1 folgendermaßen:
$ sudo dd if =/dev/random von =/pool1/fs1/test.IMG BS = 1M count = 200 Status = FortschrittEin ... kreieren 100 MB Datei prüfen.img Im ZFS -Dateisystem FS2 folgendermaßen:
$ sudo dd if =/dev/random von =/pool1/fs2/test.IMG BS = 1M Anzahl = 100 Status = FortschrittWie du sehen kannst, FS1 Verwendet 200 MB des Festplattenraums und FS2 Verwendet 100 MB des Speicherplatzes aus dem Pool Pool1. In Summe, 300 MB des Speicherplatzes wird aus dem Pool verwendet Pool1. Obwohl Sie Quoten für die festgelegt haben FS1 Und FS2 Dateisysteme, nur der erforderliche Speicherplatz für die Dateisysteme, wird zugewiesen FS1 Und FS2 aus dem Pool Pool1.
$ sudo ZFS -ListeWenn Sie ein Kontingent nur für die Daten eines ZFS -Dateisystems festlegen möchten, nicht für die Snapshots und Klone "Dateisystem Refquota Eigenschaft auf Ihrem gewünschten ZFS -Dateisystem. Sie müssen die nicht festlegen Quote Eigentum. Auf diese Weise können Dateisystem -Schnappschüsse und Klone so viel Speicherplatz wie erforderlich aus dem ZFS -Pool einnehmen. Das Quotenlimit wird jedoch nur an den Daten aufgenommen, die Sie auf Ihrem ZFS -Dateisystem speichern.
Wenn Sie keine Dateisystem -Schnappschüsse machen oder Dateisystemklone erstellen, dann dann Quote Und Refquota Arbeiten Sie auf die gleiche Weise. Es spielt keine Rolle, welche Sie verwenden.
Konfigurieren von ZFS -Dateisystemreservierung
Früher haben Sie gesehen, dass beim Einstellen eines Kontingents in einem ZFS -Dateisystem kein Speicherplatz für dieses Dateisystem aus dem ZFS -Pool automatisch zugewiesen wird. Der Speicherplatz wird zugeteilt, wenn Dateien auf diesem Dateisystem erstellt werden. Daran gibt es kein Problem. Aber es gibt Zeiten, in denen Sie das nicht wollen.
In einigen Fällen möchten Sie möglicherweise einen Speicherplatz für ein bestimmtes ZFS -Dateisystem aus dem Pool widmen. Auf diese Weise haben Sie auch dann, wenn andere Dateisysteme den Pool ausfüllen, dennoch kostenlose Leerzeichen auf Ihrem ZFS -Dateisystem. Dafür wird die ZFS -Reservierung verwendet.
Um eine Reservierung für ein ZFS -Dateisystem einzurichten, müssen Sie die konfigurieren Reservierung Und Auffrischung Eigenschaften dieses ZFS -Dateisystems.
Reservierung: Der Speicherplatz wird für Daten, Dateisystem -Schnappschüsse und Dateisystemklone eines ZFS -Dateisystems aus dem ZFS -Pool reserviert.
Auffrischung: Der Speicherplatz wird nur für die Daten eines ZFS -Dateisystems aus dem ZFS -Pool reserviert. Kein Speicherplatz wird für Dateisystem -Schnappschüsse und Dateisystemklone reserviert.
Standardmäßig die Reservierung Und Auffrischung Eigenschaften werden in keiner ZFS -Dateisysteme festgelegt. Daher bereitet ZFS keinen Speicherplatz für Daten, Dateisystem -Schnappschüsse und Dateisystemklone eines beliebigen ZFS -Dateisystems aus dem ZFS -Pool zu.
Wie du sehen kannst, Reservierung Und Auffrischung Eigenschaften werden auf eingestellt keiner Auf dem ZFS -Dateisystem FS3 standardmäßig. Es ist das gleiche für die FS1, FS2, Und FS4 Dateisysteme auch.
$ sudo ZFs erhalten eine Reservierung, Refreservierungspool1/FS3Standardmäßig die ZFS -Dateisysteme FS3 Und FS4 habe den gleichen freien Speicherplatz (8.43 GB) als Pool Pool1.
$ sudo ZFS -ListeReservieren 2 GB des Festplattenraums für das ZFS -Dateisystem FS3 (Setzen Sie die für Dateisystemdaten, Schnappschüsse und Klone aus dem Pool die Reservierung Eigenschaft des ZFS -Dateisystems FS3 folgendermaßen:
$ sudo zfs set reservice = 2g pool1/fs3Wie Sie sehen können, die Reservierung Eigenschaft ist eingestellt auf 2 GB Für das ZFS -Dateisystem FS3.
$ sudo ZFs erhalten Reservierungspool1/FS3Beachten Sie, dass sofort nach dem Einstellen der Reservierung Eigentum an 2 GB Für das ZFS -Dateisystem FS3, 2 GB wird aus dem ZFS -Pool verwendet Pool11. Auch der verfügbare Festplattenraum für das ZFS -Dateisystem FS3 Ist 2 GB Mehr als der ZFS -Pool Pool12.
$ sudo ZFS -ListeReservieren 1 GB von Speicherplatz nur für Daten (nicht für Schnappschüsse und Klone) des ZFS -Dateisystems FS4 Setzen Sie vom Pool die Auffrischung Eigenschaft des ZFS -Dateisystems FS4 folgendermaßen:
$ sudo ZFS Set Refreservation = 1G Pool1/FS4Der Auffrischung Eigenschaft sollte auf eingestellt sein auf 1 GB Für das ZFS -Dateisystem FS4, Wie Sie im Screenshot unten sehen können.
$ sudo ZFs erhalten Aktualisierungspool1/FS4Beachten Sie, dass sofort nach dem Einstellen der Auffrischung Eigentum an 1 GB Für das ZFS -Dateisystem FS4, 1 GB wird aus dem ZFS -Dateisystem verwendet FS41. 1 GB wird auch aus dem ZFS -Pool verwendet Pool12, und den verfügbaren Festplattenraum des ZFS -Dateisystems FS4 Ist 1 GB mehr3 als der ZFS -Pool Pool14.
$ sudo ZFS -ListeKonfigurieren von ZFS -Dateisystemreservierung neben Quota
Sie können Reservierungen neben Kontingent für ZFS -Dateisysteme verwenden. Lassen Sie uns einige Beispiele sehen.
Angenommen, Sie möchten eine Quote von festlegen 2 GB Für das ZFS -Dateisystem FS3 und Reserve 2 GB des Festplattenraums für das ZFS -Dateisystem FS3 (Zum Speichern von Dateisystemdaten, Schnappschüssen und Klonen) aus dem ZFS -Pool.
Um das zu tun, setzen Sie die Quote Und Reservierung Eigenschaften des ZFS -Dateisystems FS3 folgendermaßen:
$ sudo ZFS SET Quota = 2G Reservierung = 2G Pool1/FS3Der Quote Und Reservierung Eigenschaften des ZFS -Dateisystems FS3 sollte auf eingestellt sein auf 2 GB, Wie Sie im Screenshot unten sehen können.
$ sudo ZFs erhalten Quoten, Reservierungspool1/FS3Der verfügbare Speicherplatz des ZFS -Dateisystems FS3 sollte auf eingestellt sein auf 2 GB. 2 GB des Speicherplatzes sollte auch dem ZFS -Dateisystem reserviert werden FS3 aus dem ZFS -Pool Pool1.
$ sudo ZFS -ListeAngenommen, Sie möchten eine Quote von festlegen 2 GB Für das ZFS -Dateisystem FS4. Aber du willst nur zulassen 1 GB von Speicherplatz zum Speichern von Dateisystemdaten und der anderen 1 GB zum Speichern von Dateisystem -Schnappschüssen und Klonen. Außerdem möchten Sie reservieren 1 GB des Festplattenraums zum Speichern des ZFS -Dateisystems FS4 aus dem ZFS -Pool.
Um das zu tun, setzen Sie die Quote, Refquota, Und Auffrischung Eigenschaften des ZFS -Dateisystems FS4 folgendermaßen:
$ sudo ZFS SET Quota = 2G Refquota = 1G Refreservation = 1G Pool1/FS4Der Quote Eigenschaft des ZFS -Dateisystems FS4 sollte auf eingestellt sein auf 2 GB, und das Refquota Und Auffrischung Eigenschaften sollten auf eingestellt werden 1 GB, Wie Sie im Screenshot unten sehen können.
$ sudo ZFS Set Quota, Refquota, Refreservation Pool1/FS4Der verfügbare Speicherplatz des ZFS -Dateisystems FS4 sollte auf eingestellt sein auf 1 GB. 1 GB des Speicherplatzes sollte auch dem ZFS -Dateisystem reserviert werden FS4 aus dem ZFS -Pool Pool1.
$ sudo ZFS -ListeAngenommen, Sie möchten eine Quote von festlegen 2 GB Für das ZFS -Dateisystem FS4. Aber du willst nur zulassen 1 GB von Speicherplatz zum Speichern von Dateisystemdaten und der anderen 1 GB zum Speichern von Dateisystem -Schnappschüssen und Klonen. Außerdem möchten Sie reservieren 2 GB von Speicherplatz zum Speichern der Dateisystemdaten, Schnappschüsse und Klone und 1 GB des Speicherplatzes aus dieser Reservierung, nur das ZFS -Dateisystem zu speichern FS4.
Um das zu tun, setzen Sie die Quote, Refquota, Reservierung, Und Auffrischung Eigenschaften des ZFS -Dateisystems FS4 folgendermaßen:
$ sudo ZFS SET Quota = 2G Refquota = 1G Reservierung = 2G Refreservation = 1G Pool1/FS4Wie Sie sehen können, die Quote Und Reservierung Eigenschaften des ZFS -Dateisystems FS4 sind eingestellt auf 2 GB, und das Refquota Und Auffrischung Eigenschaften werden auf eingestellt 1 GB.
$ sudo ZFs erhalten Quoten, Refquota, Reservierung, Refreservierungspool1/FS4Zuvor war das ZFS -Dateisystem reserviert 1 GB des Speicherplatzes aus dem Pool Pool1. Jetzt reserviert es 1 GB mehr. In Summe, 2 GB des Speicherplatzes ist dem ZFS -Dateisystem reserviert FS4 aus dem ZFS -Pool Pool1. Außerdem wird das Quotenlimit für das ZFS -Dateisystem festgelegt FS4.
$ sudo ZFS -ListeDeaktivieren von ZFS -Dateisystemreservierung
Sie können die festlegen Reservierung Und Auffrischung Eigenschaft eines ZFS -Dateisystems an keiner oder 0 Reservierung für dieses ZFS -Dateisystem zu deaktivieren.
Um die Reservierung für das ZFS -Dateisystem zu deaktivieren FS4, Setzen Sie die Reservierung Und Auffrischung Eigenschaften des ZFS -Dateisystems FS4 Zu keiner folgendermaßen:
$ sudo ZFS SET Reservierung = Keine Aktualisierung = Keine Pool1/FS4Die Reservierung sollte für das ZFS -Dateisystem deaktiviert werden FS4.
$ sudo ZFs erhalten eine Reservierung, Refreservierungspool1/FS4Wie du sehen kannst, 2 GB des Speicherplatzes (4.49 GB bis 2.29 GB jetzt) wird aus dem ZFS -Pool ausgelöst Pool1 als Reservierung ist für das ZFS -Dateisystem deaktiviert FS4.
$ sudo ZFS -ListeDeaktivieren von ZFS -Dateisystemkontingent
Sie können die festlegen Quote Und Refquota Eigenschaft eines ZFS -Dateisystems an keiner oder 0 Um das Kontingent für dieses ZFS -Dateisystem zu deaktivieren.
Quoten für das ZFS -Dateisystem deaktivieren FS4, Setzen Sie die Quote Und Refquota Eigenschaften des ZFS -Dateisystems FS4 Zu keiner folgendermaßen:
$ sudo zfs set quota = keine refquota = none pool1/fs4Quoten sollten für das ZFS -Dateisystem deaktiviert werden FS4.
$ sudo zfs erhalten Quoten, Refquota Pool1/FS4Wie Sie sehen können, werden für das ZFS -Dateisystem keine Quotengrenzen festgelegt FS4 mehr.
$ sudo ZFS -ListeAbschluss
In diesem Artikel habe ich die Quoten- und Reservierungsfunktionen des ZFS -Dateisystems erörtert. Ich habe Ihnen gezeigt, wie Sie Quoten und Reservierungen für ZFS -Dateisysteme konfigurieren können. Ich habe Ihnen auch gezeigt, wie Sie Quoten und Reservierungen aus den ZFS -Dateisystemen deaktivieren können.
Verweise
[1] Festlegen von ZFS -Quoten und Reservierungen (Solaris ZFS Administration Guide)