标签搜索

目 录CONTENT

文章目录

将旧磁盘的文件平滑迁移至raid磁盘阵列组(以raid0为例)

陈铭
2022-06-30 / 0 评论 / 0 点赞 / 277 阅读 / 743 字 / 正在检测是否收录...

如果我们要把就磁盘的文件迁移至新的磁盘,又担心新磁盘挂载到旧文件路径下会覆盖这些旧文件,需要如何做?

以迁移/host下的文件为例

以迁移至普通磁盘

如果是迁移到普通的磁盘:

备份文件,并删除旧文件

首先把 /host 下的所有文件都备份到别的位置,这是为了新磁盘挂载后,复制回来。备份完了记得删除这些旧文件,因为新磁盘挂载到 /host 并不会删除掉这些旧文件,而是隐藏掉,此时复制回来会提示是否覆盖,即使你覆盖了系统也继续隐藏这些文件

安装mdadm

yum install -y mdadm

分区并格式化

如果新插入的一块磁盘sdb,首先进行分区并格式化

# 格式化
fdisk /dev/sdb
# 根据提示键入
# n:创建新分区
# t:选择分区类型,选择“Linux raid autodetect”,id是“fd”
# w:保存!!

image
分好区,执行应该可以看到

fdisk /dev/sdb

image

最后格式化

mkfs.ext4 /dev/sdb1

挂载

# 挂载
mount /dev/sdb1 /host
# 通知内核分区以改变
partprobe /dev/sdb1

拷贝回备份的文件到/host即可

以迁移至raid磁盘阵列组

文件备份并删除

如上所述

分区并格式化

如果我们要组raid,以2个磁盘分区为例,分别是 (sdb1,sdb2) ,这里是把 /dev/sdb 分区了两次,分别执行fdisk /dev/sdb就行了,第一次分区号是1,第二次是2.

后面组成的raid0会挂载到/host
raid0 (sdb1,sdb2) --> /host

组raid并挂载

这里就以raid0为例,创建出设备/dev/md0。经过实验,raid5是一样的操作。

# 有询问yes即可
# -l:raid等级
# -n:device数量
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
# 查看创建是否成功,成功会看到“Personalities  :  [raid0]”
cat /proc/mdstat
# 格式化md0
mkfs.xfs /dev/md0
# 挂载
mount /dev/md0 /host
# 持久化挂载
vim /etc/fstab
加上  /dev/md0 /mnt/raid0 xfs defaults 0 0

拷贝文件

如上所述,粘贴进去就行

查看raid

mdadm -D /dev/md0

模拟raid的磁盘损坏和恢复

这里我用的是md5,是raid5创建出来的文件设备,它由/dev/sdb1、/dev/sdc1和/dev/sdd1组成。(raid5至少需要三张磁盘)

# 模拟sdb1错误
mdadm /dev/md5 -f /dev/sdb1
# 移除sdb1,移除后,原来的文件是在的!!
mdadm /dev/md5 -r /dev/sdb1

# 增加sdb1
mdadm /dev/md5 -a /dev/sdb1

# 增加回去后,应该可以看到raid的恢复日志:
# md5 : active raid5 sdb1[4] sdd1[3] sdc1[1]
#       4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 # [3/2] [_UU]
#       [==========>..........]  recovery = 52.3% (1095680/2094080) finish=0.0min speed=182613K/sec
# unused devices: <none>
tail -f /proc/mdstat
0

评论区