RAID磁盘阵列及配置(服务器中配置实战)
文章目录
一、RAID磁盘阵列介绍
- RAID是Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
- 把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘), 从而提供比单个硬盘更高的存储性能
和提供数据备份技术 - 组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
- 常用的RAID级别
RAID0,RAID1, RAID5, RAID6,RAID1+0等
1.1RAID 0
- RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余
- RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据
- RAID 0不能应用于数据安全性要求高的场合
1.2RAID 1
- 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
- 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能
- RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
1.3RAID 5
- N (N>=3) 块盘组成阵列,- -份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储
- N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高
- (N-1) /N磁盘利用率
- 可靠性高,允许坏1块盘,不影响所有数据
1.4RAID 6
- N (N>=4) 块盘组成阵列,(N-2) /N磁盘利用率
- 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
- 两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用
- 相对于RAID 5有更大的"写损失”,因此写性能较差
1.5RAID 1+0
- N (偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0
- N/2磁盘利用率
- N/2块盘同时写入,N块盘同时读取
- 性能高,可靠性高
二、阵列卡介绍
2.1阵列卡介绍
- 阵列卡是用来实现RAID功能的板卡
- 通常是由i/0处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成的
- 不同的RAID卡支持的RAID功能不同
例如支持RAID0、RAID1、 RAID5、RAID10等 - RAID卡的接口类型
IDE接口、SCSI接口、SATA接口和SAS接口
IDE接口
IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,属于并行接口。
它是把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器,这样使得硬盘接口的电缆数目与长度有所减少,从而数据传输的可靠性得到增强
IDE接口价格低廉,兼容性强
在实际的应用中,这种类型的接口随着接口技术的不断发展已经很少用了,逐渐被后续发展分支出更多类型的硬盘接口所取代
SCSI接口
SCSI 的英文全称为“Small Computer System Interface”(小型计算机系统接口),是和IDE完全不同的接口,IDE接口是普通PC的标准接口,而SCSI是一种通用的接口标准,具备与不同类型外部设备进行通信的能力,是一种广泛应用于小型机上的高速数据传输技术
SCSI是个多任务接口,设有母线仲裁功能,挂在一个SCSI母线上的多个外部设备可以同时工作,并平等占有总线
SCSI接口可以同步或异步传输数据,同步传输数据可以达到10M/s,异步传输速率可以达到1.5M/s
SCSI接口的CPU占用率低,支持热插热拔,但价格较高,因此SCSI硬盘主要用于中,高端工作站中
SATA接口
SATA是“Serial ATA”的缩写,主要用在主板和大量存储设备之间传输数据。拥有这种接口的硬盘又叫串口硬盘,以采用串行方式传输数据
SATA总线使用了嵌入式时钟信号,使得其具备更强的纠错能力。如果发现数据传输中的错误会自动进行矫正,很大程度上提高了数据传输的可靠性,也是一种支持热拔热插的接口
SAS接口
SAS的英文全称为“Serial Attached SCSI”是新一代的SCSI技术,称为序列式SCSI
SAS可以看做是SATA与SCSI的结合体,是同时发挥两者的优势产生的,主要用在周边零件的数据传输上
和SATA硬盘相同,都是采用串行技术以获得更高的传输速度
SAS的接口技术可以向下兼容SATA设备
2.2阵列卡的缓存
- 缓存(Cache) 是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线
交换数据 - 缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素
- 不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等
三、配置RAID
3.1生产环境配置硬阵列
打开服务器,启动界面按Ctrl+R进入BIOS界面
进入到BIOS界面后,我们可以看到这里已经有创建过RAID了,按F2先格式化一下
格式化完后,界面变成这样
按F2选择Create New VD选项
首先创建RAID1,加入两块硬盘,直接OK就行(在右边,手抖没拍到)
同样的创建RAID5,加入硬盘,看自己需求,我这里只留了1块盘留作热备盘
Ctrl-N切换到PD Mgmt选择最后一块盘
选择Make Global HS全局热备
这里可以看到已经配置完毕了
3.2配置软阵列
3.2.1mdadm命令 – 管理linux软RAID
mdadm命令是multiple devices admin的简称,它是linux下的一款标准的软件 RAID管理工具,可以管理linux软RAID,比如创建、调整、监控RAID。
mdadm命令能够诊断、监控和收集详细的阵列信息,是一个单独集成化的程序而不是一些分散程序的集合,因此对不同RAID管理命令有共通的语法。
mdadm命令能够执行几乎所有的功能而不需要配置文件(也没有默认的配置文件)。
常用参数:
-D 显示RAID设备的详细信息
-A 加入一个以前定义的RAID
-B 创建一个没有超级块的RAID设备
-F 选项监控模式
-G 更改RAID设备的大小或形态
-I 添加设备到RAID中,或从RAID中删除设备
-z 组建RAID1、RAID4、RAID5、RAID6后从每个RAID成员获取的空间容量
-s 扫描配置文件或/proc/mdstat以搜寻丢失的信息
-C 创建RAID设备,把RAID信息写入每个RAID成员超级块中
-v 显示RAID创建过程中的详细信息
-B 创建RAID的另一种方法,不把RAID信息写入每个RAID成员的超级块中
-l 指定RAID的级别
-n 指定RAID中活动设备的数目
-f 把RAID成员列为有问题,以便移除该成员
-r 把RAID成员移出RAID设备
-a 向RAID设备中添加一个成员
–re-add 把最近移除的RAID成员重新添加到RAID设备中
-E 查看RAID成员详细信息
-c 指定chunk大小,创建一个RAID设备时默认为512kb
-R 开始部分组装RAID
-S 停用RAID设备,释放所有资源
-x 指定初始RAID设备的备用成员的数量
–zero-superblock 如果RAID设备包含一个有效的超级块,该块使用零覆盖
在做RAID磁盘阵列之前要将将磁盘格式更改为fd
例如
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux raid autodetect”的类型更改为“Linux raid autodetect”
3.2.2创建RAID 0
[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1 #将sdb1,sdb2创建RAID 0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# cat /proc/mdstat #第一种查看RAID的办法
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]
41906176 blocks super 1.2 512k chunks
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md0 #第二种查看RAID的办法
/dev/md0:
Version : 1.2
Creation Time : Tue Jun 30 15:20:58 2020
Raid Level : raid0
Array Size : 41906176 (39.96 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jun 30 15:20:58 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : cff7e347:0dc24286:75dc86dc:78affd7c
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
[root@localhost ~]# mkfs.xfs /dev/md0 #格式化md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/md0 /opt #挂载md0
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.5G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 146G 33M 146G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/md0 xfs 40G 33M 40G 1% /opt
3.2.3创建RAID 1
[root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 -x1 /dev/sdd1 #将sdb1,sdc1创建RAID 1,sdd1作热备盘
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 20953088K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# mkfs.xfs /dev/md1 #格式化md1
meta-data=/dev/md1 isize=512 agcount=4, agsize=1309568 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5238272, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/md1 /opt #挂载md1到opt目录下
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.2G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 146G 33M 146G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/md1 xfs 20G 33M 20G 1% /opt
3.2.4创建RAID 5
[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[e-g]1 -x1 /dev/sdh1 #将sde1,sdf1,sdg1创建RAID 5,sdh1作热备盘
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20953088K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount /dev/md5 /abc
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.2G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 146G 33M 146G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/md5 xfs 40G 33M 40G 1% /abc
3.2.5创建RAID 6
RAID6和RAID5原理一样,多加一块硬盘
3.2.6创建RAID 1+0
RAID1+0是先做两个RAID1,再将两个RAID1作RAID0
[root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 #创建第一块RAID1
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 20953088K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1 #创建第二块RAID1
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 20953088K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost ~]# mdadm -C -v /dev/md10 -l0 -n2 /dev/md[1-2] #将md1,md2创建为RAID1+0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
[root@localhost ~]# mdadm -D /dev/md10 #查看RAID1+0的详细信息
/dev/md10:
Version : 1.2
Creation Time : Tue Jun 30 17:26:13 2020
Raid Level : raid0
Array Size : 41871360 (39.93 GiB 42.88 GB) #可以看到总大小为80G,添加成功
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jun 30 17:26:13 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:10 (local to host localhost.localdomain)
UUID : abae4eb0:2b503b50:a8db786a:f180d6c8
Events : 0
Number Major Minor RaidDevice State
0 9 1 0 active sync /dev/md1
1 9 2 1 active sync /dev/md2
[root@localhost ~]# mkfs.xfs /dev/md10 #格式化md10
meta-data=/dev/md10 isize=512 agcount=16, agsize=654208 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10467328, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5112, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/md10 /opt #进行挂载
[root@localhost ~]# df -Th #挂载后的大小为40G
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.2G 49G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 146G 33M 146G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/md10 xfs 40G 33M 40G 1% /opt