飞翔灬吾爱的Blog
Linux 7 | RAID阵列部署——RAID
2018-7-23 fishyoung

首先,需要在虚拟机中添加4块硬盘设备来制作一个RAID 10磁盘阵列,如图所示。

这几块硬盘设备是模拟出来的,不需要特意去买几块真实的物理硬盘插到电脑上。需要注意的是,一定要记得在关闭系统之后,再在虚拟机中添加硬盘设备,否则可能会因为计算机架构的不同而导致虚拟机系统无法识别添加的硬盘设备。

mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为“mdadm  [模式]  <RAID设备名称>  [选项]  [成员设备名称]”。

当前,生产环境中用到的服务器一般都配备RAID阵列卡,尽管服务器的价格越来越便宜,但是我们没有必要为了做一个实验而去单独购买一台服务器,而是可以学会用mdadm命令在Linux系统中创建和管理软件RAID磁盘阵列,而且它涉及的理论知识的操作过程与生产环境中的完全一致。mdadm命令的常用参数以及作用如图所示。

接下来,使用mdadm命令创建RAID 10,[hide]名称为“/dev/md0”。

我们可以通过命名规则猜测到第二个SCSI存储设备的名称会是/dev/sdb,然后依此类推。使用硬盘设备来部署RAID磁盘阵列很像是将几位同学组成一个班级,但总不能将班级命名为/dev/sdbcde吧。尽管这样可以一眼看出它是由哪些元素组成的,但是并不利于我们的记忆和阅读。更何况如果我们是使用10、50、100个硬盘来部署RAID磁盘阵列呢?

此时,就需要使用mdadm中的参数了。其中,-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-a yes参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID 10方案;最后再加上4块硬盘设备的名称就搞定了。

[root@linuxprobe ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
       mdadm: layout defaults to n2
       mdadm: layout defaults to n2
       mdadm: chunk size defaults to 512K
       mdadm: size set to 20954624K
       mdadm: Defaulting to version 1.2 metadata
       mdadm: array /dev/md0 started.

其次,把制作好的RAID磁盘阵列格式化为ext4格式。

[root@linuxprobe ~]# mkfs.ext4 /dev/md0
       mke2fs 1.42.9 (28-Dec-2013)
       Filesystem label=
       OS type: Linux
       Block size=4096 (log=2)
       Fragment size=4096 (log=2)
       Stride=128 blocks, Stripe width=256 blocks
       2621440 inodes, 10477312 blocks
       523865 blocks (5.00%) reserved for the super user
       First data block=0
       Maximum filesystem blocks=2157969408
       320 block groups
       32768 blocks per group, 32768 fragments per group
       8192 inodes per group
       Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624
       Allocating group tables: done
       Writing inode tables: done
       Creating journal (32768 blocks): done
       Writing superblocks and filesystem accounting information: done

再次,创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB。

[root@linuxprobe ~]# mkdir /RAID
[root@linuxprobe ~]# mount /dev/md0 /RAID
[root@linuxprobe ~]# df -h
       Filesystem Size Used Avail Use% Mounted on
       /dev/mapper/rhel-root 18G 3.0G 15G 17% /
       devtmpfs 905M 0 905M 0% /dev
       tmpfs 914M 84K 914M 1% /dev/shm
       tmpfs 914M 8.9M 905M 1% /run
       tmpfs 914M 0 914M 0% /sys/fs/cgroup
       /dev/sr0 3.5G 3.5G 0 100% /media/cdrom
       /dev/sda1 497M 119M 379M 24% /boot/dev/md0 40G 49M 38G 1% /RAID

最后,查看/dev/md0磁盘阵列的详细信息,并把挂载信息写入到配置文件中,使其永久生效。

[root@linuxprobe ~]# mdadm -D /dev/md0
       /dev/md0:
       Version : 1.2
       Creation Time : Tue May 5 07:43:26 2017
       Raid Level : raid10
       Array Size : 41909248 (39.97 GiB 42.92 GB)
       Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 4
       Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Tue May 5 07:46:59 2017
       State : clean
       Active Devices : 4
       Working Devices : 4
       Failed Devices : 0
       Spare Devices : 0
       Layout : near=2
       Chunk Size : 512K
       Name : localhost.localdomain:0 (local to host localhost.localdomain)
       UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c
       Events : 17
       Number Major Minor RaidDevice State
       0 8 16 0 active sync /dev/sdb
       1 8 32 1 active sync /dev/sdc
       2 8 48 2 active sync /dev/sdd
       3 8 64 3 active sync /dev/sde
[root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

[/hide]之所以在生产环境中部署RAID 10磁盘阵列,是为了提高硬盘存储设备的读写速度及数据的安全性,但由于我们的硬盘设备是在虚拟机中模拟出来的,因此对读写速度的改善可能并不直观,因此下篇文章将讲解一下RAID磁盘阵列损坏后的处理方法,这样大家在步入运维岗位后遇到类似问题时,也可以轻松解决。

篇一:Linux 7 | RAID阵列技术——简介

篇三Linux 7 | RAID阵列磁盘——修复 


原文摘自:https://www.linuxprobe.com/chapter-07.html

评论:
yueq
2019-12-03 16:41 回复
····我就看下