RAID
独立磁盘冗余阵列,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性
RAID方案
RAID0
- RAID-0 :striping(条带模式)特点:在读写的时候可以实现多块硬盘同时读写,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快。因为没有冗余,一个硬盘坏掉全部数据丢失。至少两块硬盘才能组成Raid0阵列
- 不具备数据备份和错误修复的能力
- 生产应用场景
1、负载均衡集群下面的多个相同RS节点服务器
2、分布式文件存储下面的主节点或CHUNK server
3、MySQL主从复制的多个slave服务器
4、对性能要求很高,对冗余要求很低的相关业务
特点
最少需要两块硬盘,提升读写效率,但是没有数据备份,硬盘损坏导致数据损失
工作机制:两块硬盘,各自存储一部分不同数据,同时读写
此图来源忘记,转载
RAID1
- RAID-1 :mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小硬盘的容量(最好将分区大小分为一样),两块硬盘互为备份,在存储时同时写入两块硬盘,实现了数据备份;
- 磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。
- 一般只用于系统盘
特点
- 最少需要两块硬盘,有数据备份可以容错,没有提升读写效率
工作机制:两块硬盘,一块储存数据,另一块硬盘作为数据备份,当其一受损,另一接替工作
此图来源忘记,转载
RAID5
-
特点:采用奇偶校验,可靠性强,磁盘校验和被散列到不同的磁盘里面,增加了读写速率。只有当两块磁盘同时丢失时,数据才无法恢复,至少三块硬盘并且硬盘大小应该相等才能组成Raid5阵列。
-
容量:所有硬盘容量之和减去其中一块硬盘的容量,被减去的容量被分配到三块硬盘的不同区域用来存放数据校验信息,空间利用率:n-1/n
特点
-
最少需要三块硬盘,奇偶校验,提升读写效率,数据安全可容错,可损坏一块硬盘
-
工作机制:每次存储数据时,数据被平均分配到(磁盘数量n)n-1个磁盘中,数据分成数份轮流在三块硬盘上储存,每存储两份不同数据,就存储一份校验数据(完整数据),盘上循环均衡存储。当有一个磁盘坏掉时,还可使用其他磁盘,将这个磁盘中的数据恢复。但若有两个磁盘损坏时,数据将全部损坏
此图来源忘记,转载
RAID10
-
Raid10(Raid1+Raid0)是现在比较常用的一种磁盘阵列级别,它的容错好,读写数据效率较高,但经费相对也较高。
特点:备份和并发式存取数据,可靠性强。D1、D2组成一个阵列Raid1,其中D1是数据盘,D2是备份盘;D3、D4也组成一个Raid1,其中D3是数据盘,D4是备份盘;在这个基础上将D1、D2作为一个整体,将D3、D4也作为一个整体,这两个整体之间再组成一个Raid0阵列。这样不仅仅读取数据会非常快,并发写入的速度也会随着磁盘的增多而变快。至少四块硬盘并且每块硬盘大小应该相等才能组成Raid10阵列。
容量:所有硬盘容量之和的一半(一半写数据,一半用来备份数据)。
特点
-
最少需要四块硬盘,结合RAID1和0的的优点,提升读写效率和安全,
工作机制:相当于把两组RAID1组合成一组RAID0,可以坏掉两块硬盘,但是不同组的数据不能同时损坏
命令
分区命令
添加硬盘
重启主机 reboot
fdisk -l 查看当前系统的磁盘分区情况
fdisk /dev/sdb 分区
交互模式下的分区命令:
m获取磁盘的帮助信息
n添加新的分区
p主分区
e扩展分区
分区为1-4 第四分区为逻辑分区剩余空间全部分配逻辑分区,然后再新建分区,新分区自动建立在逻辑分区内部
+5G第一分区5g的容量
p打印输出分区的列表
d删除分区
q退出不保存
w保存退出
磁盘阵列命令
创建磁盘阵列mdadm
制作RAID1+0示例:
一块硬盘分成11区,4区不可用
分区类型改成fd
保存退出
查看是否存在制作磁盘阵列的工具
rpm -qa |grep mdadm
使用sdb1和sdb2创建一个raid1,名称为md11
[root@localhost ~]# mdadm -Cv /dev/md11 -a yes -n2 -l1 /dev/sdb1 /dev/sdb2
C创建v详情 a自动创建所需设备 n使用磁盘的个数 l磁盘阵列等级
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y (若创建磁盘阵列过程中询问“Continue creating array是否继续创建阵列?”回复y是)
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md11 started.
使用sdb3和sdb5创建一个raid1,名称为md12
[root@localhost ~]# mdadm -Cv /dev/md12 -a yes -n2 -l1 /dev/sdb3 /dev/sdb5 md12自己命名建立以后的raid名称
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y
mdadm: Fail to create md11 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: /dev/md11 is already in use.
使用md11和md12创建一个raid0,名称为md0
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n2 -l0 /dev/md11 /dev/md12
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看是否成功
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] [raid0]
md0 : active raid0 md12[1] md11[0]
2088960 blocks super 1.2 512k chunks
md12 : active raid1 sdb5[1] sdb3[0]
1046528 blocks super 1.2 [2/2] [UU]
md11 : active raid1 sdb2[1] sdb1[0]
1046528 blocks super 1.2 [2/2] [UU]
删除阵列
madam -S /dev/md2 S停止 要无挂载情况下的删除
另假设md0和md1做进了md2中,如果直接停止md0或者md1则会提示:
mdadm: Cannot get exclusive access to /dev/md1:Perhaps a running process, mounted filesystem or active volume group?
mdadm:无法以独占方式访问/dev/md1:可能是正在运行的进程、已装入的文件系统或活动卷组?
get exclusive access to /dev/md1:Perhaps a running process, mounted filesystem or active volume group?
mdadm:无法以独占方式访问/dev/md1:可能是正在运行的进程、已装入的文件系统或活动卷组?