重装Ubuntu 22.04.2 Server后重新挂载原RAID数据盘的疑问
嗨,我来帮你拆解下遇到的问题和解决办法!
首先解释下为什么你挂载sdb、sdd时,系统都显示成了sda——这是因为你的三个数据盘是Btrfs类型的RAID存储池,和传统的mdadm RAID不一样,Btrfs会把多个磁盘整合成一个统一的文件系统实体。不管你选择挂载这个存储池里的哪一块磁盘,系统都会识别到整个存储池,所以看起来三个挂载点都指向sda,但实际上它们访问的是同一个由sda、sdb、sdd组成的Btrfs存储池。
然后关于你问的“是不是只挂载sda就有RAID保护”——答案是不行!现在你单独挂载单个磁盘,虽然能正常读取数据,但已经失去了RAID的冗余保护能力:比如如果之前是RAID1镜像模式,现在只挂sda的话,sdb和sdd不会同步新写入的数据,一旦sda损坏,数据就没了;如果是RAID5/6模式,单独挂载单盘甚至可能出现数据不一致的风险。
接下来是正确的处理步骤:
先卸载当前错误的挂载点:
sudo umount /home/uname/d1 sudo umount /home/uname/d2 sudo umount /home/uname/d3查看Btrfs存储池的详细信息,确认所有组成磁盘:
sudo btrfs filesystem show执行后你会看到对应的Btrfs文件系统UUID,以及明确列出组成这个存储池的磁盘(应该包含sda、sdb、sdd)。
挂载整个Btrfs RAID存储池(推荐用UUID,更稳定):
找到对应的UUID后,执行类似这样的命令:sudo mount /dev/disk/by-uuid/[你的Btrfs UUID] /home/uname/data或者也可以直接指定所有磁盘设备(不过UUID更不容易出错):
sudo mount -t btrfs /dev/sda /dev/sdb /dev/sdd /home/uname/data设置开机自动挂载,避免下次重启又要手动操作:
编辑/etc/fstab文件:sudo nano /etc/fstab在文件末尾添加一行(替换成你自己的UUID和挂载路径):
UUID=[你的Btrfs UUID] /home/uname/data btrfs defaults 0 0保存退出后,执行
sudo mount -a验证一下配置是否正确,没有报错就说明没问题了。
这样操作后,你的Btrfs RAID存储池就会正常挂载,恢复原来的冗余保护能力啦!
备注:内容来源于stack exchange,提问作者David Oneill

