什么是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