七、Linux磁盘管理(二)

本文详细介绍了Linux磁盘管理中的RAID技术,包括RAID0、RAID1、RAID5、RAID6和RAID10的概念及优缺点。接着讲解了逻辑卷管理,其动态在线扩容和灵活的存储管理特性,以及如何创建和管理逻辑卷。最后,提到了磁盘配额的配置和扩容方法。

一、磁盘阵列RAID

1.1 概述

  • RAID:(Redundant Array of Independent Disk )独立冗余磁盘阵列
  • RAID最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。
  • RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。
  • RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能,能够确保数据安全性,易于管理,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。

1.2 常见RAID级别

1.2.1 RAID0
  • 至少需要两块磁盘
  • 数据条带化分布到磁盘(如果说需要存储的数据是12345678,那么可能是1357存储在disk1上面,2468存储在disk2上面)
  • 高的读写性能,100%高存储空间利用率
  • 没有数据冗余性,一块磁盘故障,数据将无法恢复
  • 应用于:对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储
    在这里插入图片描述
1.2.2 RAID1
  • 至少需要两块磁盘
  • 数据镜像备份写到磁盘上(工作盘和镜像盘)
  • 可靠性高,磁盘利用率为50%
  • 一块磁盘故障,不会影响数据的读写
  • 读性能可以,但写性能不佳
  • 应用于:对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
    在这里插入图片描述
1.2.3 RAID5
  • 至少需要3块磁盘
  • 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
  • 以奇偶校验(分散)做数据冗余
  • 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
  • 是目前综合性能最佳的数据保护解决方案,兼顾了存储性能、数据安全和存储成本等各方面因素
  • 适用于大部分的应用场景
    在这里插入图片描述
1.2.4 RAID6
  • 至少需要4块磁盘
  • 数据条带化存储在磁盘,读取性能好,容错能力强
  • 采用双重校验方式保证数据的安全性
  • 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
  • 成本要比其他等级高,并且更复杂
  • 一般用于对数据安全性要求非常高的场合

在这里插入图片描述

1.2.5 RAID10
  • RAID10raid1+raid0的组合
  • 至少需要4块磁盘
  • 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
  • 磁盘利用率为50%,成本较高

在这里插入图片描述

1.2.6 RAID01
  • RAID10raid0+raid1的组合
  • 至少需要4块磁盘
  • 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
  • 磁盘利用率为50%,成本较高

在这里插入图片描述

1.2.7 总结
类型 读性能 写性能 可靠性 磁盘利用率 成本
RAID0 最好 最好 最低 100% 较低
RAID1 正常 两份数据 50%
RAID5 近似RAID0 多了校验 介于RAID0RAID1之间 (n-1)/n 介于RAID0RAID1之间
RAID6 近似RAID0 多了双重校验 大于RAID5 (n-2)/n 大于RAID1
RAID10 等于RAID0 等于RAID1 50% 最高
RAID01 等于RAID0 等于RAID1 50% 最高

1.3 软硬RAID

1.3.1 软RAID
  • RAID运行于操作系统底层,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。

  • RAID有以下特点:

    • 占用内存空间

    • 占用CPU资源

    • 如果程序或者操作系统故障就无法运行

    • 现在企业很少用软RAID

1.3.2 硬RAID
  • 通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID
  • RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。
  • 不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID5、RAID10不等。

1.4 组件RAID阵列

1.4.1 环境准备
  • 添加一块磁盘(或者直接添加多块磁盘,不分区,直接使用)
  • 将一个大容量磁盘(20G)分区,形成多个小分区
[root@server1 ~]# fdisk /dev/sdc
[root@server1 ~]# partprobe /dev/sdc
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
└─sdb1            8:17   0    2G  0 part 
sdc               8:32   0   20G  0 disk 
├─sdc1            8:33   0    2G  0 part 
├─sdc2            8:34   0    2G  0 part 
├─sdc3            8:35   0    2G  0 part 
├─sdc4            8:36   0    1K  0 part 
├─sdc5            8:37   0    2G  0 part 
├─sdc6            8:38   0    2G  0 part 
├─sdc7            8:39   0    2G  0 part 
├─sdc8            8:40   0    2G  0 part 
├─sdc9            8:41   0    2G  0 part 
├─sdc10           8:42   0    2G  0 part 
└─sdc11           8:43   0    2G  0 part 
sr0              11:0    1  973M  0 rom  
  • 安装mdadm工具
[root@server1 ~]# yum install -y mdadm
参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
-x 指定热备盘数量
1.4.2 组建RAID0
# 创建raid0
[root@server1 ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdc1 /dev/sdc2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@server1 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Sep  2 23:25:16 2021
        Raid Level : raid0
        Array Size : 4188160 (3.99 GiB 4.29 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Sep  2 23:25:16 2021
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : server1:0  (local to host server1)
              UUID : 2e5a48fa:87654810:3460dfd6:1d4951d5
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2

# 格式化
[root@server1 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=8, agsize=130944 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1047040, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

# 挂载
[root@server1 ~]# mkdir /mnt/mnt_md0
[root@server1 ~]# mount /dev/md0 /mnt/mnt_md0/

# 测试
#复制终端,用于监测
[root@server1 ~]# yum install -y sysstat
[root@server1 ~]# iostat -m -d /dev/sdc[12] 3
[root@server1 ~]# dd if=/dev/zero of=/mnt/mnt_md0/bigfile bs=1M count=1024

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdc1            156.00         0.00        77.84          0        233
sdc2            155.67         0.00        77.83          0        233

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdc1            140.33         0.00        70.17          0        210
sdc2            140.33         0.00        70.17          0        210

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdc1             45.33         0.00        22.67          0         68
sdc2             45.33         0.00        22.67          0         68

# 永久保存RAID0信息
[root@server1 ~]# echo "/dev/md0 /mnt/mnt_md0 xfs defaults 0 0" >> /etc/fstab
1.4.3 组建RAID1
# 创建raid1
[root@server1 ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdc3 /dev/sdc5
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
Continue creating array? y #输入y,同意即可
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

# 查看状态信息
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] 
md1 : active raid1 sdc5[1] sdc3[0]
      2094080 blocks super 1.2 [2/2] [UU]
      
md0 : active raid0 sdc2[1] sdc1[0]
      4188160 blocks super 1.2 512k chunks
      
unused devices: <none>
[root@server1 ~]# mdadm -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Sep  2 23:43:43 2021
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Sep  2 23:43:54 2021
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : server1:1  (local to host server1)
              UUID : bc67728d:e1c60a3c:8d445c5d:67a55444
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       35        0      active sync   /dev/sdc3
       1       8       37        1      active sync   /dev/sdc5

# 格式化
[root@server1 ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1               isize=512    agcount=4, agsize=130880 blks
         =                       sectsz=512   attr
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值