Ein ZFS-Volume ist ein Dataset, das eine Blockeinheit darstellt. ZFS-Volumes sind im Verzeichnis /dev/zvol/{dsk,rdsk}/pool als Geräte aufgeführt.
Im folgenden Beispiel wird ein ZFS-Volume tank/vol mit einer Kapazität von 5 GB erstellt:
# zfs create -V 5gb tank/vol |
Beim Erstellen von Volumes wird automatisch eine Reservierung der anfänglichen Volume-Kapazität angelegt, um unerwartetes Verhalten zu verhindern. Wenn die Kapazität des Volumes beispielsweise kleiner wird, können Daten beschädigt werden. Deswegen müssen Sie beim Ändern der Kapazität eines Volumes äußerst sorgfältig vorgehen.
Außerdem können Dateisysteminkonsistenzen entstehen, wenn Sie einen Snapshot eines Volumes erstellen, dessen Kapazität sich ändern kann, und versuchen, den betreffenden Snapshot mittels Rollback rückgängig zu machen oder zu klonen.
Informationen zu Dateisystemeigenschaften, die auf Volumes angewendet werden können, finden Sie in Tabelle 6–1.
Auf Solaris-Systemen mit installierten Zonen können Sie keine ZFS-Volumes in einer nicht-globalen Zone erstellen bzw. klonen. Alle solche Versuche schlagen fehl. Informationen zur Verwendung von ZFS-Volumes in einer globalen Zone finden Sie unter Hinzufügen von ZFS-Volumes zu einer nicht-globalen Zone.
Während der Installation eines ZFS-Root-Dateisystems oder einer Migration von einem UFS-Root-Dateisystem wird auf einem ZFS-Volume im ZFS-Root-Pool ein Swap-Gerät erstellt. Beispiel:
# swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 253,3 16 8257520 8257520 |
Während der Installation eines ZFS-Root-Dateisystems oder einer Migration von einem UFS-Root-Dateisystem wird auf einem ZFS-Volume im ZFS-Root-Pool ein Dump-Gerät erstellt. Nach der Einrichtung ist keine Verwaltung des Dump-Geräts erforderlich. Beispiel:
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/t2000 Savecore enabled: yes |
Wenn Sie den Swap-Bereich oder das Dump-Gerät nach der Installation oder dem Upgrade des Systems ändern müssen, benutzen Sie hierzu die Befehle swap und dumpadm wie in vorherigen Solaris-Versionen. Zum Erstellen eines zusätzlichen Swap-Volumes müssen Sie ein ZFS-Volume einer bestimmten Kapazität erstellen und für dieses Gerät dann die Swap-Funktion aktivieren. Beispiel:
# zfs create -V 2G rpool/swap2 # swap -a /dev/zvol/dsk/rpool/swap2 # swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 256,1 16 2097136 2097136 /dev/zvol/dsk/rpool/swap2 256,5 16 4194288 4194288 |
Swaps dürfen nicht in eine Datei eines ZFS-Dateisystems durchgeführt werden. ZFS unterstützt keine Konfigurationen für Swap-Dateien.
Informationen zum Anpassen der Größe von Swap- und Dump-Volumes finden Sie unter Anpassen der Größe von ZFS-Swap- und Dump-Geräten.
Sie können ZFS-Volumes auf einfache Weise als iSCSI-Zielgerät konfigurieren, indem Sie die Eigenschaft shareiscsi für das Volume setzen. Beispiel:
# zfs create -V 2g tank/volumes/v2 # zfs set shareiscsi=on tank/volumes/v2 # iscsitadm list target Target: tank/volumes/v2 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0 |
Nach dem Erstellen des iSCSI-Zielgeräts muss der iSCSI-Initiator definiert werden. Weitere Informationen zu Solaris-iSCSI-Zielgeräten und -Initiatoren finden Sie in Kapitel 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks) in System Administration Guide: Devices and File Systems.
Solaris-iSCSI-Zielgeräte können auch mit dem Befehl iscsitadm erstellt und verwaltet werden. Wenn die Eigenschaft shareiscsi eines ZFS-Volumes gesetzt ist, darf der Befehl iscsitadm nicht zum Erstellen des gleichen Zielgeräts verwendet werden, da ansonsten für das gleiche Zielgerät duplizierte Zielgerätinformationen erstellt werden.
Als iSCSI-Zielgerät konfigurierte ZFS-Volumes werden genauso wie andere ZFS-Datasets verwaltet. Operationen zum Umbenennen, Exportieren und Importieren funktionieren bei iSCSI-Zielgeräten jedoch etwas anders.
Wenn Sie ein ZFS-Volume umbenennen, bleibt der Name des iSCSI-Zielgeräts gleich. Beispiel:
# zfs rename tank/volumes/v2 tank/volumes/v1 # iscsitadm list target Target: tank/volumes/v1 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0 |
Durch das Exportieren eines Pools, das ein für den Netzwerkzugriff freigegebenes ZFS-Volume enthält, wird das betreffende Zielgerät entfernt. Durch das Importieren eines Pools, das ein freigegebenes ZFS-Volume enthält, wird das betreffende Zielgerät für den Netzwerkzugriff freigegeben. Beispiel:
# zpool export tank # iscsitadm list target # zpool import tank # iscsitadm list target Target: tank/volumes/v1 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0 |
Alle Konfigurationsinformationen zu einem iSCSI-Zielgerät werden im Dataset gespeichert. Wie bei einem über NFS für den Netzwerkzugriff freigegebenem Dateisystem, wird ein in ein anderes System importiertes iSCSI-Zielgerät entsprechend für den Netzwerkzugriff freigegeben.