如何使用mdadm在Linux中进行Raid?

嗨,今天我要教你怎么做突袭( 廉价冗余磁盘阵列 ). 我们为什么需要它?想想服务器中存储了哪些客户数据。假设有一天磁盘死了,然后所有关于客户的数据都不见了。这是一个非常糟糕的新消息。  如果磁盘死了,但数据保持不变怎么办。 图片[1]-如何使用mdadm在Linux中进行Raid?-yiteyi-C++库 这将是非常好的。你可以认为磁盘会频繁死机。不,但这不是不可能的,尤其是在企业方面或在家里个人使用。RAID是一种用额外磁盘备份磁盘的技术。假设我们有3个磁盘分别用于不同的项目。我们希望在特定的工作时间以高可用性备份它们。RAID可以使用单独的硬件、固件或软件来完成。用硬件制作raid是最好的、快速的、可靠的方法,但是它可能很昂贵或者对项目来说太多。固件raid通常由主板制造商提供,作为硬件raid的廉价选项。软件raid是最便宜、最不可靠的邮件raid方式。但它可以适合家庭或非专业使用。我不会深入研究raid级别的细节。但是你可以在这里找到更多关于 维基百科 . 在Linux软件中,raid由内核模块和用户空间程序组成。

null

列出磁盘驱动器

3个磁盘用于主动存储数据,但4个磁盘或备用磁盘用于备份3个磁盘。它不会存储3个磁盘的所有数据,因为如果3个磁盘接近满,则不可能。

首先列出磁盘。我们将制作一个带有vdb、vdc、vdd和vde磁盘的阵列。我在我的虚拟机,这样你的磁盘名称可能是不同的,如sda,sdb等。所有的磁盘有1 GB。

$ ls /dev/vd*/dev/vda  /dev/vda1  /dev/vdb  /dev/vdc  /dev/vdd  /dev/vde

安装mdadm

在Ubuntu,Debian,Mint,Kali中安装mdadm apt 命令。

$ sudo apt install mdadm
Install mdadm For Ubuntu, Debian, Mint, Kali
为Ubuntu、Debian、Mint和Kali安装mdadm

加载mdadm内核模块

mdadm 通过低级驱动程序提供服务。它有一个名为 raid456 可以通过以下命令加载。为了加载Linux内核模块,我们需要root权限,sudo命令可以提供这些权限,如下所示。

$ sudo modprobe raid456

我们可以检查raid456内核模块是否正确加载了 lsmod 命令,该命令将列出当前加载的所有内核模块。

相关文章: 什么是Windows Sysinternal?

Load mdadm Kernel Module
加载mdadm内核模块

创建RAID

我们应该给出raid设备的磁盘计数,以及raid中要使用的磁盘。这里的元数据是可选的,它设置raid元数据版本在命令执行后,我们得到一条消息,说我们的新磁盘,我们命名为md0创建。如果要创建raid0,请使用level=stripe和raid1 level=mirror

$ mdadm --create /dev/md0 --metadata 1.2 --level=4 --raid-devices=4 /dev/vdb /dev/vdc /dev/vdd /dev/vdemdadm: array /dev/md0 started.

打印mdadm信息

要查看raid设备状态,我们将打印 /proc/mdstat 文件如下。显示总磁盘数和总可用大小,即总磁盘大小的3/4。如您所见,版本是1.2,我们在创建数组时对其进行了设置

$ cat /proc/mdstatPersonalities : [raid6] [raid5] [raid4]md0 : active raid4 vde[4] vdd[2] vdc[1] vdb[0]3142656 blocks super 1.2 level 4, 512k chunk, algorithm 0 [4/4] [UUUU]unused devices: $ mdadm -D /dev/md0/dev/md0:Version : 1.2Creation Time : Mon Jul 21 13:48:15 2014Raid Level : raid4Array Size : 3142656 (3.00 GiB 3.22 GB)Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Mon Jul 21 13:48:28 2014State : cleanActive Devices : 4Working Devices : 4Failed Devices : 0Spare Devices : 0Chunk Size : 512KName : ubuntu:0  (local to host ubuntu)UUID : 515af24c:86bb12f7:015dfebf:6bd9b35bEvents : 18Number   Major   Minor   RaidDevice State0     253       16        0      active sync   /dev/vdb1     253       32        1      active sync   /dev/vdc2     253       48        2      active sync   /dev/vdd4     253       64        3      active sync   /dev/vde

