admin 管理员组

文章数量: 887017

文章目录

  • 前言:
  • 一:服务器硬件
  • 二:RAID磁盘阵列详解
    • 1)RAID磁盘阵列介绍
    • 2) RAID 0磁盘阵列介绍
    • 3)RAID 1磁盘阵列介绍
  • 三:RAID阵列卡介绍
    • 3.1阵列卡
    • 3.2 阵列卡的缓存
  • 四:构建软RAID磁盘阵列
      • 案例:构建软RAID磁盘阵列
  • 总结:

前言:

磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中

一:服务器硬件

常见的服务器硬件有:cpu,内存,网卡,硬盘,远程管理口,阵列卡,电源,主板
cpu一般是双芯的,即安装两个cpu

内存:支持内存容量很高,基本上都在4TB

硬盘:通常都会对硬盘做raid,来保证数据的高效传输和数据安全可靠

二:RAID磁盘阵列详解

1)RAID磁盘阵列介绍

  • RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
  • RAID是吧多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能额和提供数据备份技术
  • 组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常用的RAID级别有以下几种:RAID0,RAID1,RAID5,RAID6,RAID1+0等

2) RAID 0磁盘阵列介绍

  • RAID 0连续以位或字节为单位分个数据,并行同时读/写于多个磁盘上,因此具有很高的数据传输率,但他没有数据冗余(即没有备份),因此并不能算是真正的RAID结构

  • RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,可靠性低而且其中的一个磁盘失效将影响到所有数据

  • RAID 0不能应用于数据安全性要求高的场合,常应用于多读写的场景

  • RAID 0 在windows中叫做带区卷(linux叫条带券),

    容量总和是两个磁盘相加

3)RAID 1磁盘阵列介绍

  • 通过磁盘数据镜像实现数据冗余(即备份),在成堆的独立磁盘上产生互为备份的数据
  • 在原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能;写入速度不变,容量只有磁盘(偶数)总容量的二分之一,因此成本最高,另外一半用来备份数据,可靠性高
  • RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据

4)RAID 5磁盘阵列介绍

  • N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,即校验数据的存在,写性能相对不高
  • 容量为(N-1)/N*总磁盘容量
  • 可靠性高,允许坏1块盘,不影响所有数据,把坏的磁盘换下来,可以利用校验数据来恢复丢失数据

5)RAID 6磁盘阵列介绍

  • N(N>=4)块盘组成阵列,容量为(N-2)/N*磁盘总容量
  • 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法(相当于二元一次方程),即时两块磁盘同时失效也不会影响数据的使用
  • 相对于RAID 5有更大的写损失,因此写性能相对较差
  • 线网上面用RAID 6 的比较多

6) RAID 1+0磁盘阵列介绍

  • N(偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0

  • 容量为N/2容量

  • N/2块盘同时写入,N块盘同时读取

  • 性能高,可靠性高

  • 也是线网中常用的一种磁盘阵列

三:RAID阵列卡介绍

3.1阵列卡

阵列卡就是用来实现RAID功能的板卡,通常是由I/O(imput输入/output输出)处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的

不同的RAID卡支持的RAID功能不同,例如支持RAID0、RAID1、RAID5、RAID10等

RAID卡的接口类型

IDE接口、SCSI接口、SATA接口和SAS接口

3.2 阵列卡的缓存

缓存(Csche)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,在由缓存和外边数据总线交换数据

缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素

不同的RAID卡出厂时配备的内存容量不同,一半为几兆到数百兆容量不等

四:构建软RAID磁盘阵列

案例:构建软RAID磁盘阵列

需求描述:

  • 为Linux服务器添加4块SCSI硬盘
  • 使用mdadm软件包,构建RAID磁盘阵列,提高磁盘存储的性能和可靠性

思路:

  • 安装mdadm
  • 准备用于RAID阵列的分区
    • 为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1
    • 将其类型ID更改为“fd’”,对应为“Linux raid autodetect” ,表示支持用于RAID磁盘阵列
  • 创建RAID设备并建立文件系统
  • 挂载并使用文件系统
[root@localhost ~]# rpm -q mdadm	查看madadam工具是否已安装
mdadm-4.0-5.el7.x86_64	显示安装

接下来开始配置硬盘

当前磁盘情况

[root@localhost ~]# fdisk -l	查看所有磁盘信息

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a55e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    79710207    33562624   8e  Linux LVM

磁盘 /dev/mapper/centos-root:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


[root@localhost ~]# init 6	重启系统

[root@localhost ~]# fdisk -l	重新查看所有磁盘信息,发现新增的四块磁盘

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

开始依次给每块磁盘进行分区

[root@localhost ~]# fdisk /dev/sdb	创建分区,
欢迎使用 fdisk (util-linux 2.23.2)。

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

Device does not contain a recognized partition table
使用磁盘标识符 0x2ed1de1d 创建新的 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 列出所有代码):l

 024  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

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

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


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

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

