Linux廉价磁盘冗余队列(RAID)

简介: 通过几篇文章的介绍,来到了RAID的学习,本篇文章将介绍RAID,以及学会创建RAID,并且使用它,下面就进入学习吧。

前言


 通过几篇文章的介绍,来到了RAID的学习,本篇文章将介绍RAID,以及学会创建RAID,并且使用它,下面就进入学习吧。


什么是RAID?


RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或服务器的内置存储)带来巨大利益,其中提高和传输速率提供容错功能是最大的优点。


RAID类型(介绍部分类型)


RAID0


RAID0 条带集 2块磁盘以上,读写速率快100%*N,单不容错。


aa35f131024a48df919b05fb229d1c1f.png


RAID1


RAID1 镜像集 2块磁盘,容量50%,读写速率一般,容错


5814f7bf8cab47d3b9c4415da274568d.png


RAID5


RAID5 带奇偶校检条带集 3块磁盘以上,利用率(n-1)/n读写速率块,容错,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N盘上循环均衡存储

N快盘同时读写,读写性很高,但由于校验机制,写性能不是很高,可靠性高,但是只允许1快盘坏,不影响所有数据。


4bb103b2a610481d9a793e8c7097b9a2.png


创建RAID(以RAID为例)


1.准备四块磁盘

f281093f7af5403ba58f2bdaaa2eeb97.png


通过ll /dev/sd*查看已有磁盘。


633ffae1301742ae941590e75a1eea99.png


通过lsblk查看磁盘操作信息,注意创建RAID必须要用没有任何操作的原始磁盘或者分区。


2.创建RAID


//检查是否安装mdadm

命令:yum -y install mdadm

//创建RAID名为md1,它由sde,sdg,sdh,sdi组成

命令:mdadm -C /dev/md1 -l5 -n3 -x1 /dev/sd{e,g,h,i}

各字段的详解:

● -C:创建RAID

● /dev/md0:第一个RAID设备

● -l5:RAID5

● -n:RAID成员的数量

● -x:热备磁盘的数量

● 可用空间2G


代码如下(示例):

[root@localhost ~]# yum -y install mdadm
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
 One of the configured repositories failed (未知),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:
     1. Contact the upstream for the repository and get them to fix the problem.
     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).
     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...
     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:
            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>
     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:
            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot find a valid baseurl for repo: base/7/x86_64
