磁盘阵列(Redundant Arrays of Independent Disks,RAID),是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能,储存冗余数据也增加了容错。

磁盘阵列一般分两大类:一类是硬件设备组成的磁盘阵列,一种是利用软件来仿真模拟出来的。

常见RAID级别

RAID0:组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。将数据分别存储在不同的磁盘上,没有提供冗余或错误修复能力,但实现成本是最低的。

RAID1:为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,利用率为50%,成本较高。

RAID5:条带+分布校验,3块以上,利用率为(n-1)/n,有容错功能,最多可以坏一块磁盘,适合于大规模序列化读写操作。

mdadm命令

mdadm - manage MD devices aka Linux Software RAID
Currently, Linux supports LINEAR md devices,  RAID0  (striping),  RAID1(mirroring),  RAID4,  RAID5, RAID6, RAID10, MULTIPATH, FAULTY, and CON‐TAINER.
-C        ##新建
-l        ##raid级别
-a        ##表示如果目录不存在则新建
-n        ##使用磁盘的数量
-x        ##备用磁盘的数量
-s        ##扫描配置文件/etc/madam.conf
-D        ##查看RAID设备信息
-S        ##停用RAID[root@localhost ~]# fdisk -l                        ##查看磁盘信息Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors        ##磁盘vda,虚拟机操作系统磁盘
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00013f3eDevice Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20970332    10484142+  83  Linux    ##虚拟机分区Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors      ##vdb,第一块磁盘,测试用
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/vdc: 10.7 GB, 10737418240 bytes, 20971520 sectors      ##vdc,第二块磁盘,测试用
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/vdd: 10.7 GB, 10737418240 bytes, 20971520 sectors      ##vdd,第三块磁盘,测试用
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes[root@localhost ~]# cat /proc/partitions                         ##查看/proc/partitions也可以
major minor  #blocks  name253        0   10485760 vda253        1   10484142 vda1253       16   10485760 vdb253       32   10485760 vdc253       48   10485760 vdd[root@localhost ~]# fdisk /dev/vdb                ##创建分区,类型更改为RAID
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): n                          ##新建分区
Partition type:p   primary (0 primary, 0 extended, 4 free)   ##标准分区e   extended
Select (default p):                              ##默认选择标准分区
Using default response p
Partition number (1-4, default 1):               ##分区号,默认1
First sector (2048-20971519, default 2048):      ##分区起始扇区
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):     ##分区结束扇区
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is setCommand (m for help): t                          ##修改磁盘类型
Selected partition 1
Hex code (type L to list all codes): l           ##L查看所有类型0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
............................................................................
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
............................................................................
Hex code (type L to list all codes): fd        ##fd:Linux raid autodetect
Changed type of partition 'Linux' to 'Linux raid autodetect'Command (m for help): w                        ##保存退出
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
#####依次配置三块磁盘vdb、vdc、vdd

创建RAID1

