ZFS 卷是表示块设备的数据集。ZFS 卷被标识为 /dev/zvol/{dsk,rdsk}/pool 目录中的设备。
以下示例将创建 5 GB 的 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 发行版中那样使用 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 目标和启动器的更多信息,请参见《系统管理指南:设备和文件系统》中的第 15 章 “配置 Solaris iSCSI 启动器(任务)”。
也可以使用 iscsitadm 命令来创建和管理 Solaris iSCSI 目标。如果对 ZFS 卷设置 shareiscsi 属性,请勿使用 iscsitadm 命令再创建同一目标设备。否则将为同一设备创建重复的目标信息。
可以像管理其他 ZFS 数据集一样来管理作为 iSCSI 目标的 ZFS 卷。不过,对于 iSCSI 目标而言,rename、export 和 import 操作的工作方式略有不同。
重命名 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 目标也会相应进行共享。