跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 11.1 管理:ZFS 文件系统 Oracle Solaris 11.1 Information Library (简体中文) |
1. Oracle Solaris ZFS 文件系统(介绍)
6. 使用 Oracle Solaris ZFS 快照和克隆
7. 使用 ACL 和属性保护 Oracle Solaris ZFS 文件
ZFS 卷是表示块设备的数据集。ZFS 卷被标识为 /dev/zvol/{dsk,rdsk}/pool 目录中的设备。
以下示例将创建 5 GB 的 ZFS 卷 tank/vol:
# zfs create -V 5gb tank/vol
创建卷时,会自动设置卷初始大小的预留空间,以防发生意外行为。例如,如果卷大小减小,则可能导致数据受损。更改卷大小时请务必小心。
此外,如果对大小发生更改的卷创建快照,并且尝试回滚该快照或从该快照中创建克隆,则可能会引入不一致性。
有关可应用于卷的文件系统属性的信息,请参见表 5-1。
可以使用 zfs get 或 zfs get all 命令显示 ZFS 卷的属性信息。例如:
# zfs get all tank/vol
zfs get 输出中针对 volsize 显示的问号 (?) 表示值未知,这是因为发生了 I/O 错误。例如:
# zfs get -H volsize tank/vol tank/vol volsize ? local
I/O 错误通常表示池设备有问题。有关解决池设备问题的信息,请参见解决 ZFS 问题。
如果使用安装了区域的 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/ Savecore enabled: yes
如果在安装系统后需要更改交换区域或转储设备,请像在以前的 Solaris 发行版中那样使用 swap 和 dumpadm 命令。如果需要创建其他交换卷,请创建一个特定大小的 ZFS 卷,然后在该设备中启用交换。然后,在 /etc/vfstab 文件中为新交换设备添加一个条目。例如:
# 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 交换和转储设备的大小。
通过通用多协议 SCSI 目标 (Common Multiprotocol SCSI Target, COMSTAR) 软件框架,可以将任何 Oracle Solaris 主机转换为启动器主机可以通过存储网络访问的 SCSI 目标设备。可以创建和配置要作为 iSCSI 逻辑单元 (LUN) 共享的 ZFS 卷。
首先,安装 COMSTAR 软件包。
# pkg install group/feature/storage-server
接下来,创建要用作 iSCSI 目标的 ZFS 卷,然后创建基于 SCSI 块设备的 LUN。例如:
# zfs create -V 2g tank/volumes/v2 # sbdadm create-lu /dev/zvol/rdsk/tank/volumes/v2 Created the following LU: GUID DATA SIZE SOURCE -------------------------------- ------------------- ---------------- 600144f000144f1dafaa4c0faff20001 2147483648 /dev/zvol/rdsk/tank/volumes/v2 # sbdadm list-lu Found 1 LU(s) GUID DATA SIZE SOURCE -------------------------------- ------------------- ---------------- 600144f000144f1dafaa4c0faff20001 2147483648 /dev/zvol/rdsk/tank/volumes/v2
您可以向所有客户机或选定的客户机公开 LUN 视图。确定 LUN GUID,然后共享 LUN 视图。在以下示例中,LUN 视图由所有客户机共享。
# stmfadm list-lu LU Name: 600144F000144F1DAFAA4C0FAFF20001 # stmfadm add-view 600144F000144F1DAFAA4C0FAFF20001 # stmfadm list-view -l 600144F000144F1DAFAA4C0FAFF20001 View Entry: 0 Host group : All Target group : All LUN : 0
下一步是创建 iSCSI 目标。有关创建 iSCSI 目标的信息,请参见《Oracle Solaris 11.1 管理:设备和文件系统》中的第 11 章 "使用 COMSTAR 配置存储设备(任务)"。
对于用作 iSCSI 目标的 ZFS 卷,其管理方式与任何其他 ZFS 数据集一样,不过,在 ZFS 卷被作为 iSCSI LUN 共享时,您无法重命名数据集、回滚卷快照或者导出池。将显示以下类似消息:
# zfs rename tank/volumes/v2 tank/volumes/v1 cannot rename 'tank/volumes/v2': dataset is busy # zpool export tank cannot export 'tank': pool is busy
所有 iSCSI 目标配置信息都存储在数据集内。与 NFS 共享文件系统相似,在其他系统中导入的 iSCSI 目标也会相应进行共享。