Gar*_*eth 5 hardware linux raid debian cloning
我在物理 Debian 服务器上的软件 RAID1 设置中有两个 600GB 驱动器。
我希望能够通过将驱动器克隆到一对匹配的 2TB 驱动器来升级服务器的容量。然后我可以擦除 600GB 驱动器并将它们用作存储或其他任何东西。
解决这个问题的最佳方法是什么?
slave:~# mount
/dev/md0 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
Run Code Online (Sandbox Code Playgroud)
Zor*_*che 10
您应该能够更换第一个驱动器,将分区添加到阵列并让raid 重新同步。然后更换第二个驱动器,让它重新同步,然后扩展raid和文件系统以占用整个空间。当您对新驱动器进行分区时,使它们占据您想要用于新布局的所有空间。
从阵列中删除设备
mdadm /dev/md0 --remove /dev/olddevice
Run Code Online (Sandbox Code Playgroud)
将设备添加到阵列
mdadm /dev/md0 --add /dev/newdevice
Run Code Online (Sandbox Code Playgroud)
增加数组以占用分区允许的整个空间
mdadm /dev/md0 --grow --size=max
Run Code Online (Sandbox Code Playgroud)
增加文件系统以占用阵列的整个空间
resize2fs /dev/md0
Run Code Online (Sandbox Code Playgroud)
您仍然应该进行备份。只是要确定。如果你想练习和测试,你可能想先在虚拟机中尝试一下,这样你就会有信心。
小智 5
以防万一有人用谷歌搜索这个,这是我在 mdadm RAID1 + LVM 上从 2x150Gb 驱动器移动到 2x1Tb 驱动器的经验。
假设,我们有 2 个驱动器——mdadm 镜像 (md0) 中的 small1、small2,新的驱动器是 big1 和 big2。在它们之上是带有卷组 VG1 和逻辑卷 LV1 的 LVM
确保当前 md 一切正常:
cat /proc/mdadm
Run Code Online (Sandbox Code Playgroud)
告诉 mdadm 使一个驱动器失效并将其从 md 阵列中删除:
mdadm /dev/md0 --set-faulty /dev/small1 && mdadm /dev/md0 --remove /dev/small1
Run Code Online (Sandbox Code Playgroud)
用大驱动器替换 small1 驱动器(热插拔或关闭系统电源)。
在 FD 类型的大硬盘上创建新分区(Linux RAID 自动检测)。使其成为您希望新 RAID 的大小。我更喜欢 cfdisk,但这可能会有所不同:
cfdisk /dev/big1
Run Code Online (Sandbox Code Playgroud)
添加新磁盘(或者,正确地说,是您新创建的分区,例如 /dev/sda1):
mdadm /dev/md0 --add /dev/big1
Run Code Online (Sandbox Code Playgroud)
等到阵列同步:
watch cat /proc/mdstat
Run Code Online (Sandbox Code Playgroud)
对另一对驱动器重复此操作。最后你会得到两个大磁盘阵列。
将数组增长到组件设备允许的最大大小,等待同步:
mdadm /dev/md0 --grow --size=max
watch cat /proc/mdstat
Run Code Online (Sandbox Code Playgroud)
现在是调整 LVM 大小的时候了。请注意 --test 选项,它将模拟操作,但不会更改元数据(在实际调整大小之前查看是否有任何配置错误很有用)。
调整物理卷大小:
pvresize --verbose --test /dev/md0
Run Code Online (Sandbox Code Playgroud)
调整逻辑卷大小:
lvresize --verbose -L <SIZE> --test /dev/VG1/LV1
Run Code Online (Sandbox Code Playgroud)
最后,调整 ext3 FS 的大小:
resize2fs /dev/VG1/LV1
Run Code Online (Sandbox Code Playgroud)
使用两个 1Tb 硬盘,我花了大约 20 个小时(在搞乱 LVM 和 FS 之前,我已经从阵列中移除了一个磁盘,所以它是 3 个同步 + 阵列增长)。
一切都在生产服务器上完成,服务运行没有中断。
但不要忘记在进行任何更改之前备份您的数据。