现有 CentOS6 安装上的 RAID1

现有 CentOS6 安装上的 RAID1

我的服务器中有两块 500GB 硬盘。目前没有配置 RAID,但安装了 CentOS6(目前为裸机安装)。是否可以设置软件 RAID-1,以便两个硬盘都镜像,而无需重新安装操作系统?我可以访问 KVM 以备不时之需,但我更希望能够通过 SSH 完成所有操作。

答案1

您可以这样做(我自己从未尝试过,因此请先测试您的 KVM 访问!):

第一个镜像整个磁盘 (/dev/sdX) 或仅镜像分区的设备。即使您只镜像一个完整的磁盘分区。在下面的示例中,我假设镜像整个磁盘。

mdadm --create /dev/md0 -n 2 -l 1 missing /dev/sdb
这将创建一个缺少一个磁盘的 RAID-1 镜像。

将第一个磁盘上的所有数据复制到阵列。Rsync
可能对此有用。在副本中排除 /proc 和 /dev。
可能需要创建分区。您的帖子中没有足够的信息来表明是否是这种情况。

在新的 MD 设备上设置正确的启动。在 grub2(或您的启动管理器)中保留一个选项,以便在无法正常工作时返回到旧磁盘。

重新启动到新磁盘。忽略阵列状态降级警告。

将旧磁盘添加到阵列mdadm --manage /dev/md0 -a /dev/sda并让其同步。

[编辑] 如果您需要任何额外信息,请报告此情况。例如,modprobe raid1CentOS 默认未加载镜像模块。如答案开头所述:未经测试)。


实际测试过的东西:

步骤 1:创建数组

我在 Vmware 工作站中创建了一个带有两个 5 GB 磁盘的虚拟机。我下载了 CentOS 6.4 ISO 并使用单个分区将其安装在第一个磁盘上。这可能不是对磁盘进行分区的最佳方法,但这仅用于测试。

如您所见,启动后只有一个磁盘正在使用:

[root@centOS-RAID-test etc]# mount
/dev/sda1 开启 / 类型 ext4 (rw)
/proc 上的 proc 类型 proc (rw)
/sys 上的 sysfs 类型 sysfs (rw)
/dev/pts 上的 devpts 类型 devpts (rw,gid=5,mode=620)
/dev/shm 上的 tmpfs 类型 tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/proc/sys/fs/binfmt_misc 上无类型 binfmt_misc (rw)

[root@centOS-RAID-test etc]# cat fstab
#
/etc/fstab 文件
# 由 anaconda 于 2013 年 11 月 10 日星期日 01:19:26 创建
#
# 通过引用可访问的文件系统位于“/dev/disk”下
# 请参阅手册页 fstab(5)、findfs(8)、mount(8) 和/或 blkid(8) 以了解更多信息
#
# UUID=ccb58393-d92e-473f-ae8d-7b2d7231dae8 / ext4 默认值 1 1
/dev/sda1 / ext4 默认值 1 1
tmpfs /dev/shm tmpfs 默认值 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs 默认值 0 0
proc /proc proc 默认值 0 0

我对默认设置做了一项更改,即将基于 UUID 的挂载点更改为 /dev/sda1。我这样做是因为我认为这样更容易识别磁盘。更改后我重新启动,以确保没有以某种方式破坏系统。

接下来让我们使用 mdadm。

curl ftp.pbone.net/mirror/ftp.centos.org/6.4/os/x86_64/Packages/mdadm-3.2.5-4.el6.x86_64.rpm > 文件
  % 总计 % 已接收 % Xferd 平均速度 时间 时间 时间 当前
                                 Dload 上传 总耗时 剩余速度
100 333k ​​100 333k ​​0 0 339k 0 --:--:-- --:--:-- --:--:-- 1044k

[root@centOS-RAID-test ~]# rpm -ivh 文件
警告:文件:Header V3 RSA/SHA1 签名,密钥 ID c105b9de:NOKEY
准备中...############################################# [100%]
   1:mdadm ############################################## [100%]

[root@centOS-RAID-test ~]# mdadm
用法:mdadm --help
  求助

好的,mdadm 命令似乎存在并且在我的路径中。无需重复。

[root@centOS-RAID-test ~]# mdadm --create /dev/md0 -n 2 -l 1 缺少 /dev/sdb
mdadm:/dev/sdb 似乎是 raid 阵列的一部分:
    级别=raid0 设备=0 ctime=1970 年 1 月 1 日星期四 01:00:00
mdadm:分区表存在于/dev/sdb上,但将会丢失或
       创建数组后毫无意义
mdadm:注意:此数组开头有元数据,
    可能不适合作为启动设备。如果您打算
    在此设备上存储“/boot”,请确保
    你的引导加载程序理解 md/v1.x 元数据,或者使用
    --元数据=0.90
是否继续创建数组?y
mdadm:默认为版本 1.2 元数据
mdadm:阵列 /dev/md0 已启动。

[root@centOS-RAID-test ~]# cat /proc/mdstat
人物 : [raid1]
md0 :活动 raid1 sdb[1]
      5238720 块超级 1.2 [2/1] [_U]

我不知道为什么它认为这个未使用的磁盘是以前阵列的一部分,但是新的 md 设备成功创建,没有任何“设备或资源繁忙”错误。


注意名称:MD0。当我重新启动时,它更改为 md127。

为了保持一致,请创建 /etc/mdadm.conf。我将其用作 ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 devices=/dev/sdb内容。通过谷歌搜索可以自动执行此操作mdadm --verbose --detail --scan > /etc/mdadm.conf

现在已经快凌晨 3 点了,所以停止更新了。明天继续

相关内容