[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{f,g,h,i}
mdadm:Defaulting to version 1.2 metadata
mdadm:arrt /dev/md1 started.


3.格式化,挂载


命令和分区的格式化挂载一致。


格式化


mkfs.ext4  /dev/md1


[root@localhost ~]# mkfs.ext4 /dev/md1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618880 blocks
130944 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 


挂载


命令:mount /dev/md1  /mnt/raid5            //raid5是之前创建的一个目录


71476fbcc3d941b7b15800a2b42938d5.png


如图df -hT查看挂载信息,有md1的挂载信息挂载点是raid5。


4.查看RAID信息


命令: mdadm -D /dev/md0                   //-D查看详细信息


[root@localhost ~]# mdadm -D /dev/md1
/dev/md0:
           Version : 1.2
     Creation Time : Wed Oct 26 14:36:41 2022
        Raid Level : raid5                                           //raid类型
        Array Size : 10475520 (9.99 GiB 10.73 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 3                                   //组中设备数量
     Total Devices : 4                                     //总设备数
       Persistence : Superblock is persistent
       Update Time : Wed Oct 26 14:58:11 2022
             State : clean                             //状态
    Active Devices : 3                          //活跃3个
   Working Devices : 4                               //4个在工作
    Failed Devices : 0                                 //损坏数量,坏一个危险,坏两个就完蛋
     Spare Devices : 1                             //热备1个
            Layout : left-symmetric
        Chunk Size : 512K               //校检码大小
Consistency Policy : resync
              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : d7c102bb:390cd8ce:041cc2a9:9dc9b741
            Events : 18
    Number   Major   Minor   RaidDevice State
       0       8       64        0      active sync   /dev/sde         //同步
       1       8       96        1      active sync   /dev/sdg             //同步
       4       8      112        2      active sync   /dev/sdh       /同步
       3       8      128        -      spare   /dev/sdi            //热备


5.模拟磁盘坏一个,移除磁盘。


命令:[root@localhost ~]# mdadm /dev/md1 -f /dev/sde -r /dev/sde

  • ●  -f  fial
  • ●  -r   remove


835c622313bc4d71897933a481404dc8.png


如图可以看出热备磁盘的作用,当一个磁盘损坏,热备磁盘胡替补原来磁盘的位置成为数据磁盘,同时恢复原本磁盘内的数据信息。


6.移除RAID


1.卸载md1挂载


命令:umount /dev/md1         //一定要卸载


c036d3f1257c47eda801b01835b4ce68.png


挂载信息没有md1的挂载信息,卸载成功!


2.停止md1阵列


命令:mdadm -S /dev/md1


[root@localhost ~]# mdadm -S /dev/md1
mdadm: stopped /dev/md1


3.清除成员


命令:mdadm --zero-superblock /dev/sd{g,h,i}


[root@localhost ~]# mdadm --zero-superblock /dev/sd{g,h,i}
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
md0               9:0    0   10G  0 raid5
sda               8:0    0   20G  0 disk  
├─sda1            8:1    0 1000M  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  
├─sdb2            8:18   0  200M  0 part  
├─sdb3            8:19   0  200M  0 part  
├─sdb4            8:20   0    1K  0 part  
├─sdb5            8:21   0  200M  0 part  
└─sdb6            8:22   0  2.4G  0 part  
sdc               8:32   0    5G  0 disk  
└─sdc1            8:33   0    2G  0 part  
sdd               8:48   0    5G  0 disk  
└─vg1-lv1       253:2    0    8G  0 lvm   
sde               8:64   0    5G  0 disk  
sdf               8:80   0    5G  0 disk  
└─vg1-lv1       253:2    0    8G  0 lvm   
sdg               8:96   0    5G  0 disk  
sdh               8:112  0    5G  0 disk  
sdi               8:128  0    5G  0 disk  
sr0              11:0    1  4.4G  0 rom   /run/media/root/CentOS 7 x86_64

总结


本篇文章带大家了解RAID的一些相关信息,并学会如何创建RAID和如何卸载RAID,了解RAID中的一些特性和用法。



相关文章
|
29天前
|
Linux
|
1月前
|
存储 运维 Linux
Linux磁盘精准缩容:操作详解与技巧
在Linux系统管理中,有效的磁盘空间优化对于维护系统性能至关重要。本文将深入探讨如何在Linux环境下安全地进行磁盘缩容,帮助你合理调整存储资源,确保系统高效运行。跟随本篇的步骤,一起优化你的Linux系统磁盘空间!
Linux磁盘精准缩容:操作详解与技巧
|
13天前
|
存储 网络协议 Linux
Linux 多种方式实现文件共享(四)iSCSI 磁盘共享服务 7
【8月更文挑战第7天】iSCSI技术是一种新储存技术, iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输.
35 5
|
13天前
|
Linux
linux磁盘管理命令
磁盘管理 查看挂载情况 lsblk -f 挂载步骤 1.虚拟机增加硬盘 2.分区命令 fdisk /dev(设备文件)/sdb m 显示命令列表 p 显示磁盘分区 n 新增分区 d 删除分区 w 写入并退出 3.格式化磁盘,并挂载 mkfs -t ext4 /dev/sdb1 mount /dev/sdb1 文件路径
|
23天前
|
消息中间件 Java Kafka
kafka Linux环境搭建安装及命令创建队列生产消费消息
kafka Linux环境搭建安装及命令创建队列生产消费消息
35 4
|
26天前
|
监控 Linux Shell
Linux系统中如何查看磁盘情况
【7月更文挑战第11天】在Linux中,`df -h`展示文件系统磁盘使用概览;`du -sh /path`估计特定目录的磁盘占用;`fdisk -l`列出磁盘分区详情;`lsblk`以树状展示块设备信息。这些命令帮助监控磁盘状态,适时管理空间。
|
2月前
|
Linux
linux查看磁盘容量和清理磁盘
linux查看磁盘容量和清理磁盘
27 5
|
2月前
|
安全 Linux
蓝易云 - Linux学习之RAID
以上就是Linux中RAID的基本概念和使用方法。
25 1
|
2月前
|
安全 Linux
蓝易云 - Linux学习之RAID
最后,你可以使用 `mdadm --detail /dev/md0`命令检查RAID状态。
27 2
|
2月前
|
监控 Linux Shell
Linux命令ionice:优化磁盘I/O优先级
`ionice`是Linux工具,用于调整进程的磁盘I/O优先级,改善系统响应。它设置三种I/O调度类:Idle(低优先级),Best-effort(默认)和Real-time(高优先级)。通过 `-c` 和 `-n` 参数分别设定调度类和优先级。示例:`ionice -c3 -n7 command`(低优先级I/O)和`ionice -c2 -p 1234`(改变PID为1234的进程为Idle类)。使用时注意平衡系统资源,避免干扰其他任务,并结合`iostat`、`iotop`监控性能。