保存/备份mdadm配置

为了用 --detail --scan 选项如下。

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf$ cat /etc/mdadm/mdadm.conf# mdadm.conf## Please refer to mdadm.conf(5) for information about this file.## by default (built-in), scan all partitions (/proc/partitions) and all# containers for MD superblocks. alternatively, specify devices to scan, using# wildcards if desired.#DEVICE partitions containers# auto-create devices with Debian standard permissionsCREATE owner=root group=disk mode=0660 auto=yes# automatically tag new arrays as belonging to the local systemHOMEHOST # instruct the monitoring daemon where to send mail alertsMAILADDR root# definitions of existing MD arrays# This file was auto-generated on Mon, 21 Jul 2014 13:43:42 +0300# by mkconf $Id$ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=515af24c:86bb12f7:015dfebf:6bd9b35b

列出磁盘状态和阵列

我们可以用 -E 选项,提供磁盘名称。

$ mdadm -E /dev/vdd/dev/vdd:Magic : a92b4efcVersion : 1.2Feature Map : 0x0Array UUID : 515af24c:86bb12f7:015dfebf:6bd9b35bName : ubuntu:0  (local to host ubuntu)Creation Time : Mon Jul 21 13:48:15 2014Raid Level : raid4Raid Devices : 4Avail Dev Size : 2096128 (1023.67 MiB 1073.22 MB)Array Size : 3142656 (3.00 GiB 3.22 GB)Used Dev Size : 2095104 (1023.17 MiB 1072.69 MB)Data Offset : 1024 sectorsSuper Offset : 8 sectorsState : cleanDevice UUID : e5cc5bd9:decd247a:16c39662:abeb38bbUpdate Time : Mon Jul 21 14:07:48 2014Checksum : c07c9d94 - correctEvents : 18Chunk Size : 512KDevice Role : Active device 2Array State : AAAA ('A' == active, '.' == missing)

为新磁盘创建文件系统

我们将使用 mkfs.ext4 命令以创建 /dev/md0 磁盘驱动器。

$ mkfs.ext4 /dev/md0mke2fs 1.42.9 (4-Feb-2014)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=128 blocks, Stripe width=384 blocks196608 inodes, 785664 blocks39283 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=80530636824 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912Allocating group tables: doneWriting inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: done

挂载磁盘

安装磁盘并创建一些文件。另外,显示已装入磁盘的状态。

$ mount /dev/md0 /mnt$ mkdir /mnt/ismail$ ls /mnt/ismail  lost+found$ df -lhFilesystem      Size  Used Avail Use% Mounted on/dev/vda1        18G  1.7G   16G  10% /none            4.0K     0  4.0K   0% /sys/fs/cgroupudev            235M  4.0K  235M   1% /devtmpfs            49M  268K   49M   1% /runnone            5.0M     0  5.0M   0% /run/locknone            245M     0  245M   0% /run/shmnone            100M     0  100M   0% /run/user/dev/md0        2.9G  4.6M  2.8G   1% /mnt

从阵列中删除磁盘

假设磁盘vdd已损坏。我们需要把它移走。

$ mdadm --remove /dev/md0 /dev/vde

添加磁盘到磁盘阵列

我们将使用 --add 选件盘 vdf 到mdm驱动器 md0 .

$ mdadm --add /dev/md0 /dev/vdf

重新启动或初始化新磁盘

重新启动后使用raid。每次使用时都必须重新组装Raid设备。

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1More easy way to reassembly
mdadm --assemble --scan

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享