Sil*_*ler 6 linux raid software-raid
我正在尝试设置一个可启动的软件 RAID,该 RAID 将包含根文件系统并启动 Linux Mint Qiana。它将用于在小型数据中心运行一些图形监控应用程序,以及访问其他 LAN 节点的简单终端。
我有两个 500GB SATA 驱动器(/dev/sda
和/dev/sdb
),我将用它们来构建 RAID 1 阵列。似乎有很多方法可以做到这一点,但我有点不清楚如何创建md0
可启动的设备。
我的第一种方法是使用 Live Linux Mint 安装 CD 启动。然后我会切换到 bash 提示符并/dev/sda
使用sfdisk
. 我创建了一个简单的分区表,其中包括一个主分区和一个交换分区。然后我简单地将分区表从/dev/sda
到/dev/sdb
:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Run Code Online (Sandbox Code Playgroud)
好的,现在我有两个驱动器可以组装成一个 RAID 阵列。我首先通过说创建数组:
mdadm --create --verbose --metadata=0.90 /dev/md0 --level=mirror
--raid-devices=2 /dev/sda /dev/sdb
Run Code Online (Sandbox Code Playgroud)
大约一个小时后,阵列完成同步。
我现在可以/dev/md0
通过给它一个文件系统来初始化:
mke2fs -t ext4 /dev/md0
Run Code Online (Sandbox Code Playgroud)
好的,现在一切看起来都很好。因此,我切换回 Live CD 安装,并将 Linux 安装到/dev/md0
. 一切正常,直到安装程序尝试运行grub-install
,然后它收到一个致命错误。
所以,我一直在研究,试图了解这里的原因。我不完全确定为什么会发生这种情况,但我的理解是它与“一个人不能简单地从/dev/md0
”启动这一事实有关。似乎为了创建可引导的多设备 RAID 1 阵列,您需要创建一个单独的非 RAID/boot
分区,或者使用initramfs
.
不幸的是,我不完全明白这意味着什么。首先,我不想创建单独的非 RAID/boot
分区,因为从启动的整个启动md0
是为了冗余。其次,我的理解是该initramfs
方法是mdadm
在引导时加载到 rootfs 中所必需的。但是,当我从 Live CD 启动并创建我的 RAID 阵列时,mdadm
它已经加载到内存中,所以我不明白为什么安装程序在运行grub-install
.
有人可以解释我在这里缺少哪些步骤,或者提供如何设置可以启动的多设备安装的概述吗?
使用软件 RAID 引导几乎总是需要单独的 /boot 分区,尤其是对于旧版本的 GRUB。为 /boot 创建 RAID-1 分区时还需要指定“--metadata=0.90”。
/boot 应该是第一个分区并且保持较小。主要是出于旧版 BIOS 启动原因。/boot 应该是一个单独的分区的另一个原因是它通常应该以只读模式安装在 /etc/fstab 中。在进行内核升级之前,您应该只将其重新挂载为可读写。
我使用的典型驱动器设置是:
/dev/sda1 + /dev/sdb1 = /dev/md0 Software RAID-1 with metadata 0.90
/dev/sda2 + /dev/sdb2 = /dev/md### Software RAID-1 with LVM on top
Run Code Online (Sandbox Code Playgroud)
我总是使用 /dev/md0 作为 /boot 分区。对于 LVM 区域,我对 mdadm 设备号使用低于 125 的随机数,主要是为了防止该驱动器在启动时连接到不同的服务器(即在恢复期间通过 USB)时发生损坏。
在 /boot 上设置 RAID-1 后,您必须将 GRUB 安装到 RAID-1 阵列中的每个驱动器上。
此特定示例展示了如何设置 3 路 RAID-1 镜像,以便所有三个驱动器都可以使用 GRUB 引导。
# grub
grub> find /grub/stage1
(hd0,0)
(hd1,0)
(hd2,0)
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19866 次 |
最近记录: |