GetNAS Logo

为 FreeNAS ZFS RAIDZ 增加扩展容量

2015-1-30 23:13 Herald 存储管理 14,415

随着文件量的增多,ZFS卷容量渐现不足,存储池扩容势在必行,考验一个文件系统强大与否的时刻终于到来,ZFS RAIDZ 扩容很简单,且听笔者分说。

FreeNAS 为 ZFS 存储池扩容提供了两种方案(存储池就是卷,卷就是存储池)。方案一:增加新硬盘,用卷管理器将新增的硬盘附加到需要扩容的卷上;方案二,使用更大容量的硬盘替换容量较小的硬盘。

方案一:新增硬盘扩容

这种扩容方式最方便,可以直接在 WebGUI 的卷管理器中操作,但必须满足硬盘数量上的硬性要求。假设某个 ZFS 卷是由4块硬盘组成的 RAIDZ2 阵列,要给这个卷扩展容量,必须同时添加4块硬盘,虽然新增的硬盘容量没有限制,但是建议新增硬盘容量相同。如果新增的硬盘数量不足,扩容操作是无法完成的,为什么会是这样呢?

这种扩容方式的原理是这样的,假设某个 ZFS 卷是由 2 块 1TB 硬盘组成的 Mirror 镜像,可用容量为 1TB,我们额外准备 2 块 1TB 硬盘对其扩容,系统会将新增加的 2 块硬盘组成容量为 1TB 的 Mirror 镜像卷,然后将这个新增的镜像卷与原来的 Mirror 镜像卷组成一个 Stripe 带条卷,从而实现卷容量扩容至 2TB。RAID-Z 的扩容也同理,把新增的硬盘组成与待扩容的卷相同的结构,然后将新旧两个结构相同的 RAIDZ 卷组成 Stripe 带条卷。只有两个卷的组成结构和硬盘数量完全相同,才能组成 Stripe 带条卷,这就是为什么一定要满足硬盘数量要求的原因。

接下来演示具体的操作方法:

首先在 WebGUI 中点选 “Storage” 存储菜单,点选需要扩容的卷,然后点击界面下方的 “Volume Status” 查看卷状态按钮。

20150130213606

如上图所示,可以看到,名称为 myStor 的卷是由 2 块 1TB 硬盘组成的 Mirror 镜像卷,实际可用容量为 928GB。根据上面扩容原理的介绍,如果要为 myStor 卷扩容,必须新增2块硬盘(建议相同容量),如果新增的2块硬盘容量不同,则扩展的容量与最小的硬盘容量相同。

接下来,就是给FreeNAS主机安装新增的硬盘,如果你不确定主机是否支持硬盘热插拔,可以关闭系统以后再安装新硬盘。安装好新硬盘,在存储选项卡中点击 “View Disks” 查看磁盘按钮。

20150130214415

可以看到系统已经识别了新安装的两块硬盘,下面就可以开始进行扩容操作了。

20150130214602

点击存储选项卡中的 “Volume Manger” 卷管理器按钮。此时弹出了卷管理器窗口,在 “Volume to extend” 扩展卷的下拉菜单中选择需要扩容的卷名,本例为 myStor,请根据你的实际名称选择。在 “Volume layout” 卷结构选项中拉动右侧的圆形图标,调整新增磁盘的卷结构,注意:此处设置的卷结构类型必须与待扩容卷的结构一致,在本示例中,我们将新增的两块硬盘组成 Mirror 镜像结构,与 myStor 卷的结构一致。设置完成,点击 “Extend Voluem” 扩展卷按钮。

20150130220844

等待系统自动执行卷扩容操作。

20150130221533

扩容完成以后,可以看到,myStor 卷的实际可用容量从之前的 928GB 变成了 1.8TB。

20150130221643

点选 myStor 卷,查看一下扩容以后的卷结构,如下图。可以看到,两块旧硬盘(ada0和ada1)组成了 mirror-0,两块新硬盘(ada2和ada3)组成了 mirror-1,原来的卷 myStor 现在变成了由 mirror-0 和 mirror-1 组成的带条卷,与上面介绍的扩容原理遥相辉映。

20150130223021

只要你的 FreeNAS 主机有足够多的 SATA 接口和硬盘,就可以无限制的为某个卷扩容。

 

方案二:替换硬盘扩容

相比第一种方案,此方案有些复杂,执行的时间也比较长。但对于那些 SATA 接口不足的主机,这可能是更靠谱的扩容方案,原理非常简单,使用更大容量的硬盘,替换掉卷中容量较小的硬盘。具体的操作方式与此前介绍过的《FreeNAS 替换损坏的硬盘》的操作完全相同,把待扩容卷中的硬盘看做损坏的硬盘即可,一块一块硬盘的替换,每替换一块,都要确认阵列重建完毕后再进行下一块硬盘的替换,直到所有硬盘都替换完成。嗯,想想也挺可怕的,这可能需要很长时间才能完成。

特别提醒:这种替换硬盘的方式需要 ZFS 支持并启用 autoexpand 属性,但 FreeNAS 8.3.0 以前的版本不支持此属性,如果你使用了更老的系统版本,必须先升级系统,然后再进行操作,否则后果很严重。

检查当前存储池是否启用 autoexpand 属性,在 WebGUI 界面左侧导航条中找到并点击打开 “Shell” 命令行。输入 zpool get all myStor 回车(把 myStor 替换成你系统里真实的卷名称),系统会显示当前存储池所有信息,找到如下图所示的 autoexpand 这一行,如果后面显示 on 代表该属性已经启用,如果为 off 代表属性被禁用。从 FreeNAS 8.3.1 版本开始,这个属性默认是被启用的。

20150130225035

如果检测到 autoexpand 属性被禁用,可以输入 zpool set autoexpand=on myStor 回车(把 myStor 替换成你系统里真实的卷名称)启用该属性,别忘了再执行一次检查命令,确认该属性启用成功。确认无误,就可以进行硬盘替换了。

本文为GetNAS.com原创,版权归上海炬树信息科技有限公司所有,未经书面授权禁止转载。

授权转载请注明来源:http://www.getnas.com/2015/01/502.html

分享按钮