Oracle Solaris ZFS 管理指南

ZFS 卷

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 卷作为交换设备或转储设备

安装 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 发行版中那样使用 swapdumpadm 命令。如果需要创建其他交换卷,请创建一个特定大小的 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 交换设备和转储设备的大小

使用 ZFS 卷作为 Solaris iSCSI 目标

通过设置卷的 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 目标而言,renameexportimport 操作的工作方式略有不同。

所有 iSCSI 目标配置信息都存储在数据集内。与 NFS 共享文件系统相似,在其他系统中导入的 iSCSI 目标也会相应进行共享。