×

迁移系统至软 RAID 阵列

hqy hqy 发表于2024-12-16 14:14:45 浏览13 评论0

抢沙发发表评论

迁移系统至软 RAID 阵列

mprop="articleBody" style="font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; overflow-wrap: break-word; font-size: 1.125em; text-align: justify; animation-duration: 1s; animation-fill-mode: none; animation-name: fadeInDown; visibility: inherit; color: rgb(85, 85, 85); text-wrap: wrap; background-color: rgb(255, 255, 255);">

  背景故事:去年装 R7515 的时候使用的是 1 块 512GB 的英睿达 MX500 作为系统盘,另一块 512GB 的英睿达 MX500 作为虚拟机的数据盘。原先设想后续改造将两块 MX500 改成 RAID1 阵列作为系统盘,另外再购置大容量数据盘。不料 618 致钛 7100 价格太美丽,一口气入了 4 块 2TB,挑了 2 块不同批次的组 RAID1,用于系统盘 + 数据盘,另外 2 块专门作为数据库或云游戏的高性能存储。所以目标就是将单块 MX500 上的系统迁移的 MD 软 RAID 阵列上。

整体规划

  • 请一定注意你知道每条命令在干什么,数据不是儿戏!

  • EFI 分区放在阵列中也是可行的,但是我并没有使用

  • EFI 分区都同步到两个硬盘,这样挂掉任何一块,都还能引导

  • 拆分卡上面的顺序标号和系统里看到的是相反的,但是在 iDRAC 中看到又相同

1
2
3
4
5
6
7
8
9
10
11
lsblk
# 旧硬盘结构
sda                      259:0    0 465.8G  0 disk
├─sda1                   259:1    0   512M  0 part
└─sda2                   259:8    0 465.3G  0 part
 ├─pve-swap             253:5    0    16G  0 lvm   [SWAP]
 ├─pve-root             253:6    0    96G  0 lvm   /
 ├─pve-data_tmeta       253:7    0   3.4G  0 lvm
 │ └─pve-data           253:9    0 330.5G  0 lvm
 └─pve-data_tdata       253:8    0 330.5G  0 lvm
   └─pve-data           253:9    0 330.5G  0 lvm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
lsblk
# 新硬盘结构
nvme0n1                      259:0    0   1.9T  0 disk
├─nvme0n1p1                  259:1    0   512M  0 part  /boot/efi
└─nvme0n1p2                  259:2    0   1.8T  0 part
 └─md127                      9:127  0   1.8T  0 raid1
   └─md127p1                259:8    0   1.8T  0 part
     ├─pve-swap             253:5    0    16G  0 lvm   [SWAP]
     ├─pve-root             253:6    0    96G  0 lvm   /
     ├─pve-data_tmeta       253:7    0   3.4G  0 lvm
     │ └─pve-data           253:9    0 330.5G  0 lvm
     └─pve-data_tdata       253:8    0 330.5G  0 lvm
       └─pve-data           253:9    0 330.5G  0 lvm
nvme1n1                      259:3    0   1.9T  0 disk
├─nvme1n1p1                  259:5    0   512M  0 part
└─nvme1n1p2                  259:6    0   1.8T  0 part
 └─md127                      9:127  0   1.8T  0 raid1
   └─md127p1                259:8    0   1.8T  0 part
     ├─pve-swap             253:5    0    16G  0 lvm   [SWAP]
     ├─pve-root             253:6    0    96G  0 lvm   /
     ├─pve-data_tmeta       253:7    0   3.4G  0 lvm
     │ └─pve-data           253:9    0 330.5G  0 lvm
     └─pve-data_tdata       253:8    0 330.5G  0 lvm
       └─pve-data           253:9    0 330.5G  0 lvm

硬件安装

  拆分卡地址就不贴了,支持 PCIe 4.0 的,吳真从来不拐弯抹角,但是我好像买贵了好多,就请直接按图搜吧。屁股后面还有 4 个指示灯,标识对应硬盘是否在线.

BIOS 设置

  • NVMe Settings -> BIOS NVMe Driver:选择 All Drives

  • Integrated Devices -> Slot Bifurcation

    • Auto Discovery Bifurcation Settings:选择 Manual Bifurcation Control

    • Slot 4 Bifurcation:选择 x4 Bifurcation,因为只有这个槽支持 PCIe 4.0