用fdisk /dev/sdc,fidsk /dev/sdd,fdisk /dev/sde命令去配置另外三块磁盘,

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

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

接下来就可以以这四块磁盘为素材,去配置raid,先配置个raid

可以先试一下raid0条带卷,也叫做跨区卷

[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1	
#/dev/md0就是raid0名字,-C 创建,-v显示过程 -l确定raid等级,-n确定几块盘,还有一个备用选项-x
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0	#mdadm -D 显示raid信息
/dev/md0:
           Version : 1.2
     Creation Time : Mon Nov  4 12:49:59 2019
        Raid Level : raid0
        Array Size : 41908224 (39.97 GiB 42.91 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 12:49:59 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : d531230c:c4e71b72:00f695a1:f9ce404c
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
 [root@localhost ~]# cat /proc/mdstat	#还可以从/proc硬件信息目录中查看raid对应的
 #文件/proc/mdstat
Personalities : [raid0] 
md0 : active raid0 sdc1[1] sdb1[0]
      41908224 blocks super 1.2 512k chunks
      

将配置持久化保存


mdadm -D --scan >/etc/mdadm.conf
cat /etc/mdadm.conf


raid0 卷制作完毕,接下来格式化之后就可以挂载使用

[root@localhost ~]# mkfs.xfs /dev/md0	#格式化/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
[root@localhost ~]# mkdir /md0	#创建挂载点目录
[root@localhost ~]# mount /dev/md0 /md0		#挂载
[root@localhost ~]# df -Th 	#查看
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.0M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/md0                xfs        40G   33M   40G    1% /md0	#已挂载

接下来取消挂载,停止md0

[root@localhost dev]# umount /md0
[root@localhost dev]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
[root@localhost dev]# cat /proc/mdstat
Personalities : [raid0] 
unused devices: <none>
[root@localhost dev]# ls	查看发现没有md0
agpgart          log                 sdc       tty18  tty45   urandom
autofs           loop-control        sdc1      tty19  tty46   usbmon0
block            lp0                 sdd       tty2   tty47   usbmon1
bsg              lp1                 sdd1      tty20  tty48   usbmon2
btrfs-control    lp2                 sde       tty21  tty49   vcs
bus              lp3                 sde1      tty22  tty5    vcs1
cdrom            mapper              sg0       tty23  tty50   vcs2
centos           mcelog              sg1       tty24  tty51   vcs3
char             mem                 sg2       tty25  tty52   vcs4
console          mqueue              sg3       tty26  tty53   vcs5
core             net                 sg4       tty27  tty54   vcs6
cpu              network_latency     sg5       tty28  tty55   vcsa
cpu_dma_latency  network_throughput  shm       tty29  tty56   vcsa1
crash            null                snapshot  tty3   tty57   vcsa2
disk             nvram               snd       tty30  tty58   vcsa3
dm-0             oldmem              sr0       tty31  tty59   vcsa4
dm-1             port                stderr    tty32  tty6    vcsa5
dm-2             ppp                 stdin     tty33  tty60   vcsa6
dri              ptmx                stdout    tty34  tty61   vfio
fb0              pts                 tty       tty35  tty62   vga_arbiter
fd               random              tty0      tty36  tty63   vhci
full             raw                 tty1      tty37  tty7    vhost-net
fuse             rfkill              tty10     tty38  tty8    vmci
hidraw0          rtc                 tty11     tty39  tty9    vsock
hpet             rtc0                tty12     tty4   ttyS0   zero
hugepages        sda                 tty13     tty40  ttyS1
hwrng            sda1                tty14     tty41  ttyS2
initctl          sda2                tty15     tty42  ttyS3
input            sdb                 tty16     tty43  uhid
kmsg             sdb1                tty17     tty44  uinput

开始制作raid1,rai1d俗称镜像卷

[root@localhost dev]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 	
#-C创建 -v显示详细过程 要创建的raid名称	-l raid等级 -n磁盘个数 磁盘名称
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid0 devices=2 ctime=Mon Nov  4 12:49:59 2019
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid0 devices=2 ctime=Mon Nov  4 12:49:59 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost dev]# cat /proc/mdstat	查看mdstat状态
Personalities : [raid0] [raid1] 
md1 : active raid1 sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]
      [=====>...............]  resync = 26.7% (5601408/20954112) 	finish=1.2min speed=207459K/sec		#正在同步
      
