Solaris ZFS文件系统对根池rpool扩容的实践
Solaris11默认的文件系统是zfs(Zettabyte Filesystem)。
ZFS文件系统介绍
ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的文件系统。作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统。ZFS是基于存储池,与典型的映射物理存储设备的传统文件系ZFS统不同,ZFS所有在存储池中的文件系统都可以使用存储池的资源。
ZFS 是一个组合文件系统和逻辑卷管理器。
ZFS 的功能包括防止数据损坏、高存储容量 (256 ZiB)、快照和写入时复制克隆以及连续完整性检查等。
如果您正在处理大量数据,或者为虚拟化提供后备文件系统,ZFS 是一个不错的选择。
存储池pool
存储池是一种设备集合,提供 ZFS 数据集的物理存储和数据复制。存储池内的所有数据集共享同一个空间。ZFS 存储池是为数据集提供空间的设备的逻辑集合。存储池也是 ZFS 文件系统分层结构的根。
zpool 命令配置 ZFS 存储池。
扩展根池步骤
1.查看当前的存储池,命令:zpool list
目前只有rpool,大小为15G
2.查看当前磁盘设备,命令:format
3.将new_device附加到storage pool
前面我们说过rpool不支持zpool add 只支持zpool attach。attach后会将old_device的数据同步到new_device,并且rpool也从“单磁盘”配置自动转换为“镜像”配置,类似于RAID 1。
命令解释:
zpool attach [-f] pool device new_device
将new_device附加到现有的zpool设备。现有设备不能作为raidz配置的一部分。如果device当前不是镜像配置的一部分,则device自动转换为device和new_device的双向镜像。如果device是双向镜像的一部分,则附加new_device将创建一个三向镜像,依此类推。在任何一种情况下,new_device都会立即开始恢复。
zpool add [-f] [-n [-l]] pool vdev ...
将指定的虚拟设备添加到给定的池中。
4.将old_device从rpool中分离
命令解释:
zpool detach pool device
该命令用于从镜像存储池中分离设备或备件。如果物理更换了RAID-Z存储池中的设备,也可以将备用设备从RAID-Z存储池中分离出来。或者,如果RAID-Z存储池中已有设备被备用设备替换,则可以卸载该设备。如果没有其他有效的数据副本,则拒绝该操作。
# zpool detach rpool c2t0d0
5.设置rpool自动扩展
命令解释:
zpool set autoexpand=on | off
控制底层LUN扩容时自动扩容池。
如果设置为on,池的大小将根据扩展设备的大小进行调整。如果该设备是镜像或raidz的一部分,那么在池使用新空间之前,必须对该镜像或raidz组中的所有设备进行扩展。默认off。可以使用缩写expand来代替autoexpand。
请勿使用format命令获取新的LUN大小,并对其重新打标签。zpool会自动反映新的LUN大小。
# zpool set autoexpand=on rpool