ubuntu 以及 centos 单盘改为 软raid1
项目有一个需要 批量克隆系统盘。给多台服务器使用。但是单盘的安全性不好。要使用软raid1.
组成软raid1再克隆有很多技术问题。工具很少支持。
找到的解决办法是 先普通硬盘 单盘安装系统。再加一块硬盘 ,组软raid1.
下面是单盘改软raid的方法:
### centos 和 ubuntu的 单盘改 软raid1
#### 默认第一块盘是sda,要加入raid1的是sdb
分区表克隆
```
sfdisk -d /dev/sda | sfdisk -f /dev/sdb
-d 读取分区表
-f 强制写入分区表
```
设置2块磁盘为raid模式
```
查看sda有几个分区。默认是2个
有几个分区设置 几个raid
parted /dev/sda set 1 raid on
parted /dev/sda set 2 raid on
parted /dev/sdb set 1 raid on
parted /dev/sdb set 2 raid on
```
创建raid
```
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 --metadata=1.0
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 --metadata=1.0
cat /proc/mdstat
mdadm -D /dev/md0
mdadm -D /dev/md1
```
迁移/boot/
```
mkfs.xfs /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
rsync -a /boot/ /mnt/md0/ #或者 cp -dpRx /boot/* /mnt/md0
ls /mnt/md0
umount /dev/md0
umount /boot/
mount /dev/md0 /boot/
lsblk 确认
mdadm /dev/md0 -a /dev/sda1
rm -rf /mnt/md0
lsblk
```
更新/etc/fstab
```
blkid |grep md0 | awk '{print $2}'
#查出uuid
#替换/boot 的uuid
vim /etc/fstab
## grep "/boot" /etc/fstab | sed 's/^/#/'
```
迁移根分区
```
vgs
#查出vg组的名
#-$vg = "实际组名"
vgextend $vg /dev/md1
pvs
pvmove /dev/sda2 /dev/md1
pvs
vgreduce $vg /dev/sda2
pvremove /dev/sda2
mdadm /dev/md1 -a /dev/sda2
```
配置文件
```
lvm的bug
vim /etc/lvm/lvm.conf
#注释掉,新增
use_lvmetad = 0
保存
systemctl stop lvm2-lvmetad
systemctl stop lvm2-lvmetad.socke
systemctl disable lvm2-lvmetad.socke
systemctl disable lvm2-lvmetad.socke
mdadm --examine --scan > /etc/mdadm.conf
cat /etc/mdadm.conf
配置grub
blkid |grep md0
blkid |grep md1
vim /etc/default/grub
#在GRUB_CMDLINE_LINUX=" 。。。 "
#在里面添加 rd.md.uuid="md0的uuid" rd.md.uuid="md1的uuid"
保存
grub2-mkconfig -o /boot/grub2/grub.cfg
vim /boot/grub2/device.map
#新增(hd1) /dev/sdb
保存
grub2-install /dev/sda
grub2-install /dev/sdb
```
#配置内核
```
cp /boot/initramfs-$(uname -r).img initramfs-$(uname -r).img.bak
dracut -f --mdadmconf
```
准备重启
```
#确保已经2块盘同步完成
mdadm -D /dev/md1
#重启系统,重新生成grub
init 6
登录
grub2-mkconfig -o /boot/grub2/grub.cfg
init 6
```
================================
### Ubuntu单盘改Raid
#### 默认第一块盘是sda,要加入raid1的是sdb
分区表克隆
```
sfdisk -d /dev/sda | sfdisk -f /dev/sdb
-d 读取分区表
-f 强制写入分区表
```
设置2块磁盘为raid模式
```
查看sda有几个分区。默认是2个
有几个分区设置 几个raid
parted /dev/sda set 1 raid on
parted /dev/sda set 2 raid on
parted /dev/sdb set 1 raid on
parted /dev/sdb set 2 raid on
```
创建raid
```
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 --metadata=1.0
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 --metadata=1.0
cat /proc/mdstat
mdadm -D /dev/md0
mdadm -D /dev/md1
```
迁移/boot/
```
mkfs.xfs /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
rsync -a /boot/ /mnt/md0/
ls /mnt/md0
umount /dev/md0
umount /boot/
mount /dev/md0 /boot/
mdadm /dev/md0 -a /dev/sda1
rm -rf /mnt/md0
lsblk
```
更新/etc/fstab
```
blkid |grep md0
#查出uuid
#替换/boot 的uuid
vim /etc/fstab
```
迁移根分区
```
vgs
#查出vg组的名
#-$vg = "实际组名"
vgextend $vg /dev/md1
pvs
pvmove /dev/sda2 /dev/md1
pvs
vgreduce $vg /dev/sda2
pvremove /dev/sda2
mdadm /dev/md1 -a /dev/sda2
```
配置文件
```
mdadm --examine --scan > /etc/mdadm.conf
cat /etc/mdadm.conf
```
配置内核
```
cp /boot/initamfs-3.10.0-514.el7.x86_64.img initramfs-3.10.0-514.el7.x86_64.img.bak
dracut -f --mdadmconf
update-initramfs -u
配置grub
update-grub
```
准备重启
```
#确保已经2块盘同步完成
mdadm -D /dev/md1
#重启系统
init 6
登录
```
==================================
硬盘dd克隆
========== 填充文件系统剩余空间为0.提高压缩比 dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon 方法二: mkdir /mnt/hdb mount /dev/hdb /mnt/hdb dd if=/dev/zero of=/mnt/hdb/zero rm /mnt/hdb/zero ====================== 排除坏块 conv=sync,noerror =================================================================================== 全部汇总 生成镜像再部署 通过U盘启动 linux系统 优化母盘空间 mkdir /mnt/hdb mount /dev/hdb /mnt/hdb dd if=/dev/zero of=/mnt/hdb/zero rm /mnt/hdb/zero 开始生成镜像 dd if=/dev/sdb bs=4096 conv=sync,noerror status=progress | gzip -9 > /sdb.img.gz 恢复硬盘 gunzip -c /sdb.img.gz | dd of=/dev/sdc status=progress 直接对拷 dd if=/dev/sdb of=/dev/sdc bs=4096 conv=sync,noerror status=progress ==========================

浙公网安备 33010602011771号