还是惯例介绍一下RAID。
传统硬盘由于工作原理的限制,在性能上的提升非常缓慢。而固态硬盘价格昂贵,短时间内难以被普通用户接受。因此采用两块或多块硬盘组建RAID磁盘阵列也成为了目前比较有性价比的硬盘性能提升解决方案。两块硬盘组建RAID0磁盘阵列后在性能上相比之前会有33.3%~203%的性能提升。
独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。
磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
优点
提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。
缺点
RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。
RAID级别:
· RAID0 = 条带化
· RAID1 = 镜像
· RAID5 = 单磁盘分布式奇偶校验
· RAID6 = 双磁盘分布式奇偶校验
· RAID10 = 镜像 + 条带
RAID概念:
1.校验方式用在 RAID 重建中从校验所保存的信息中重新生成丢失的内容。 RAID 5,RAID 6 基于校验。
2.条带化是将切片数据随机存储到多个磁盘。它不会在单个磁盘中保存完整的数据。如果我们使用2个磁盘,则每个磁盘存储我们的一半数据。
3.镜像被用于 RAID 1 和 RAID 10。镜像会自动备份数据。在 RAID 1 中,它会保存相同的内容到其他盘上。
4.热备份只是我们的服务器上的一个备用驱动器,它可以自动更换发生故障的驱动器。在我们的阵列中,如果任何一个驱动器损坏,热备份驱动器会自动用于重建 RAID。
5块是 RAID 控制器每次读写数据时的最小单位,最小 4KB。通过定义块大小,我们可以增加 I/O 性能。
准备工作
[root@1 ~]# cat /etc/redhat-release #查看系统版本
CentOS Linux release 7.2.1511 (Core)
[root@1 ~]# uname -r #查看系统内核版本
3.10.0-327.el7.x86_64
[root@1 ~]# uname -m #查看系统是否64位
x86_64
先做raid0的磁盘阵列
raid 0:条带(strping)
需要两块或以上磁盘(最好大小相同)
原理:将数据分段后,分别传输到两块磁盘中。
提高的写入和读取的速度(即搬运工,原来一个人搬,现在多了一个人,所以速度成倍增加)但是由此,每一个磁盘的数据都是很重要的,不能损坏。
特点:成本低、提高整个磁盘性能和吞吐量,即速度快
缺点:没有冗余或错误修复能力
磁盘利用率:100%
任何一个磁盘的损坏将损坏全部数据(分别存储,均分)
首先我先添加两块5G的硬盘
[root@02 ~]# ls /dev/sd{a,b,c} #看是否安装上硬盘
[root@02 ~]# lsblk -l #列出所有块设备
[root@02 ~]# fdisk /dev/sdb #我们把b盘给进行分区
[root@02 ~]# fdisk /dev/sdc #然后我们把c盘进行分区
[root@02 ~]# ls /dev/sd #双击两次Tab键就可以显示
mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。
mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能,主要有7中使用模式。
[root@02 ~]# yum info mdadm #我们看一下可以安装什么版本的mdadm
[root@02 ~]# yum install mdadm #安装mdadm连续点击两个Y
这种方法是把 RAID 信息写入 RAID 每个成员的 superblocks (超级块)中的软 RAID
[root@02 ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
# -C 是--create 的缩写,表示创建的意思;-v 是--verbose 的缩写,显示创建过程中详细的事件;-l是级别0;-n代表了有2个设备;
//DADAD:块大小默认为512K
//DADADM:默认版本1.2元数据
//MADADM:数组/DEV/M0启动。
[root@02 ~]# ll /dev/md0 #看一下有这么目录
[root@02 ~]# mdadm -Ds #-s 或 --scan 扫描 RAID 设备;-D 或 --detail 查看 RAID 的详细信息
[root@02 ~]# mdadm -D /dev/md0 #看一下md0的详细信息
[root@02 ~]# mdadm -Ds > /etc/mdadm.conf #把查询出来的 RAID 信息写到 mdadm.conf 中
[root@02 ~]# lsblk -l
[root@02 ~]# fdisk /dev/md0
[root@02 ~]# mkfs.xfs /dev/md0p1 #对磁盘进行xfs格式
[root@02 ~]# mkdir /mnt/md0 #创建挂载点
[root@02 ~]# mount /dev/md0p1 /mnt/md0/ #挂载目录
[root@02 ~]# df -Th #查看一下
[root@02 ~]# blkid | grep md0 #blkid命令对查询设备上所采用文件系统类型进行查询。
[root@02 ~]# vi /etc/fstab #设置开机自动挂载,在fstab这个目录下可以按住Ctrl+Y键自动补全defaults和后面的,只能在这个目录下才能用
[root@02 ~]# mount -a #重新加载内核
RAID0的搭建完成!