LinuxRAID实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxRAID实现相关的知识,希望对你有一定的参考价值。
RAID的作用
提高IO能力
磁盘并行读写
提高耐用性
磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在Bios里配置
软件RAID:通过OS实现
RAID-0
RAID 0的优缺点
读、写性能提升
可用空间:N*min(S1,S2,…)
无容错能力,如果坏掉一块,那么raid0就不能用了
最少磁盘数:2, 2+
RAID-1
RAID1的优缺点
读性能提升、写性能略有下降
可用空间:1*min(S1,S2,…)
有冗余能力 ,只要不是两块硬盘同时损坏,基本上不会丢失数据
最少磁盘数:2, 2N
RAID-5
RAID5的优缺点
读、写性能提升
可用空间:(N-1)*min(S1,S2,…)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
如果一块硬盘损坏,也可以通过其他硬盘的校验位来重新建立数据。
RAID-6:
RAID6的优缺点
和raid5类似,校验位分开写到了不同的磁盘
读、写性能提升
可用空间:(N-2)*min(S1,S2,…)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
RAID-10:
RAID10的优缺点
利用率只能达到百分之50
读、写性能提升
可用空间:N*min(S1,S2,…)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
RAID-01
RAID 10是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作
RAID 01则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。
当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,
同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。
软RAID
mdadm:为软RAID提供管理界面
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式:
创建:-C
装配:-A
监控:-F
管理:-f, -r, -a
-C: 创建模式
-n #: 使用n个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小,单位k
-x #: 指明空闲盘的个数
-D:显示raid的详细信息
mdadm-D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:cat /proc/mdstat
创建一个RAID-0
1.用分区来创建raid ,首先创建两个raid的分区,大小一样
[[email protected] ~]#fdisk -l /dev/sdb
Disk /dev/sdb: 161.1 GB, 161061273600 bytes, 314572800 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: 0x90c3db64
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 fd Linux raid autodetect
/dev/sdb2 10487808 20973567 5242880 fd Linux raid autodetect
2.再把两个分区创建为raid-0,-C表示进入创建模式 -a自动创建设备文件 -l指定raid类型 -n指定块设备
[[email protected] ~]#mdadm -C -a yes /dev/md0 -l 0 -n 2 /dev/sdb{1,2}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看已经建立好raid的信息
[[email protected] ~]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 23 12:06:55 2018
Raid Level : raid0
Array Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Oct 23 12:06:55 2018
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : centos7.5.localdomain:0 (local to host centos7.5.localdomain)
UUID : c954f4cf:3428c9c3:4e5dfc8c:96c3aece
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
3.创建raid的文件系统
[[email protected] ~]#mkfs.xfs /dev/md0
4.挂载硬盘,把ID信息添加到/etc/fstab文件里
[[email protected] ~]#blkid /dev/md0
/dev/md0: UUID="56089a5a-833c-4415-8c54-789173344652" TYPE="xfs"
[[email protected] ~]#mount -a
创建RAID-5
1.以centos6 4块硬盘来试验(b,c,d,e)
[[email protected] ~]$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom
sr1 11:1 1 2G 0 rom
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 29.3G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
2.设置为raid-5 -x 指一个备用硬盘 发现其他硬盘损坏,自己立马顶替损坏硬盘的位置
[[email protected] ~]$mdadm -C -a yes /dev/md1 -l 5 -n 3 -x 1 /dev/sd{b..e}
3.查看新建的md1硬盘信息硬盘sde为备用硬盘
[[email protected] ~]$mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Oct 23 12:36:47 2018
Raid Level : raid5
Array Size : 41910272 (39.97 GiB 42.92 GB)
Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 23 12:38:32 2018
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : CentOS6.10.localdomain:1 (local to host CentOS6.10.localdomain)
UUID : afc70631:08758f06:c3c8b61c:7668a8c5
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
# 给硬盘建立文件系统即可挂载。
软RAID管理
生成配置文件:mdadm–D –s >> /etc/mdadm.conf
停止设备:mdadm–S /dev/md0
激活设备:mdadm–A –s /dev/md0 激活
强制启动:mdadm–R /dev/md0
删除raid信息:mdadm–zero-superblock /dev/sdb
软RAID测试和修复
模拟磁盘故障
mdadm /dev/md0 -f /dev/sda1
移除磁盘
mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障
?替换出故障的磁盘然后开机
?在备用驱动器上重建分区
?mdadm /dev/md0 -a /dev/sda1
mdadm /proc/mdstat及系统日志信息
以上是关于LinuxRAID实现的主要内容,如果未能解决你的问题,请参考以下文章