在物理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)
你应该能够replace第一个驱动器,分区添加到arrays,并让RAID重新同步。 然后更换第二个驱动器,让它重新同步,然后展开raid和文件系统占用整个空间。 当你分区你的新驱动器,使他们占据了新的布局所需的所有空间。
man mdadm , resize2fs
从arrays中删除设备
mdadm /dev/md0 --remove /dev/olddevice
添加一个设备到arrays
mdadm /dev/md0 --add /dev/newdevice
增长arrays占据分区允许的整个空间
mdadm /dev/md0 --grow --size=max
增大文件系统占用arrays的空间
resize2fs /dev/md0
你还应该做一个备份。 只是要确定。 如果你想练习和testing,你可能想先在虚拟机上试试这个,这样你就可以放心。
为了防止有人使用这个function,我的经验是从mdadm RAID1 + LVM上的2x150Gb到2x1Tb的驱动器。
假设,我们有2个驱动器 – small1,small2在mdadm镜像(md0),新的是big1和big2。 在它们之上是具有卷组VG1和逻辑卷LV1的LVM
确保一切OK与当前md:
cat /proc/mdadm
告诉mdadm失败一个驱动器,并将其从md数组中删除:
mdadm /dev/md0 --set-faulty /dev/small1 && mdadm /dev/md0 --remove /dev/small1
用大的replacesmall1驱动器(无论是热插拔,或系统下电)。
在FD型(Linux RAID autodetect)的大硬盘上做新的分区。 使它成为你想要的新RAID的大小。 我更喜欢cfdisk,但这可能会有所不同:
cfdisk /dev/big1
添加新磁盘(或者,正确的话,你新创build的分区,例如/ dev / sda1):
mdadm /dev/md0 --add /dev/big1
等待数组同步:
watch cat /proc/mdstat
对另一对驱动器重复此操作。 最后你会得到两个大的磁盘arrays。
将arrays扩展到组件设备允许的最大大小,等待同步:
mdadm /dev/md0 --grow --size=max watch cat /proc/mdstat
现在是时候调整LVM的大小了。 注意–test选项,它将模拟操作,但不会更改元数据(在实际resize之前查看是否有任何错误configuration很有用)。
调整物理卷的大小:
pvresize --verbose --test /dev/md0
调整逻辑卷大小:
lvresize --verbose -L <SIZE> --test /dev/VG1/LV1
最后,调整ext3 FS的大小:
resize2fs /dev/VG1/LV1
有了两个1TB硬盘,我花了大约20个小时(我已经从LVM和FS中删除了一个磁盘,所以它是3个同步+arrays的增长)。
所有这些都是在生产服务器上完成的,不会中断正在运行的服务。
但是在做任何改变之前不要忘记备份你的数据 。
假设其中一个被replace的磁盘是一个引导磁盘,在开始取出磁盘之前,您不需要担心在两个磁盘上都有 GRUB吗? (我假设GRUB寻找的东西,在/ boot中,镜像到两个磁盘上。)
我很确定,当我没有得到这个权利时,我已经注意到一个不太GRUB的提示。