Cainong
文章8
標籤19
類別0
记一次TrueNas Mirror转RaidZ R730折腾实录(2)

记一次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

UQNLTS5_6KDL_RWI0NIOC9P.png

请注意勾选“递归的”

然后打开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

回车,等待,根据数据大小要一段很漫长的时间

IMG_4176.PNG

完事之后,导出原有的Mirror池

报错了他妈的

IMG_4185.PNG

我直接进ESXi,编辑里边删除硬盘特么的

我急了我急了,我破防了

事实上折腾到这个时候已经不是第一次了,之前用的rsync,结果ISCSi没过来,简直是狗屎

到这个时候已经折腾了我3天了

发了点牢骚,但是我想说直接这么玩有数据丢失风险,虽然很暴力

他这个busy我至今也没搞明白为啥,系统日志和docker早就删了

然后你可能会在网页或者访问/mnt的时候遇到这个报错

IMG_4183.PNG

放心你数据没丢,只是没挂载上

控制台输入

zfs mount -a

然后打开smb共享啥的,看下文件的hash值有无问题,没问题就把3块硬盘重建zfs池

我还是叫main

然后之前的命令反过来

zfs send -R backup@trans | zfs receive -Fdvu main

等待,完成后再次使用

zfs mount -a

挂载迁移的数据,完事了

末尾

我不得不吐槽我自己用TrueNAS真不是个明智的决定,ZFS好处是快照的时候不会直接全量备份

快照会随着文件的更改而增大

可是问题是至今我用了几个月了我一次快照没用过。。。

然后折腾过程中各种报错,解决方法也很玄学暴力,都是直接进ESXi里删硬盘。。

博主:Cainong
文章連結:https://cainongw.cn/2023/07/01/truenas-raidz/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×