[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vd{b,c,d}    ##创建RAID盘md0,-C 创建,-a 如果没有则新建
mdadm: /dev/vdb appears to be part of a raid array:                           ##-l 1,RAID1,-n 2 使用两块磁盘level=raid0 devices=0 ctime=Wed Dec 31 19:00:00 1969                      ##-x 1,一块备用盘
mdadm: partition table exists on /dev/vdb but will be lost ormeaningless after creating array
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device.  If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: /dev/vdc appears to be part of a raid array:level=raid0 devices=0 ctime=Wed Dec 31 19:00:00 1969
mdadm: partition table exists on /dev/vdc but will be lost ormeaningless after creating array
mdadm: /dev/vdd appears to be part of a raid array:level=raid0 devices=0 ctime=Wed Dec 31 19:00:00 1969
mdadm: partition table exists on /dev/vdd but will be lost ormeaningless after creating array
Continue creating array? yes                                                 ##确认创建
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.[root@localhost ~]# mdadm -D /dev/md0                      ##查看md0的信息
/dev/md0:Version : 1.2                                      ##版本Creation Time : Thu May  3 08:06:05 2018                 ##创建时间Raid Level : raid1                                    ##RAID等级Array Size : 10477440 (9.99 GiB 10.73 GB)            Used Dev Size : 10477440 (9.99 GiB 10.73 GB)Raid Devices : 2                                        ##raid磁盘两块Total Devices : 3                                        ##磁盘总数三块Persistence : Superblock is persistentUpdate Time : Thu May  3 08:08:25 2018State : clean Active Devices : 2
Working Devices : 3Failed Devices : 0Spare Devices : 1Name : localhost:0  (local to host localhost)UUID : a18c2a43:54273a69:7c12f00d:faba04d9Events : 17Number   Major   Minor   RaidDevice State0     253       16        0      active sync   /dev/vdb    ##vdb工作磁盘1     253       32        1      active sync   /dev/vdc    ##vdc工作磁盘2     253       48        -      spare   /dev/vdd          ##vdd备用磁盘
####也可以查看/proc/mdstat
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 vdd[2](S) vdc[1] vdb[0]10477440 blocks super 1.2 [2/2] [UU]unused devices: <none>
[root@localhost ~]# mdadm /dev/md0 -f /dev/vdc        ##-f,毁坏一块磁盘,模拟磁盘损坏情景
mdadm: set /dev/vdc faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0                 ##查看raid磁盘信息Rebuild Status : 2% completeName : localhost:0  (local to host localhost)UUID : a18c2a43:54273a69:7c12f00d:faba04d9Events : 25Number   Major   Minor   RaidDevice State0     253       16        0      active sync   /dev/vdb2     253       48        1      spare rebuilding   /dev/vdd    ##破坏一块磁盘,备用盘自动同步数据1     253       32        -      faulty   /dev/vdc
[root@localhost ~]# mdadm /dev/md0 -r /dev/vdc                        ##移除坏掉的磁盘
mdadm: hot removed /dev/vdc from /dev/md0
[root@localhost ~]# mdadm /dev/md0 -a /dev/vdc                        ##添加新的raid磁盘
mdadm: added /dev/vdc
[root@localhost ~]# mdadm -D /dev/md0                                 ##查看raid磁盘信息Name : localhost:0  (local to host localhost)UUID : a18c2a43:54273a69:7c12f00d:faba04d9Events : 80Number   Major   Minor   RaidDevice State0     253       16        0      active sync   /dev/vdb2     253       48        1      active sync   /dev/vdd3     253       32        -      spare   /dev/vdc              ##新备用盘添加成功[root@localhost ~]# mkfs.xfs /dev/md0                                 ##格式化磁盘阵列
meta-data=/dev/md0               isize=256    agcount=4, agsize=654840 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=0
data     =                       bsize=4096   blocks=2619360, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
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 ~]# mount /dev/md0 /mnt                                ##挂载磁盘阵列
[root@localhost ~]# cat /etc/mdstat                                    ##查看设备信息
##可以通过编辑/etc/fstab文件添加自动挂载raid分区###清理测试环境###
[root@localhost ~]# umount /dev/md0               ##解除挂载
[root@localhost ~]# mdadm -S /dev/md0             ##停用raid
mdadm: stopped /dev/md0
[root@localhost ~]# partprobe                     ##同步分区表
###删除更改过的/etc/fstab文件

