个性化阅读
专注于IT技术分析

如何在Ubuntu 16.04中实现软件RAID 1阵列(镜像)

本文概述

你可能知道, 有很多类型的RAID。 RAID 1阵列类型是通过跨所有可用磁盘镜像数据来实现的。 RAID 1阵列中的每个磁盘都将获取数据的完整副本, 以在设备发生故障时提供冗余, 因此在生产环境中, 必须具有此功能。在本文中, 我们将向你展示如何在Ubuntu服务器中配置具有3个磁盘的RAID 1。

要求

  • 至少3个磁盘(第一个是装有操作系统的磁盘, 另外2个将包含第一个磁盘的副本)。请务必注意, 三个磁盘必须具有相同的IOPS数量和相同的容量。

由于必须至少有两个数据副本, 因此只有一半的磁盘空间可用。话虽如此, 让我们开始实施软件RAID 1!

1.列出可用磁盘并记住它们

你将需要知道系统中可用磁盘的名称, 这可以在Ubuntu中使用终端中的lsblk命令来完成:

lsblk

这将在终端中列出系统中所有可用的磁盘。在此示例中, 我们有3个磁盘, 即xvda(主磁盘), xvdf和xvdg(将同步主磁盘数据的磁盘):

列出Ubuntu上的磁盘

请记住磁盘的名称, 因为你将需要它们来运行命令以实现RAID。

2.验证两个额外的磁盘是否具有文件系统

接下来, 你需要检查要同步主磁盘副本的2个磁盘是否具有文件系统。要了解磁盘在Ubuntu中是否具有文件系统, 请使用sudo文件-s [/ dev / disk_name]命令, 其中你必须使用要检查的磁盘名称更改disk_name参数(你需要对于两个额外的磁盘, 在我们的示例中为xvdf和xvdg相同):

# sudo file -s [/dev/disk_name]

# e.g with our first copy disk
sudo file -s /dev/xvdf

具有文件系统的磁盘将输出如下内容:

/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=1701d228-e1bd-4094-a14c-8c64d6819362 (needs journal recovery) (extents) (large files) (huge files)

但是没有文件系统的磁盘将输出如下内容:

/dev/xvdf: data

如果第二个输出同时验证了两个磁盘, 则需要使用以下命令为磁盘提供文件系统(假设你将在linux ext4中使用通用格式):

# Warning: 
# This step assumes that you're mounting an empty volume. If you're mounting a volume that 
# already has data on it, don't use this command.
# Otherwise, you'll format the volume and delete the existing data on it

# sudo mkfs -t ext4 [/dev/disk_name]

# Format second disk
sudo mkfs -t ext4 /dev/xvdf


# Then format second disk
sudo mkfs -t ext4 /dev/xvdg

验证之后, 你将能够继续创建RAID 1。

3.创建RAID 1

为了创建基于软件的RAID, 我们将使用Ubuntu中已经提供的mdadm工具。 mdadm是一种GNU / Linux实用程序, 用于管理和监视软件RAID设备, 主要用于现代GNU / Linux发行版中, 以代替较早的软件RAID实用程序(如raidtools2或raidtools)。创建RAID的命令具有以下结构

  • –create:提供创建突袭的指令。
  • –verbose:显示所有生成的输出。
  • / dev / md0:要创建的团队的名称
  • –level:指定要创建的RAID的级别, 在本文中, 我们将使用模式1, 该模式将用作主磁盘的镜像。
  • –raid-devices:指定将具有raid副本的磁盘数, 在本例中, 我们将使用2, 但是如果需要, 可以使用更多磁盘。最后, 提供你将使用的磁盘阵列, 例如/ dev / xvdf和/ dev / xvdg:
# Where /dev/md0 will be the name of the RAID 1
# sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 [/dev/second_disk_name] [/dev/third_disk_name]
# e.g :

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/xvdf /dev/xvdg

运行命令后, 该过程将开始, 并提示你是否真的要继续创建RAID:

创建RAID 1输出

通常, 该过程是在后台执行的, 因此你将能够在运行以下命令的磁盘中查看数据同步的进度:

cat /proc/mdstat

这将输出当前创建RAID的过程, 因此你需要多次执行它:

RAID 1创建进度

该过程完成后, 你将通过运行相同的命令来确认RAID已成功创建, 并且你将看到md0 RAID处于活动状态:

RAID 1已完成

仅当上一步完成时, 你才可以继续下一步。

4.创建并挂载文件系统

现在RAID已经存在, 你将需要使用以下命令在磁盘阵列上创建文件系统:

sudo mkfs.ext4 -F /dev/md0

将格式提供给磁盘后, 使用以下命令创建目录以挂载阵列:

sudo mkdir -p /mnt/md0

并与下一个安装:

sudo mount /dev/md0 /mnt/md0

挂载后, 你将可以使用下一个命令检查新空间是否可用:

df -h -x devtmpfs -x tmpfs

这将生成如下输出:

挂载RAID可用空间

现在, 新文件系统已安装并可以访问。

5.保存阵列布局

作为最后一个重要步骤, 必须确保在系统启动时自动重新组装阵列, 因此你将需要调整/etc/mdadm/mdadm.conf文件。你可以通过键入以下命令来自动扫描活动阵列并追加文件:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

然后, 你可以更新初始RAM文件系统(initramfs)。这样, 阵列将在引导过程中可用:

sudo update-initramfs -u

最后, 将新的文件系统安装选项添加到/ etc / fstab文件中, 以便在启动时使用下一个命令自动安装:

echo '/dev/md0 /mnt/md0 ext4 defaults, nofail, discard 0 0' | sudo tee -a /etc/fstab

RAID 1阵列现在应该自动组装并安装在每个引导上。

6.检查你的RAID 1信息

现在你的RAID 1实现已完成, 你可以使用以下命令检查其状态:

sudo mdadm --detail /dev/md0

这将生成包含有关已实施突袭的详细信息的输出, 如下所示:

突袭细节

快乐的服务器管理!

赞(0)
未经允许不得转载:srcmini » 如何在Ubuntu 16.04中实现软件RAID 1阵列(镜像)

评论 抢沙发

评论前必须登录!