当前位置:首页 > 第 10 章 Oracle Solaris ZFS 高级主题
第 10 章 Oracle Solaris ZFS 高级主题
本章介绍 ZFS 卷、在安装了区域的 Solaris 系统中使用 ZFS、ZFS 备用根池以及 ZFS 权限配置文件。 本章包含以下各节:
ZFS 卷
? 在安装了区域的 Solaris 系统中使用 ZFS ? 使用 ZFS 备用根池 ? 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 swapfiledevswaplo 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 swapfiledevswaplo 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 目标而言,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-cf9a72aa 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-cf9a72aa Connections: 0 所有 iSCSI 目标配置信息都存储在数据集内。与 NFS 共享文件系统相似,在其他系统中导入的 iSCSI 目标也会相应进行共享。 在安装了区域的 Solaris 系统中使用 ZFS
以下各节介绍如何在具有 Oracle Solaris 区域的系统中使用 ZFS。
?
向非全局区域中添加 ZFS 文件系统
? ? ? ? ?
将数据集委托给非全局区域 向非全局区域中添加 ZFS 卷 在区域中使用 ZFS 存储池 在区域内管理 ZFS 属性 了解 zoned 属性
有关在具有 ZFS 根文件系统(将使用 Oracle Solaris Live Upgrade 进行迁移或修补)的系统上配置区域的信息,请参见使用 Oracle Solaris Live Upgrade 迁移或升级具有区域的系统 (Solaris 10 10/08)或使用 Oracle Solaris Live Upgrade 迁移或升级具有区域的系统(最低Solaris 10 5/09)。 将 ZFS 数据集与区域关联时,请牢记以下要点:
可将 ZFS 文件系统或克隆添加至非全局区域(可以委托或不委托管理控制)。
? 可将 ZFS 卷作为设备添加至非全局区域。 ? 此时不能将 ZFS 快照与区域关联。
?
在以下各节中,ZFS 数据集是指文件系统或克隆。
通过添加数据集,非全局区域可与全局区域共享磁盘空间,但区域管理员不能在底层文件系统分层结构中控制属性或创建新文件系统。该操作与向区域中添加其他任何类型的文件系统相同,应该在主要目的只是为了共享公用磁盘空间时才这样做。
使用 ZFS,还可将数据集委托给非全局区域,从而授予区域管理员对数据集及其所有子级的完全控制。区域管理员可以在此数据集中创建和销毁文件系统或克隆,并可修改数据集的属性。区域管理员无法影响尚未添加到区域中的数据集,包括不能超过对委托数据集设置的任何顶层配额。
在安装了 Oracle Solaris 区域的系统中使用 ZFS 时,请考虑以下事项: 添加到非全局区域的 ZFS 文件系统必须将其 mountpoint 属性设置为 legacy。
? 由于 CR 6449301,在配置非全局区域时请勿将 ZFS 数据集添加到非全局区域。请在安装区域后添加 ZFS 数据集。
? 当源zonepath 和目标 zonepath 都驻留在 ZFS 文件系统上并且位于同一个池中时,zoneadm clone 现在将自动使用 ZFS 克隆来克隆区域。zoneadm clone 命令将创建源 zonepath 的 ZFS 快照,并设置目标 zonepath。不能使用 zfs clone 命令来克隆区域。有关更多信息,请参见《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 II 部分, “Zones”。 ? 如果您将 ZFS 文件系统委托给非全局区域,则必须在使用 Oracle Solaris Live Upgrade 之前从非全局区域删除该文件系统。否则,Oracle Live Upgrade 会因只读文件系统错误而失败。
?
共分享92篇相关文档