实施

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 为新硬盘分区
# 关机重启进入Live CD模式,Ubuntu即可
sudo -i

fdisk /dev/nvme0n1
g # 新建GPT分区表
n # 新建分区
 # 直接回车,默认分区1
 # 直接回车,默认起始位置2048
+1048575 # 分区大小,自行调整,和原来一样为512M
n # 新建分区
 # 直接回车,默认分区2
 # 直接回车,紧接着分区1
+3879731199 # 分区大小,这个数据的解释见后问
t # 修改分区类型
1 # 修改分区1类型
uefi # 分区1设置为UEFI分区
t
2
raid # 分区2设置为RAID分区
p # 查看下最终效果
w # 保存分区表

# 第2块硬盘执行相同操作
fdisk /dev/nvme1n1

关于分区 2 的大小,3879731199,考虑到若阵列中某块物理硬盘损坏,更换的新硬盘大小和原始大小不同,因此应尽量不使用全部的硬盘空间作为分区,而是选择一个略微小一点的大小。这里的取值为,按照硬盘标定容量 2 * 10^12 计算,-512MB EFI 分区,大约 1862GB 左右,向下取整到 1850GB,每个扇区为 512B,折合 3879731200 扇区。

1
2
3
4
5
6
7
8
9
# 建立MD软RAID阵列
apt update && apt install mdadm
mdadm --create /dev/md0 --name system --level=mirror --raid-devices=2 /dev/nvme0n1p2 /dev/nvme1n1p2
cat /proc/mdstat # 应该能观察到已开始重建

# 加快重建速度
echo 6000000 > /proc/sys/dev/raid/speed_limit_min
echo 6000000 > /proc/sys/dev/raid/speed_limit_max
cat /proc/mdstat # 应该能观察到重建速度加快
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 同步数据
# 同步EFI分区
dd if=/dev/sda2 of=/dev/nvme0n1p1
dd if=/dev/sda2 of=/dev/nvme1n1p1 #这个其实可有可无

# 为MD阵列分区
fdisk /dev/md0
g
n
# 直接回车
# 直接回车
# 直接回车,阵列直接用全部空间就好
t
1
lvm
p
w

# 同步LVM分区
dd if=/dev/sda3 of=/dev/md0p1 bs=64M # batch size调大点,速度可以快很多
# 可以再开一个窗口观察进度
apt update && apt install libncurses6
# 不知道为什么apt找不到progress,可以去https://pkgs.org/download/progress找
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/progress/progress_0.16-1_amd64.deb
dpkg -i progress_0.16-1_amd64.deb
progress -m # 观察dd进度及速度

  这一步很重要,关机将原硬盘拔掉,然后重新进入 Live CD 模式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
apt update && apt install mdadm
mdadm --assemble /dev/md0 /dev/nvme0n1p2 /dev/nvme1n1p2 # 重建MD阵列

# 重新安装grub
mkdir /mnt/root
mount /dev/mapper/pve-root /mnt/root
mount /dev/nvme0n1p1 /mnt/root/boot/efi/
mount --bind /proc/ /mnt/root/proc/
mount --bind /sys/ /mnt/root/sys/
mount --bind /run/ /mnt/root/run/
mount --bind /dev/ /mnt/root/dev/
chroot /mnt/root
apt update && apt install mdadm # 如果原来系统里没装md

grub-install --efi-directory=/boot/efi --recheck
update-grub
# 确保grub.cfg中已加载RAID模块
cat /boot/grub/grub.cfg | grep "insmod mdraid1x"

  关机重启,理论上应该能够自动进入系统,R7515 记得选择 PCIe SSD in Slot 4: proxmox。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 分区扩容
lvm

pvdisplay # 查看PV情况
pvresize /dev/md127p1 # 扩容PV
pvdisplay

vgdisplay # 查看VG情况,应该已经自动扩容

lvextend -l +100%FREE /dev/pve/data # 扩容LV
lvdisplay # 查看LV情况,应该已扩容

# 若果你扩容的分区存在文件系统,那么还需要resize2fs或xfs_growfs等命令扩容文件系统


打赏

本文链接:https://www.kinber.cn/post/4138.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客