Linux/Centos7RAID磁盘阵列与阵列卡

huangzonggui 2019-11-12

Linux/Centos7RAID磁盘阵列与阵列卡

一、RAID概念?

RAID——独立磁盘冗余阵列(Redundant Array of Independent Disks),原本叫做廉价磁盘冗余阵列。RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。所以RAID咨询委员会使用“独立”代替“廉价”。

二、为什么需要RAID?

RAID的种类目前来说使用的较多的是RAID0、RAID1、RAID5、RAID6。RAID的初心是为大型服务器提供高端的存储功能和冗余的数据安全,但RAID0显然是不符合该要求的,因为RAID0是为了极大程度地提高数据读写(I/O)的效率和硬盘的使用率,因此其原理是同时向多个磁盘中同时写入信息,但是不保证数据的安全可靠性,有一块磁盘挂了就无法导致数据丢失,适用于仅仅只需要高读写能力的场景,而后面的类型对于数据的安全与可靠性都有了明显的改善与加强。

RAID1——镜像复制,使用两块或以上的磁盘(一般是偶数块)进行读写,向一块磁盘中写入信息,并且复制一份到另一块磁盘中,这样保证了数据的可靠读写,两者互不影响,但是使用率只有原本资源的一半,所以是可靠性较强但资源耗费也是比较大的。

说白了,RAID0是只在乎速度,而RAID1考虑的是安全。而RAID5则是由三块磁盘构成,凭借算法进行奇偶差错校验来确保数据的可靠性的同时兼顾磁盘使用率,其允许一块磁盘挂掉,但是在修复重建数据的时间段中不可以再有磁盘损坏,否则数据仍然会丢失。

RAID6则是基于RAID5的基础上进行双重校验以保证两块磁盘挂掉的情况下数据仍然不会丢失。但是其读写性能就比较低了尤其是磁盘损坏的时候,读写速度将急剧下降,而且价格方面也是较其他而言更加昂贵。

三、软RAID配置实验操作流程

  1. 首先将分区类型转换为fd(前提是已经添加磁盘)
  2. 管理RAID磁盘
  3. 格式化文件格式
  4. 挂载

下面对RAID0进行配置的实验操作:

[ ~]# lsblk                                           //查看磁盘概要信息
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0    6G  0 part /boot
├─sda2   8:2    0   20G  0 part /
├─sda3   8:3    0    4G  0 part [SWAP]
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0   10G  0 part /home
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 
sr0     11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

[ ~]# fdisk /dev/sdb           //设置b磁盘分区格式为fd
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x363a740e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[ ~]# fdisk /dev/sdc 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x1d0b68fc 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
//查看分区是否正确
[ ~]# fdisk -l /dev/sd[b-c]

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x363a740e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1d0b68fc

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect
[ ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]          //mdadm命令进行RAID磁盘管理
mdadm: chunk size defaults to 512K         //md0是自己取的RAID0的设备名称,-l是level,0表示的是RAID0
mdadm: partition table exists on /dev/sdb   //1 就是RAID1,5就是RAID5,-n表示需要几块磁盘,后面的加的
mdadm: partition table exists on /dev/sdb but will be lost or //就是磁盘数量
       meaningless after creating array
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[ ~]# lsblk /dev/md0                                 //查看概要信息的确是RAID0
NAME MAJ:MIN RM SIZE RO TYPE  MOUNTPOINT
md0    9:0    0  40G  0 raid0 
[ ~]# mkfs -t xfs /dev/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
[ ~]# mount /dev/md0 /mnt
[ ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        20G  4.4G   16G   22% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.1M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs          tmpfs      98M   20K   98M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/md0       xfs        40G   33M   40G    1% /mnt

四、总结

其实软RAID的磁盘阵列的设置还是比较简单的,对于其他类型的RAID的配置的步骤是一样的,当然也可是设置备份,就是在mdadm命令的最后加上-xn (n表示的是备用的磁盘的数量),然后加上设备名称,这里主要是软RAID的设置操作。

相关推荐