如果我们要把就磁盘的文件迁移至新的磁盘,又担心新磁盘挂载到旧文件路径下会覆盖这些旧文件,需要如何做?
以迁移/host下的文件为例
以迁移至普通磁盘
如果是迁移到普通的磁盘:
备份文件,并删除旧文件
首先把 /host 下的所有文件都备份到别的位置,这是为了新磁盘挂载后,复制回来。备份完了记得删除这些旧文件,因为新磁盘挂载到 /host 并不会删除掉这些旧文件,而是隐藏掉,此时复制回来会提示是否覆盖,即使你覆盖了系统也继续隐藏这些文件
安装mdadm
yum install -y mdadm
分区并格式化
如果新插入的一块磁盘sdb,首先进行分区并格式化
# 格式化
fdisk /dev/sdb
# 根据提示键入
# n:创建新分区
# t:选择分区类型,选择“Linux raid autodetect”,id是“fd”
# w:保存!!
分好区,执行应该可以看到
fdisk /dev/sdb
最后格式化
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
评论区