unused devices: <none>
[root@localhost dev]# mdadm -D /dev/md1		#查看详细信息
/dev/md1:
           Version : 1.2
     Creation Time : Mon Nov  4 13:41:55 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 13:43:39 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : d873e511:0bb8274c:97a98d9f:76313fc8
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

[root@localhost dev]# mkfs.xfs /dev/md1		#格式化/dev/md1
mkfs.xfs: /dev/md1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.		
#反馈说md1中存在xfs系统,是否要强行执行-f格式化,原因自己分析一波,我就不解释了
[root@localhost dev]# mkfs.xfs -f /dev/md1	#强制执行
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost dev]# mount /dev/md1 /md0	#挂载到之前设置的挂载点/md0
[root@localhost dev]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.0M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/md1                xfs        20G   33M   20G    1% /md0

还有-x 指定备用磁盘,这里操作演示一波

[root@localhost dev]# umount /md0	取消挂载
[root@localhost dev]# mdadm -S /dev/md1 	停止raid1
mdadm: stopped /dev/md1
[root@localhost dev]# mdadm -C /dev/md2 -l1 -n2 /dev/sd[d-e]1 -x1 /dev/sdb1
#重新创建一个raid1,-x1,指定一块备用磁盘
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Mon Nov  4 13:41:55 2019
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost dev]# cat /proc/mdstat	#查看信息状态
Personalities : [raid0] [raid1] 
md2 : active raid1 sdb1[2](S) sde1[1] sdd1[0]
      20954112 blocks super 1.2 [2/2] [UU]
      [====>................]  resync = 21.0% (4400896/20954112) finish=1.3min speed=209566K/sec
      
unused devices: <none>
[root@localhost dev]# mdadm -D /dev/md2		#第二种方法查看
/dev/md2:
           Version : 1.2
     Creation Time : Mon Nov  4 14:27:51 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 14:28:49 2019
             State : clean, resyncing 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

     Resync Status : 56% complete

              Name : localhost.localdomain:2  (local to host localhost.localdomain)
              UUID : 774b6bee:46ab3939:243f63b7:fdc1d58d
            Events : 9

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       65        1      active sync   /dev/sde1

       2       8       17        -      spare   /dev/sdb1	#这一块就是备用盘

用mdadm中的-f去模拟演示毁掉一块盘

