ZFS 入门

ZFS 硬件和软件要求及建议 尝试使用 ZFS 软件之前,请确保查看了以下硬件和软件要求及建议:
运行 Solaris 10 6/06 发行版或更高版本的 SPARCTM 或 x86 系统 。
最小磁盘空间为 128 MB 。用于存储池所需的最小磁盘空间量约为 64 MB 。
目前,建议用于安装 Solaris 系统的最小内存量为 512 MB 。但为了获得更好的 ZFS 性能,建议至少使用 1 GB 或更多内存 。
如果创建镜像磁盘配置,建议使用多个控制器 。
创建基本 ZFS 文件系统 ZFS 管理在设计过程中考虑了简单性 。ZFS 设计的目标之一是减少创建可用文件系统所需的命令数 。创建新池的同时会创建一个新 ZFS 文件系统,并自动将其挂载 。
以下示例说明如何通过一个命令同时创建名为 tank 的非冗余存储池和名为 tank 的 ZFS 文件系统 。假定整个磁盘 /dev/dsk/c1t0d0 可供使用 。
# zpool create tank c1t0d0注 – 此命令将创建一个非冗余池 。即使单个存储对象存在于硬件 RAID 阵列或软件卷管理器中,也建议不要将非冗余池配置用于生产环境 。ZFS 只能检测这些配置中的错误 。ZFS 可用冗余数据更正池配置中的错误 。
新 ZFS 文件系统 tank 可根据需要使用 c1t0d0 中任意大小的磁盘空间,并会自动挂载在 /tank 中 。
# mkfile 100m /tank/foo
# df -h /tank
Filesystem sizeused avail capacity Mounted on
tank80G100M80G 1%/tank
在池内,可能需要创建其他文件系统 。文件系统可提供管理点,用于管理同一池中不同的数据集 。
以下示例说明如何在存储池 tank 中创建名为 fs 的文件系统 。假定整个磁盘 /dev/dsk/c1t0d0 可供使用 。
# zpool create tank mirror c1t0d0 c2t0d0
# zfs create tank/fs
新 ZFS 文件系统 tank/fs 可根据需要使用 c1t0d0 中任意大小的磁盘空间,并会自动挂载在 /tank/fs 中 。
# mkfile 100m /tank/fs/foo
# df -h /tank/fs
Filesystem sizeused avail capacity Mounted on
tank/fs 80G100M80G 1%/tank/fs
在大多数情况下,您可能要创建并组织与您公司的需要相符的文件系统分层结构 。
创建 ZFS 存储池 上一示例说明了 ZFS 的简单性 。本章的其余部分将说明一个更复杂的示例,与您的环境中所遇到的情况相似 。第一个任务是确定存储要求并创建存储池 。该池描述了存储的物理特征,并且必须在创建任何文件系统之前创建 。
如何确定 ZFS 存储池的存储要求
确定可用设备 。
创建存储池之前,必须先确定用于存储数据的设备 。这些设备必须是大小至少为 128 MB 的磁盘,并且不能由操作系统的其他部分使用 。设备可以是预先格式化的磁盘上的单个片,也可以是 ZFS 格式化为单个大片的整个磁盘 。
对于如何创建 ZFS 存储池中使用的存储示例,假定磁盘 /dev/dsk/c1t0d0 和 /dev/dsk/c1t1d0 全部都可供使用 。
选择数据复制 。
ZFS 支持多种类型的数据复制,这确定了池可以经受的硬件故障的类型 。ZFS 支持非冗余(条带化)配置以及镜像和 RAID-Z(RAID-5 的变化形式) 。
如何创建 ZFS 存储池中使用的存储示例使用了两个可用磁盘的基本镜像 。
如何创建 ZFS 存储池
成为超级用户或承担具有适当 ZFS 权限配置文件的等效角色 。
选择池名称 。
池名称用于在使用 zpool 或 zfs 命令时标识存储池 。大多数系统都只需一个池,因此只要满足ZFS 组件命名要求中所述的命名要求,即可选择您喜欢的任何名称 。
创建池 。
例如,创建名为 tank 的镜像池 。
# zpool create tank mirror c1t0d0 c1t1d0如果一个或多个设备包含其他文件系统或正在使用中,则该命令不能创建池 。

推荐阅读