如何在现有的CentOS / RedHat 6.0系统上创建RAID1设置

如何在现有的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中的一些条目。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