千家信息网

Linux/Centos7RAID磁盘阵列与阵列卡

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,Linux/Centos7RAID磁盘阵列与阵列卡一、RAID概念?RAID--独立磁盘冗余阵列(Redundant Array of Independent Disks),原本叫做廉价磁盘冗余阵列。
千家信息网最后更新 2024年11月11日Linux/Centos7RAID磁盘阵列与阵列卡

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进行配置的实验操作:

[root@lokott ~]# lsblk                                           //查看磁盘概要信息NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      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 /homesdb      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[root@lokott ~]# fdisk /dev/sdb           //设置b磁盘分区格式为fd欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x363a740e 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): Using default response p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):将使用默认值 41943039分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):t已选择分区 1Hex 代码(输入 L 列出所有代码):fd已将分区"Linux"的类型更改为"Linux raid autodetect"命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@lokott ~]# fdisk /dev/sdc 欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x1d0b68fc 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): Using default response p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):将使用默认值 41943039分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):t已选择分区 1Hex 代码(输入 L 列出所有代码):fd已将分区"Linux"的类型更改为"Linux raid autodetect"命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。//查看分区是否正确[root@lokott ~]# 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
[root@lokott ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]          //mdadm命令进行RAID磁盘管理mdadm: chunk size defaults to 512K         //md0是自己取的RAID0的设备名称,-l是level,0表示的是RAID0mdadm: 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 arraymdadm: partition table exists on /dev/sdcmdadm: partition table exists on /dev/sdc but will be lost or       meaningless after creating arrayContinue creating array? ymdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started.[root@lokott ~]# lsblk /dev/md0                                 //查看概要信息的确是RAID0NAME MAJ:MIN RM SIZE RO TYPE  MOUNTPOINTmd0    9:0    0  40G  0 raid0 [root@lokott ~]# mkfs -t xfs /dev/md0meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks         =                       sectsz=512   attr=2, projid32bit=1         =                       crc=1        finobt=0, sparse=0data     =                       bsize=4096   blocks=10475520, imaxpct=25         =                       sunit=128    swidth=256 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=5120, version=2         =                       sectsz=512   sunit=8 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0[root@lokott ~]# mount /dev/md0 /mnt[root@lokott ~]# df -hT文件系统       类型      容量  已用  可用 已用% 挂载点/dev/sda2      xfs        20G  4.4G   16G   22% /devtmpfs       devtmpfs  474M     0  474M    0% /devtmpfs          tmpfs     489M     0  489M    0% /dev/shmtmpfs          tmpfs     489M  7.1M  482M    2% /runtmpfs          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% /boottmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42tmpfs          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的设置操作。

0