
记一次TrueNas Mirror转RaidZ R730折腾实录(2)
起因
正如我在(1)说的一样,我存了点片,ISCSi挂载了几个硬盘
于是我的4T Mirror阵列就快红了
开始折腾
先说方法:
那就是没有方法
ZFS属于写时复制文件系统,他的存储池类型在创建时就已经固定了
说人话就是,没法直接改
那我想扩容原有的池,咋办捏?
两个方法:
第一个,Mirror池也好,Raid也一样,拔一块硬盘下来,换更大的插上去,等他重建阵列完事后拔另一块换更大的
第二个,加一块新的组RaidZ
我选择了第二种
于是又到了噩梦开始的时候
上网搜了一圈,大概的思路就是用一块中转硬盘备份原有的数据,销毁原来的Mirror池,将加入的硬盘和原来的Mirror池中的两块硬盘一起组成RaidZ,并将那个中转硬盘的数据拷贝过来
看到这里我有种想换DSM的冲动,先不说这么做要的时间,将数据拷贝到另一块硬盘很显然有丢数据的风险,要是那块硬盘坏了直接就可以重开了
但是又没办法,我始终不放心把自己的数据放在黑群晖上
那就只能这么折腾了
得亏我的数据才3个多T,多一点我直接原地去世
那就开始吧
更改硬盘配置
首先,我的配置是原来两块4T组Mirror,一块4T存储虚拟机数据,我需要把虚拟机数据的那块盘腾出来,换到一块新的盘上
此外,为了中转数据,你还需要一块盘
也就是说RaidZ理论来说只要3块,但是为了完成这个操作,你实际需要4块盘
换DSM吧
为此我又买了两块戴尔的SAS盘 4T
-400rmb
两块SAS插进服务器,进ESXi里,新建数据存储,移动一下虚拟机到新的Datastore
ESXi的移动方式是先复制再删除,所以不用担心中途关机会丢数据
我这里删不掉Datastore
确保所有虚拟机迁移完毕,取消注册所有虚拟机,删除原有的Datastore就好了
这样就把一块硬盘腾出来了
开始迁移存储池的数据
我给TrueNAS创建了一块4T的虚拟硬盘在我的中转盘上
考虑到我数据不多,没有存满4T,所以我选的精简置备
在TrueNAS中用那个虚拟硬盘创建一个新的池,叫backup吧
然后在TrueNAS中给原来的池子main创建一个快照,名称随意,我这里叫trans
请注意勾选“递归的”
然后打开TrueNAS的SSH,并用一台不关机的设备连接上去,因为SSH的会话窗口在克隆快照的过程中不能关闭
在SSH控制台中输入
zfs send -R pool1@01 | zfs receive -Fdvu pool2
其中pool1为你原存储池,01为上面的快照名字,pool2为你的中转存储池
举个例子,在我这就是:
zfs send -R main@trans | zfs receive -Fdvu backup
回车,等待,根据数据大小要一段很漫长的时间
完事之后,导出原有的Mirror池
报错了他妈的
我直接进ESXi,编辑里边删除硬盘特么的
我急了我急了,我破防了
事实上折腾到这个时候已经不是第一次了,之前用的rsync,结果ISCSi没过来,简直是狗屎
到这个时候已经折腾了我3天了
发了点牢骚,但是我想说直接这么玩有数据丢失风险,虽然很暴力
他这个busy我至今也没搞明白为啥,系统日志和docker早就删了
然后你可能会在网页或者访问/mnt的时候遇到这个报错
放心你数据没丢,只是没挂载上
控制台输入
zfs mount -a
然后打开smb共享啥的,看下文件的hash值有无问题,没问题就把3块硬盘重建zfs池
我还是叫main
然后之前的命令反过来
zfs send -R backup@trans | zfs receive -Fdvu main
等待,完成后再次使用
zfs mount -a
挂载迁移的数据,完事了
末尾
我不得不吐槽我自己用TrueNAS真不是个明智的决定,ZFS好处是快照的时候不会直接全量备份
快照会随着文件的更改而增大
可是问题是至今我用了几个月了我一次快照没用过。。。
然后折腾过程中各种报错,解决方法也很玄学暴力,都是直接进ESXi里删硬盘。。