本文主要讨论在ZFS文件系统磁盘空间不足时,如何在线对存储池进行镜像和扩容。主要包括以下几个步骤:
- 备份文件系统
- 重置新磁盘
- 将新磁盘加入存储池
- 移除旧磁盘
- 重置旧磁盘
- 将旧磁盘加入存储池
本文使用的软件版本:
- FreeBSD 13.0
- zpool zfs-kmod-2.0.0-FreeBSD
ZFS(Zettabyte File System)是Sun公司为Solaris操作系统开发的新一代文件系统,除了支持极大数据的存储需求和很高的数据完整性之外,还具有诸多新颖和强悍的功能,包括存储池、多种缓存、写时拷贝事务模型、快照与克隆、块大小可变、加密、高可用等,可以说是目前世界上最先进的文件系统。
0 文件系统存储现状与需求
最开始使用ZFS文件系统时,只有一块500G的硬盘,在其中一个分区上创建了ZFS文件系统,也未做镜像,没想到后来数据起来越多、起来越重要,这时就不得不考虑扩容和镜像的问题了。在找了一块大小相同的磁盘以后,这次在线扩容与镜像的实际需求就是两项:一是扩大存储空间,把整个500G全部用于ZFS文件系统,二是找一块相同参数的硬盘做RAID1镜像,提高存储的可靠性。
先使用zpool status命令看一下当前存储池使用情况:
从图中可以看出,这个磁盘中的一个MBR扩展分区被格式化为ZFS文件系统,挂载点为/data。
同时,当前存储池大小为99.5G,已使用了66.2G,目前工作状况良好。
检查/dev目录下的磁盘:
可以看出,ada0为旧磁盘,未识别出分区;ada1为新磁盘,有2个分区。
所以此次在线换盘和扩容镜像的步骤就是:
(1)备份/data目录