Centos 7 磁盘阵列配置介绍 每当我们提到磁盘阵列,相信广大管理员并不陌生,比如我们一般安装服务器系统的时候,先前条件是配置服务器的RAID信息,配置RAID信息可以提高服务器性能及数据的安全及稳定性,当然RAID分多少等级,最为常见的是RAID0、RAID1、RAID5、RAID1+0、RAID10等,每个RAID等级都会带来不同的效果,比如RAID0会将多个磁盘组合成一个大的磁盘空间,这样会大大增加磁盘空间的利用率,但是缺点就是只要坏一块磁盘就会导致所有数据丢失,再说说RAID1、RAID5等RAID等级对磁盘的数据有要求,同时磁盘空间利用率没有RAID0那么高,比如RAID1当配置后会将磁盘一半做为磁盘镜像,保证数据的可用性,RAID1最少两块磁盘,比如500G的两块磁盘配置RAID1,可用空间约等于500G,会将另外500G作为磁盘镜像,比如RAID5最少需要三块磁盘,会将其中一块磁盘作为镜像,所以可以根据自己的需求来进行配置。下面我们大概介绍一下RAID等级介绍: RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略。 RAID0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。再加上不需要进行数据校验,RAID0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID0 ,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。 因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。 RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。 RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。工作原理如图 3 所示。   RAID1 与 RAID0 刚好相反,是为了增强数据安全性使两块 磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力,但实现成本高。 RAID1 应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。 RAID5 应该是目前最常见的 RAID 等级,它的原理与 RAID4 相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。因此, RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。另外, RAID5 还具备很好的扩展性。当阵列磁盘 数量增加时,并行操作量的能力也随之增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。 RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。 RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。 ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/c4ca0b7adc85d1d59785eff68d0bcf2e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 言归正传,我们今天主要介绍在Linux系统下如何配置磁盘阵列。具体见下: 我们今天在Centos7下做介绍,我们首先给系统增加4块磁盘 ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/21c7731689c98133964eb6b373f3a2cf.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 然后我们通过fdisk -l查看磁盘信息 [root@oa-nginx ~]# **fdisk -l** Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x0000f635 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 125829119 61864960 8e Linux LVM Disk /dev/mapper/cl-root: 38.3 GB, 38323355648 bytes, 74850304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/cl-swap: 6308 MB, 6308233216 bytes, 12320768 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/cl-home: 18.7 GB, 18710790144 bytes, 36544512 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdc: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdd: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sde: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 磁盘准备好后,我们准备配置磁盘阵列,因为linux下配置磁盘阵列需要使用mdadm命令,所以我们需要安装 我们首先安装mdadm工具 `yum install -y mdadm` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/4770033eb1db67c33ff5b370cb3b9013.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 接着我们介绍一下命令---mdadm参数 **-a 检测设备名称 -n 指定设备数量 -l 指定RAID等级 -C 创建 -v 显示过程 -f 模拟设备损坏 -r 移除设备 -a 增加设备 -Q 查看摘要信息 -D 查看详细信息 -S 停止** 我们使用mdadm命令创建RAID10名称为:dev/md0: **C代表创建操作,-v显示创建过程,-a yes检查RAID没名称,-n是用到硬盘个数,-i定义RAID的级别而后面写上要增加整列的硬盘名称** `mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/d5283de62cce791d717a922815fb49e1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 格式化RAID磁盘整理为ext4格式 `mkfs.ext4 /dev/md0` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/126d4dc25204b7e71b5526f85ab97b9a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 创建挂载目录 `mkdir /RAID` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/8dfe57d8bd677e3a9b55651f4ce01479.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) `mount /dev/md0 /RAID` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/808b5e6bc24747ba68c2ba5be0337878.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) `df -h` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/496ca70429746c799f7411fcdd1176cf.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 设置为系统重启也自动生效 `echo "/dev/md0 /RAID ext4 default 0 0" >> /etc/fstab` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/bed3116bc33bdda7411b479cd308996a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 查看/dev/md0设备信息 `mdadm -D /dev/md0` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/4036c253a3effc6e904d162badca16ea.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 接下来我们模拟一块硬盘损坏 `mdadm /dev/md0 -f /dev/sdb` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/c98d89badb4108d1ee9a9548cdcf6098.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ` mdadm -D /dev/md0` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/cea19c6049ccd2a747ac6f85fa471574.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 损坏后依然可以正常使用 因为RAID10允许一组RAID1硬盘中存在一个故障而不影响使用,所以我们任然可以使用正常点的创建或者删除文件,现在就把新的硬盘增加进去吧,当然也可以让硬盘sdb恢复使用,重启后执行以下命令 `mdadm /dev/md0 -a /dev/sdb` 我们重启系统后发现无法启动 ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/1b7094a0ee233eb1eba0682a0d641fbc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 自动挂载的那个fstab文件有问题,你在这个界面直接输入密码,然后把你增加的删除,重启就OK 注释后,保存重启 ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/debfc7c46bf6881504123cb695976df2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 重启后恢复正常 ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/58a29f2de092c91a180f3307ee4ed770.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 我们再次执行上面的操作 `mdadm /dev/md0 -a /dev/sdb` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/517b27e03ab0a4691dbee183b1ea2082.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 我们再次查看 `mdadm -D /dev/md0` ![磁盘阵列 RAID](https://s4.51cto.com/images/blog/201803/14/5b24929d861197e69b516d3e8a8029d9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)