什么是raid
raid:RedundantArrays of Inexpensive(Independent)Disks 简称RAID、早期是为了降低成本问题,1988年由加利福尼亚大学伯克利分校提出“A Case for Redundant Arrays of Inexpensive Disks”廉价的磁盘冗余阵列、后来成为服务器领域的标配
把多个硬盘逻辑的组合在一起、形成一个集合叫做阵列、两大突出优势
一:性能提升、比单块磁盘性能强。
二:实现冗余性
RAID:
1、提高I/O能力;
磁盘并行读写
2、提高耐用性
磁盘冗余来实现
3、级别:多块磁盘组织在一起的工作方式有所不同
4、raid实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式raid:主板集成raid控制器
在安装OS前在BIOS里面配置
软件raid:通过OS来实现
生产中都是用硬件raid来实现
raid的多种级别
0:条带卷
读、写性能提升;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+
1:镜像卷
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2N
4:
多块数据盘异或运算值存于专用校验盘
5:带校验位的条带集
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
10
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
01
多块磁盘先实现RAID0,再组合成RAID1
软raid:
mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi devices)
软raid5的实现方式:raid0的话最少得2块盘才能组这里实验给他4块盘
先分区,大小为1G,因为这里拿分区做的时候,分完之后别着急退出还得修改下格式,软raid的格式改成fd即可。
[root@centos6 ~]#fdisk /dev/sdb
.......
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): p
......
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ fd Linux raid autodetect
再把其它几个盘分出来一个分区大小为1G,盘太多了所以这里用了dd命令来复制上一个磁盘里的信息,重复几次即可,这样是不是比fdisk /dev/sdd 命令简单快捷呢
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sde bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdf bs=1 count=66 skip=446 seek=446
创建raid级别,并且把刚才刚分区的几个盘添加进去
[root@centos6 ~]#mdadm -C /dev/md0 -a yes -l0 -n4 /dev/sd{b,c,d,e}1
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=1060256K mtime=Sat Aug 11 11:40:55 2018
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 08:00:00 1970
mdadm: partition table exists on /dev/sdb1 but will be lost or
meaningless after creating array
Continue creating array? ^C #这块提示在/dev/sdb1这块磁盘上已经有了文件系统了 ,提示你是否创建文件系统,之前的会被抹掉,如果不想出现这提示的话 可以用下面命令来清零
[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb1
然后你再创建raid就没有刚才上面那提示了
[root@centos6 ~]#mdadm -C /dev/md0 -a yes -l0 -n4 /dev/sd{b,c,d,e}1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看刚创建好的raid的详细信息
[root@centos6 ~]#mdadm -D /dev/md0
配置文件
[root@centos7 raid0]# mdadm -Ds /dev/md0
ARRAY /dev/md0 metadata=1.2 name=centos7:0 UUID=f4b5305a:5525f6dc:8921eed9:a309a089
[root@centos7 raid0]# mdadm -Ds /dev/md0 > /etc/mdadm.conf
测试速度
[root@centos7 raid0]# dd if=/dev/zero of=f1 bs=1M count=1024 conv=fdatasync
测试读速度
[root@centos7 raid5]# dd if=f2 of=/dev/null
不想要raid0先取消挂载
[root@centos7 ~]# umount /mnt/raid0/
停止raid
[root@centos7 ~]# mdadm -S /dev/md0
删除之前生成的配置文件,以免后续有时候写在配置文件里面开机自动启动
[root@centos7 ~]# rm -rf /etc/mdadm.conf
清除分区上的raid信息
[root@centos7 ~]# mdadm --zero-superblock /dev/sdb1
[root@centos7 ~]# mdadm --zero-superblock /dev/sdc1
[root@centos7 ~]# mdadm --zero-superblock /dev/sdd1
[root@centos7 ~]# mdadm --zero-superblock /dev/sde1
raid 5 增加空间
[root@centos7 ~]# mdadm -G /dev/md5 -n 5 -a /dev/sdc1
增加完之后需要同步centos7上同步文件系统
[root@centos7 ~]# xfs_growfs /mnt/raid5
ext系列同步的话需要用到以下命令
[root@centos7 ~]# resize2fs /dev/md5
raid10 创建
先创建两组raid1
mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sd{c,d}1
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{e,f}1
然后再创建一组raid0
mdadm -C /dev/md2 -a yes -l0 -n2 /dev/md{0,1}
再把刚创建好的raid10格式化成xfs文件系统,再挂载到/mnt/raid10
mkfs.xfs /dev/md2
mkdir /mnt/raid10
mount /dev/md2 /mnt/raid10
https://blog.51cto.com/dklwj/2161439