在 Linux 中使用“两个磁盘”设置 RAID 1(镜像) - 第 3 部分
RAID镜像是指将相同数据写入两个驱动器的精确克隆(或镜像)。阵列中至少需要两个磁盘才能创建 RAID1,并且仅当读取性能或可靠性比数据存储容量更精确时才有用。
创建镜像是为了防止由于磁盘故障而导致数据丢失。镜像中的每个磁盘都包含数据的精确副本。当一个磁盘出现故障时,可以从其他正常运行的磁盘检索相同的数据。但是,可以从正在运行的计算机更换出现故障的驱动器,而无需任何用户中断。
RAID 1 的特点
- 镜子具有良好的性能。
- 50% 的空间将会丢失。意味着如果我们有两个总大小为 500GB 的磁盘,那么它将是 1TB,但在镜像中它只会向我们显示 500GB。
- 如果一个磁盘发生故障,镜像中不会丢失数据,因为两个磁盘中的内容相同。
- 读取数据比将数据写入驱动器要好。
要求
最少允许使用两个磁盘来创建 RAID 1,但您可以使用 2、4、6、8 的两倍来添加更多磁盘。要添加更多磁盘,您的系统必须具有 RAID 物理适配器(硬件卡)。
在这里,我们使用软件 raid 而不是硬件 raid,如果您的系统有内置的物理硬件 raid 卡,您可以从其实用程序 UI 或使用 Ctrl+I 键访问它。
另请阅读:Linux 中 RAID 的基本概念
我的服务器设置
Operating System : CentOS 6.5 Final
IP Address : 192.168.0.226
Hostname : rd1.tecmintlocal.com
Disk 1 [20GB] : /dev/sdb
Disk 2 [20GB] : /dev/sdc
本文将指导您逐步了解如何使用 mdadm 设置软件 RAID 1 或 镜像(创建和管理raid)在Linux平台上。尽管相同的指令也适用于其他 Linux 发行版,例如 RedHat、CentOS、Fedora 等。
第 1 步:安装先决条件并检查驱动器
1. 正如我上面所说,我们使用 mdadm 实用程序在 Linux 中创建和管理 RAID。那么,让我们使用 yum 或 apt-get 包管理工具在 Linux 上安装 mdadm 软件包。
yum install mdadm [on RedHat systems]
apt-get install mdadm [on Debain systems]
2. 安装“mdadm”软件包后,我们需要使用以下命令检查磁盘驱动器是否已配置任何 raid。
mdadm -E /dev/sd[b-c]
正如您从上面的屏幕中看到的,尚未检测到任何超级块,这意味着尚未定义 RAID。
步骤 2:RAID 驱动器分区
3. 正如我上面提到的,我们至少使用两个分区 /dev/sdb 和 /dev/sdc 来创建 RAID1。让我们使用“fdisk”命令在这两个驱动器上创建分区,并在分区创建期间将类型更改为 raid。
fdisk /dev/sdb
请按照以下说明操作
- 按“n”创建新分区。
- 然后选择“P”作为主分区。
- 接下来选择分区号为1。
- 只需按两次 Enter 键即可设置默认的完整尺寸。
- 接下来按“p”打印定义的分区。
- 按“L”列出所有可用类型。
- 输入“t”来选择分区。
- 选择 Linux raid auto 的“fd”,然后按 Enter 键应用。
- 然后再次使用“p”打印我们所做的更改。
- 使用“w”来写入更改。
创建“/dev/sdb”分区后,接下来按照相同的说明在/dev/sdc驱动器上创建新分区。
fdisk /dev/sdc
4. 成功创建两个分区后,使用相同的“mdadm”验证 sdb 和 sdc 驱动器上的更改Strong>' 命令并确认 RAID 类型,如以下屏幕截图所示。
mdadm -E /dev/sd[b-c]
注意:如上图所示,sdb1 和 sdc1 上没有任何已定义的 RAID到目前为止,这就是我们没有检测到超级块的原因。
步骤 3:创建 RAID1 设备
5. 接下来使用以下命令创建名为“/dev/md0”的 RAID1 设备并验证它。
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[b-c]1
cat /proc/mdstat
6. 接下来使用以下命令检查 raid 设备类型和 raid 阵列。
mdadm -E /dev/sd[b-c]1
mdadm --detail /dev/md0
从上面的图片中,我们可以很容易地了解到raid1已经创建并使用/dev/sdb1和/dev/sdc1分区,并且您还可以看到状态为重新同步。
步骤 4:在 RAID 设备上创建文件系统
7.使用ext4为md0创建文件系统,并挂载在/mnt/raid1下。
mkfs.ext4 /dev/md0
8. 接下来,将新创建的文件系统挂载到“/mnt/raid1”下,并创建一些文件并验证挂载点下的内容。
mkdir /mnt/raid1
mount /dev/md0 /mnt/raid1/
touch /mnt/raid1/tecmint.txt
echo "tecmint raid setups" > /mnt/raid1/tecmint.txt
9. 要在系统重新启动时自动挂载 RAID1,您需要在 fstab 文件中创建一个条目。打开“/etc/fstab”文件并在文件底部添加以下行。
/dev/md0 /mnt/raid1 ext4 defaults 0 0
10.运行‘mount -a’检查fstab条目是否有错误。
mount -av
11. 接下来,使用以下命令将 raid 配置手动保存到“mdadm.conf”文件中。
mdadm --detail --scan --verbose >> /etc/mdadm.conf
系统在重新引导时读取上述配置文件并加载 RAID 设备。
步骤 5:磁盘故障后验证数据
12.我们的主要目的是,即使在任何硬盘出现故障或崩溃后,我们的数据也需要可用。让我们看看当阵列中任何磁盘不可用时会发生什么情况。
mdadm --detail /dev/md0
在上图中,我们可以看到 RAID 中有 2 个可用设备,活动设备为 2 个。现在让我们看看当磁盘拔出(移除 sdc 磁盘)或发生故障时会发生什么。
ls -l /dev | grep sd
mdadm --detail /dev/md0
现在,在上图中,您可以看到我们的一个驱动器丢失了。我从虚拟机中拔下了其中一个驱动器。现在让我们检查一下我们的宝贵数据。
cd /mnt/raid1/
cat tecmint.txt
您是否看到我们的数据仍然可用。由此我们就知道了RAID 1(镜像)的优点。在下一篇文章中,我们将了解如何设置具有分布式奇偶校验的 RAID 5 条带化。希望这可以帮助您了解 RAID 1(镜像)的工作原理。