ZFS ボリュームとは、ブロックデバイスを表すデータセットです。ZFS ボリュームは、/dev/zvol/{dsk,rdsk}/pool ディレクトリのデバイスとして識別されます。
次の例では、5G バイトの ZFS ボリューム tank/vol が作成されます。
# zfs create -V 5gb tank/vol |
ボリュームの作成時には、予期しない動作が発生しないよう、予約が自動的にボリュームの初期サイズに設定されます。たとえば、ボリュームのサイズを縮小すると、データが破壊される可能性があります。ボリュームのサイズを変更するときは、注意深く行う必要があります。
また、サイズが変化するボリュームのスナップショットを作成する場合は、スナップショットをロールバックしたり、スナップショットからのクローンを作成しようとすると、不一致が発生する可能性があります。
ボリュームに適用可能なファイルシステムプロパティーについては、表 6–1 を参照してください。
ゾーンがインストールされた Solaris システムを使用している場合は、非大域ゾーンの中で ZFS ボリュームを作成または複製することはできません。そうしようとしても失敗します。ZFS ボリュームを大域ゾーンで使用する方法については、「ZFS ボリュームを非大域ゾーンに追加する」を参照してください。
ZFS ルートファイルシステムをインストールするとき、または UFS ルートファイルシステムから移行するときに、ZFS ルートプールの ZFS ボリュームにスワップデバイスが作成されます。次に例を示します。
# swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 253,3 16 8257520 8257520 |
ZFS ルートファイルシステムをインストールするとき、または UFS ルートファイルシステムから移行するときに、ZFS ルートプールの ZFS ボリュームにダンプデバイスが作成されます。ダンプデバイスを設定したあとは、ダンプデバイスの管理は不要です。次に例を示します。
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/t2000 Savecore enabled: yes |
システムのインストール後またはアップグレード後にスワップ領域やダンプデバイスを変更する必要がある場合は、以前の Solaris 10 リリースと同様に swap コマンドと dumpadm コマンドを使用します。追加のスワップボリュームを作成する必要がある場合は、特定のサイズの ZFS ボリュームを作成してから、そのデバイスでスワップを有効にします。次に例を示します。
# 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 |
ZFS ファイルシステム上のファイルには、スワップしないでください。ZFS スワップファイルの構成はサポートされていません。
スワップボリュームとダンプボリュームのサイズの調整については、「ZFS スワップデバイスおよびダンプデバイスのサイズを調整する」を参照してください。
ボリュームに shareiscsi プロパティーを設定すれば、簡単に ZFS ボリュームを iSCSI ターゲットとして作成できます。次に例を示します。
# 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 |
iSCSI ターゲットが作成されたら、iSCSI イニシエータを設定します。Solaris iSCSI ターゲットおよびイニシエータの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 14 章「Oracle Solaris iSCSI ターゲットおよびイニシエータの構成 (手順)」を参照してください。
また、Solaris iSCSI ターゲットは、iscsitadm コマンドを使って作成および管理することもできます。ZFS ボリュームに shareiscsi プロパティーを設定した場合は、iscsitadm コマンドを使用して同じターゲットデバイスをまた作成しないでください。そうしないと、同じデバイスに対して重複したターゲット情報が作成されてしまいます。
iSCSI ターゲットとしての ZFS ボリュームは、ほかの ZFS データセットとまったく同じように管理されます。ただし、iSCSI ターゲットでは、名前の変更、エクスポート、およびインポートの操作が少し異なります。
ZFS ボリュームの名前を変更しても、iSCSI ターゲットの名前は変わりません。次に例を示します。
# 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 |
共有 ZFS ボリュームが含まれるプールをエクスポートすると、ターゲットが削除されます。共有 ZFS ボリュームが含まれるプールをインポートすると、ターゲットが共有されます。次に例を示します。
# 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 |
iSCSI ターゲットの構成情報はすべてデータセット内に格納されます。NFS 共有ファイルシステムと同様に、別のシステム上にインポートされる iSCSI ターゲットは正しく共有されます。