[root@localhost dev]# mdadm -f /dev/md2 /dev/sdd1	毁掉md2中的sdd1
mdadm: set /dev/sdd1 faulty in /dev/md2
[root@localhost dev]# mdadm -D /dev/md2
/dev/md2:
           Version : 1.2
     Creation Time : Mon Nov  4 14:27:51 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 14:30:11 2019
             State : clean, degraded, recovering 
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 1
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 15% complete

              Name : localhost.localdomain:2  (local to host localhost.localdomain)
              UUID : 774b6bee:46ab3939:243f63b7:fdc1d58d
            Events : 21

    Number   Major   Minor   RaidDevice State
       2       8       17        0      spare rebuilding   /dev/sdb1	#被顶替上去
       1       8       65        1      active sync   /dev/sde1

       0       8       49        -      faulty   /dev/sdd1	#被换下来

再实验一个raid5,从案例的需求可以发现,可以为其配置raid6,或者raid1+0,这里还是先顺序把raid5演练一波

[root@localhost dev]# mdadm -S /dev/md2		#停止md2
mdadm: stopped /dev/md2
[root@localhost dev]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1 	
#-C创建 -v显示详细过程 raid名称 -l raid等级 -n 组成raid磁盘个数 组成raid的磁盘名称 
#-x 备用磁盘
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Mon Nov  4 14:27:51 2019
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Mon Nov  4 13:41:55 2019
mdadm: /dev/sdd1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Mon Nov  4 14:27:51 2019
mdadm: /dev/sde1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Mon Nov  4 14:27:51 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost dev]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Mon Nov  4 14:57:07 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 14:58:53 2019
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 6057b886:24586340:b6ece802:6f3904d6
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       3       8       65        -      spare   /dev/sde1

-x备用了一块磁盘,这里搞坏一个盘试一试

[root@localhost dev]# mdadm -f /dev/md5 /dev/sdd1	#搞坏md5下面的sdd1
mdadm: set /dev/sdd1 faulty in /dev/md5		#显示成功搞坏
[root@localhost dev]# mdadm -D /dev/md5		#再次查看信息
/dev/md5:
           Version : 1.2
     Creation Time : Mon Nov  4 14:57:07 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 15:04:50 2019
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 25% complete

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 6057b886:24586340:b6ece802:6f3904d6
            Events : 24

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       3       8       65        2      spare rebuilding   /dev/sde1	#顶替上来

       4       8       49        -      faulty   /dev/sdd1 	#换下来

然后的操作就是格式化,mkfs.xfs /dev/md5,挂载,这里就不再操作了

raid6就是把其中的级别-l改为6,磁盘块数-n不少于四块,备用盘-x记得给,养成好习惯,在演示一波raid1+0

raid1+0的原理是先用两块盘去做raid1镜像卷,然后把两个raid1为单位,去做raid0条带卷

