如何在现有的CentOS / RedHat 6.0系统上创建RAID1设置
作者:Maurice Hilarius - Hard Data Ltd. - 2011年10月12日
本教程用于将单个磁盘CentOS 6系统转换为两个磁盘RAID1系统。 GRUB引导加载程序将被配置为使得如果其中一个硬盘驱动器发生故障,系统仍然可以启动(无论哪一个)。
注意:一切都必须以root身份完成:
su -
enter root password
在这个例子中,硬盘的初始布局是:
安装操作系统的磁盘。 “原版的”
Device Mountpoint Size
--------------------------------------------------------------------------------
/dev/sdb ~1002GB
/dev/sdb1 /boot 256MB
/dev/sdb2 / 24GB
/dev/sdb3 swap 4GB
/dev/sdb5 /var 4GB
/dev/sdb6 /home ~900GB
而我们将添加另一个硬盘: / dev / sda
(〜1002GB)。 “目标盘”。
一起回来! 崩溃转换后,您可能希望获取数据。 相信我这个!
2.验证备份! 往上看。
3.在/ dev / sda
上/ dev / sda
上创建与/ dev / sdb分区相同的分区
:
sfdisk -d /dev/sdb | sfdisk /dev/sda
我们加载了几个内核模块(以避免重启):
modprobe linear
modprobe raid0
modprobe raid1
现在运行:
cat /proc/mdstat
输出应如下所示:
root@server:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1]
unused devices: <none>
我们现在看到,RAID内核模块正在运行,但是还没有RAID套件。
6.运行以下命令:
mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 missing
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 missing
mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda5 missing
mdadm --create /dev/md3 --level=1 --raid-disks=2 /dev/sda6 missing
由于缺少第二个驱动器,因此会在退化状态下生成raid设备0到3。
7.如果要在RAID 1上使用Grub 0.97(在CentOS 5或6中默认)),则需要指定比默认值更旧的元数据版本。 将上述命令中添加“--metadata = 0.90”选项。 否则Grub将以“文件系统类型未知,分区类型0xfd”进行响应,并拒绝安装。 Grub 2认为这是不必要的。
喜欢这个:
mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing
8.检查输出
cat /proc/mdstat
#cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
473792 blocks [2/2] [U_]
md2 : active raid1 sdb5[1]
4980032 blocks [2/2] [U_]
md3 : active raid1 sdb6[1]
3349440 blocks [2/2] [U_]
md0 : active raid1 sdb1[1]
80192 blocks [2/2] [U_]
unused devices: <none>
9.从当前配置创建一个mdadm.conf:
mdadm --detail --scan > /etc/mdadm.conf
10.显示文件的内容:
cat /etc/mdadm.conf
在文件的底部,您现在应该看到有关我们的(降级)RAID阵列的详细信息。
我们使用dracut用新的mdadm.conf
重建initramfs
:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)
12.在这些新的软件raid设备上创建文件系统:
mkfs.ext2 /dev/md0 # For /boot ext2 is good
mkfs.ext4 /dev/md1 # For / ext4 is good
mkfs.ext4 /dev/md2 # For /home ext4 is good
mkfs.ext4 /dev/md3 # For /var ext4 is good
mkswap -c /dev/sda2 #We want swap partitions on both drives for performance
13.将数据从现有(并仍在运行)分区复制到新创建的RAID分区:
mkdir /mnt/raid
mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid
(如果SELinux在使用中也可以这样做:
touch /mnt/raid/.autorelabel
)
sync
umount /mnt/raid
mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid
注意:您真的不想在/ tmp和/ var / tmp中复制文件。
此命令将创建像“proc”或“dev”这样的空挂载点,不会忘记像/.autofsck那样的东西。
mount /dev/md2 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid sync umount /mnt/raid
mount /dev/md3 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid
在这一点上,我们创建了我们的RAID系统,并将现有数据手动镜像到新设备上。
为了确保系统从raid设备启动,我们必须更改/ etc / fstab
和/boot/grub/menu.lst中的
一些条目。