管理 ZFS 存储池

ZFS 存储池的组件
以下各节提供有关以下存储池组件的详细信息:
使用 ZFS 存储池中的磁盘
使用 ZFS 存储池中的文件
标识存储池中的虚拟设备
使用 ZFS 存储池中的磁盘
存储池的最基本元素是一个物理存储器 。物理存储器可以是大小至少为 128 MB 的任何块设备 。通常,此设备是 /dev/dsk 目录中对系统可见的一个硬盘驱动器 。
存储设备可以是整个磁盘 (c1t0d0) 或单个片 (c0t0d0s7) 。建议的操作模式是使用整个磁盘,在这种情况下,无需对磁盘专门进行格式化 。ZFS 可格式化使用 EFI 标签的磁盘以包含单个大片 。以此方式使用磁盘时,format 命令显示的分区表与以下信息类似:
Current partition table (original):
Total disk sectors available: 7167095316384 (reserved sectors)
Part TagFlag First SectorSizeLast Sector
 0usrwm34 34.18GB 71670953
 1 unassignedwm 0 0 0
 2 unassignedwm 0 0 0
 3 unassignedwm 0 0 0
 4 unassignedwm 0 0 0
 5 unassignedwm 0 0 0
 6 unassignedwm 0 0 0
 7 unassignedwm 0 0 0
 8reservedwm 716709548.00MB 71687337
要使用整个磁盘,必须使用标准 Solaris 约定命名磁盘,如 /dev/dsk/cXtXdXsX 。一些第三方驱动程序使用不同的命名约定,或者将磁盘放置在除 /dev/dsk 目录以外的位置中 。要使用这些磁盘,必须手动标记磁盘并为 ZFS 提供片 。
创建包含整个磁盘的存储池时,ZFS 会应用 EFI 标签 。创建包含磁盘片的存储池时,可以使用传统的 Solaris VTOC 标签来标记磁盘 。
应仅在以下情况下使用片:
设备名称是非标准名称 。
【管理 ZFS 存储池】ZFS 和其他文件系统(如 UFS)之间共享单个磁盘 。
磁盘用作交换设备或转储设备 。
可以使用全路径(如 /dev/dsk/c1t0d0)或构成 /dev/dsk 目录中设备名称的缩略名称(如 c1t0d0)来指定磁盘 。例如,以下是有效的磁盘名称:
c1t0d0
/dev/dsk/c1t0d0
c0t0d6s2
/dev/foo/disk
如果为存储池指定整个磁盘,ZFS 将使用整个磁盘 。这意味着将删除已定义的任何现有 fdisk 分区 。如果要在具有现有 fdisk 分区的磁盘上创建 ZFS 存储池,则可以通过指定片 (c1t0d0s7) 而不是整个磁盘 (c1t0d0) 来创建存储池 。
创建 ZFS 存储池的最简单方法是使用整个物理磁盘 。在从磁盘片、硬件 RAID 阵列中的 LUN 或基于软件的卷管理器所提供的卷中生成池时,无论从管理、可靠性还是性能的角度而言,ZFS 配置都变得越来越复杂 。以下注意事项可能有助于确定如何用其他硬件或软件存储解决方案来配置 ZFS:
如果在硬件 RAID 阵列中的 LUN 上构建 ZFS 配置,则需要了解 ZFS 冗余功能与该阵列所提供的冗余功能之间的关系 。有些配置可能会提供足够的冗余和性能,而其他配置可能不会提供足够的冗余和性能 。
可以使用基于软件的卷管理器(如 SolarisTM 卷管理器 (Solaris Volume Manager, SVM) 或 Veritas 卷管理器 (Veritas Volume Manager, VxVM))所提供的卷来为 ZFS 构建逻辑设备 。但是,建议不要使用这些配置 。尽管 ZFS 可在这类设备上正常运行,但结果可能是实际性能低于最佳性能 。
磁盘由其路径及其设备 ID(如果可用)标识 。使用此方法,可以在系统中重新配置设备,而不必更新任何 ZFS 状态 。如果磁盘在控制器 1 和控制器 2 之间切换,则 ZFS 可使用设备 ID 检测到该磁盘已移动,并且现在应使用控制器 2 对其进行访问 。设备 ID 对于驱动器固件是唯一的 。尽管不大可能,但确实有一些固件更新更改了设备 ID 。如果发生这种情况,ZFS 仍可以按路径访问设备,并自动更新存储的设备 ID 。如果无意中同时更改了设备的路径和 ID,则将池导出再重新导入后才能使用该池 。

推荐阅读