[root@localhost dev]# mdadm -S /dev/md5		#停用md5
mdadm: stopped /dev/md5
[root@localhost dev]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1	#创建raid1 md1
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Nov  4 14:57:07 2019
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Nov  4 14:57:07 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost dev]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1	#创建riad1 md2
mdadm: /dev/sdd1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Nov  4 14:57:07 2019
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sde1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Nov  4 14:57:07 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost dev]# mdadm -C -v /dev/md0 -l0 -n2 /dev/md[1-2]	#以两个镜像卷尾单位,
#创建raid0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost dev]# mdadm -D /dev/md0	#查看raid0卷md0
/dev/md0:
           Version : 1.2
     Creation Time : Mon Nov  4 15:19:28 2019
        Raid Level : raid0
        Array Size : 41875456 (39.94 GiB 42.88 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 15:19:28 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : e0b393ab:3c8c8d1c:21ddf9f1:26ab1901
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       9        1        0      active sync   /dev/md1	#单位是镜像卷
       1       9        2        1      active sync   /dev/md2
[root@localhost dev]# mdadm -D /dev/md1	#查看raid1卷md1
/dev/md1:
           Version : 1.2
     Creation Time : Mon Nov  4 15:18:02 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 15:19:47 2019
             State : active 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : 8ece5682:dc5b03c7:5d1d67a8:22c85b59
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1	#单位是sd
       1       8       33        1      active sync   /dev/sdc1
[root@localhost dev]# mdadm -D /dev/md2
/dev/md2:
           Version : 1.2
     Creation Time : Mon Nov  4 15:18:43 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 15:20:02 2019
             State : active, resyncing 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

     Resync Status : 79% complete

              Name : localhost.localdomain:2  (local to host localhost.localdomain)
              UUID : 9501fa59:f37e90a0:227aaf3f:567026a1
            Events : 13

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       65        1      active sync   /dev/sde1
[root@localhost dev]# mount /dev/md1 /md0	#挂载raid1镜像卷
mount: 未知的文件系统类型“linux_raid_member”	#没有格式化
[root@localhost dev]# mount /dev/md0 /md0	#挂载raid0条带卷
mount: /dev/md0 写保护,将以只读方式挂载	#可以挂,但是没啥用,只读,写保护
mount: 未知的文件系统类型“(null)[root@localhost dev]# mkfs.xfs /dev/md0		#格式化条带卷raid0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654208 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10467328, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5112, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost dev]# mount /dev/md0 /md0	#再次挂载raid0,可以正常挂上去
[root@localhost dev]# mkfs.xfs /dev/md1		#格式化镜像卷raid1,发现资源忙
mkfs.xfs: cannot open /dev/md1: 设备或资源忙	#这是因为镜像卷成为raid0的单位,无法执行
#独立的操作
[root@localhost dev]# df -TH	#查看一下
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        22G  3.5G   18G   17% /
devtmpfs                devtmpfs  1.1G     0  1.1G    0% /dev
tmpfs                   tmpfs     1.1G     0  1.1G    0% /dev/shm
tmpfs                   tmpfs     1.1G  9.5M  1.1G    1% /run
tmpfs                   tmpfs     1.1G     0  1.1G    0% /sys/fs/cgroup
/dev/sda1               xfs       6.5G  168M  6.3G    3% /boot
/dev/mapper/centos-home xfs        11G   52M   11G    1% /home
tmpfs                   tmpfs     209M   13k  209M    1% /run/user/42
tmpfs                   tmpfs     209M     0  209M    0% /run/user/0
/dev/md0                xfs        43G   35M   43G    1% /md0	#挂载成功

总结:

  • raid0是两块磁盘,同时读写,速度比一般的快一倍,但是没有进行备份数据的操作,所以在数据安全性的层面上跟一般的一样,容量是所有磁盘容量的总和
  • raid1是两块磁盘,同时往里写一样的数据,速度跟一般的一致,安全方面,多了一块磁盘,就多了一份保障,容量是磁盘总容量的一半
  • raid5最少三块磁盘,分别往里读写,在原有数据的基础上,还多了一份数据校验记录,这一份数据校验记录跟原有数据平均均分在各个磁盘内,相当于可以损坏一块磁盘,把坏磁盘换下来,数据校验记录可以恢复坏磁盘的数据,安全性比一般的多了一层保障,读写速度是一般的(N-1)倍,容量是磁盘总容量的(N-1)N
  • raid6最少四块磁盘,相当于在raid5的基础上再加一个数据校验记录,这样就可以同时损坏两块盘而不影响数据完整,安全性比一般的多了两层保障,读写速度是一般的(N-2)被,容量是磁盘总容量的(N-2)/N
  • raid1+0是raid1和raid0的集合,相当于对数据先进行已经raid1的封装,然后在进行raid0的封装,应用也是比较广

本文标签: 实战 理论 服务器 硬件 RAID