Linux-mdadm命令实现软RAID相关推荐

  1. Linux上快速安装软RAID详细步骤

    物理环境:虚拟机CentOS6.4 配置:8G内存.2*2核cpu.3块虚拟硬盘(sda,sdb,sdc,sdb和sdc是完全一样的) 在实际生产环境中,系统硬盘与数据库和应用是分开的,这样有利于系统 ...

  2. linux mdadm 创建raid,Linux下用mdadm命令创建软raid5

    Linux下创建raid5卷相当方便,用自带的工具mdadm命令就可以轻松实现,下面是我在虚拟机上做的实验,只为学习操作 实验环境:RHEL5.6+三块SCIS硬盘,大小相同,都是3GB 虚拟机添加新 ...

  3. mdadm linux,mdadm命令_Linux mdadm 命令用法详解: mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。...

    mdadm是一个用于创建.管理.监控RAID设备的工具,它使用linux中的md驱动. 基本语法 : mdadm [mode] [options] mdadm程序是一个独立的程序,能完成所有软件RAI ...

  4. mdadm删除raid_软RAID管理命令mdadm详解 | 旺旺知识库

    mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区.使用C ...

  5. linux显示mdadm未找到命令,Linux mdadm命令解析

    mdadm命令解析 一,在Linux系统中目前MD(Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟设备,并且利用条带化(stripping) ...

  6. linux软raid5修复mdadm,Linux下用mdadm命令创建软RAID5

    RAID创建方法补充 RAID的创建方法:创建RAID有两个方法 , 第一种方法 :用mdadm 通过-C或--create 参数来创建RAID.这种方法 ,是把RAID信息写到每个RAID成员的 s ...

  7. linux mdadm命令详解

    目的 radi1 有磁盘sdb,sdc 准备 yum -y install mdadm # mdadm-4.1-rc1_2.el7.x86_64 磁盘分区 fdisk /dev/sdb #n-> ...

  8. linux软raid mdadm命令详讲

    软 RAID mdadm 详讲 一.RAID 介绍 RAID 0 RAID 0(在某些 LaCie 设备中也称为 FAST 模式)是速度最快的一种 RAID 模式.它 需要至少两个驱动器,并且会将数据 ...

  9. linux命令:watch 、lsmod、mdadm 创建软RAID

    lsmod 列出模块:  [root@xuelinux mnt]# lsmod Module                  Size  Used by ext2                   ...

最新文章

  1. 这只狗,其实是猫变的:“撸猫神器”StarGAN v2来了!
  2. 面试了一个32岁的大佬,明显感觉到他背过很多面试题…
  3. 商汤科技汤晓鸥:其实不存在AI行业,唯一存在的是“AI+“行业
  4. Linux PHP增加JSON支持及如何使用JSON
  5. mysql子查询缺点_[慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
  6. 电脑怎么结束进程_深刻了解windows系统的任务管理器,电脑高手的成长之路
  7. oracle 11g 数据库cmd修改用户名密码及创建用户
  8. 《云数据管理:挑战与机遇》2.3 数据库系统
  9. 三星java3倍拍照手机_全世界拍照最强的两款手机,一个是三星,一个是它
  10. @Async异步功能
  11. 颜色空间——Gamma与线性颜色空间
  12. [C++ primer]优化内存分配
  13. 小米路由器青春版(R1CL)刷breed固件
  14. 深度学习之MAML笔记
  15. windows修改用户文件夹名称 更改用户名 修改C盘Users目录下文件夹名称
  16. css折叠样式(4)——div+css布局
  17. java list取补集_Java 2 个 List 集合数据求并、补集操作
  18. 同源策略——CORS和JSONP劫持漏洞
  19. php chm中文手册201502月更新
  20. Caffe中求解器(Solver)介绍

热门文章

  1. docker build 时出现no space left on device解决方法
  2. Oracle ASMM和AMM
  3. Vue商城——首页功能
  4. 熬夜爆肝整理!史上最硬核的Mysql函数大全,还不收藏?
  5. 李宏毅2021春季机器学习课程视频笔记1:Introduction, Colab PyTorch Tutorials, HW1
  6. 杂谈:倘若flash支持JPEG XR格式?
  7. listview winfrom 表头_c# listview添加表头
  8. 青书堂电子商务概论的学习总结
  9. python豆瓣电影top250爬虫课程设计_[教程]图文:爬虫爬取豆瓣电影top250
  10. 笔记本电脑的计算机编号在哪,笔记本序列号在哪里看