一、Raid粗略介绍

1、RAID的名称:独立冗余磁盘阵列
2、RAID的级别(RAID level):该级别仅代表硬盘组织方式不同,没有上下之分。
3、RAID组合时候要考虑以下几点:
(1)数据存储、使用的速度
(2)数据的可用性

4、RAID中常用的存储数据的方式
(1)镜像存储数据
(2)条带技术存储数据
校验码技术的粗略例子:如果一块硬盘坏了,可由其他硬盘上的校验码运算后得到其丢失数据。
如果有两块硬盘坏了,校验码运算后得不出丢失的数据。

5、可以将镜像技术和条带技术结合

二、RAID级别及性能分析

一、RAID级别
1、RAID 0:使用条带技术
2、RAID 1:使用镜像技术
3、RAID 0+1:先使用条带技术后用镜像技术
4、RAID 1+0:先使用镜像技术和条带技术
5、RAID 5:多块硬盘间轮流作为校验盘
6、JBOD

二、RAID不同级别的性能分析

注:n为硬盘数,s为一块硬盘的存储空间能力

1、RAID 0
(1)性能表现:读,写速度提升。
(2)冗余能力(容错能力):无
(3)空间利用率:n*s
(4)至少使用2块硬盘

2、RAID 1
(1)性能表现:写性能下降,读性能提升
(2)冗余能力(容错能力):有
(3)空间利用率:1/2
(4)至少使用2块硬盘

3、RAID 10
(1)性能表现:读写性能提升
(2)冗余能力(容错能力):有
(3)空间利用率:1/2
(4)至少使用4块硬盘

4、RAID 01
(1)性能表现:读写性能提升
(2)冗余能力(容错能力):有
(3)空间利用率:1/2
(4)至少使用4块硬盘

5、RAID {3,4,5}
(1)性能表现:读写性能提升
(2)冗余能力(容错能力):有
(3)空间利用率:(n-1)/n (有一块硬盘作为条带技术的校验盘)
(4)至少使用3块盘

6、RAID 50
(1)性能表现:读写性能提升
(2)冗余能力(容错能力):有
(3)空间利用率:(n-2)/n (有两块硬盘作为条带技术的校验盘)
(4)至少使用6块硬盘

7、JBOD
(1)性能表现:读写性能无提升
(2)冗余能力(容错能力):无
(3)空间利用率:100%
(4)至少使用2块硬盘

三、RAID的分类

RAID可分为两类:硬件RAID软件RAID

1、硬件RAID
(1)可在BIOS中配置硬件RAID
(2)操作系统要识别RAID卡,否则要先安装驱动才能识别RAID。

2、软件RAID
(1)内核中有一个模块叫多设备md:multi disks(多磁盘),工作时,可以度曲配置文件,配置文件可以明确标明哪几块盘作RAID。
(2)md先模拟一个逻辑RAID(也是软件RAID)
(3)软件RAID是在用户和硬件设备之间,RAID上又新增了一个层次,模拟出一个逻辑RAID设备。
(4)该逻辑RAID对用户空间进程看来就是RAID,对内核看来就是两块磁盘。
(5)若操作系统坏了,软RAID存储的相应的数据不能被访问。
(6)RAID模块要求被模拟成软件RAID的磁盘设备必须要标识为内核可识别的类型(Linux raid auto类型)。
(7)该类型为Linux raid auto:在磁盘上存一些元数据,重装系统后重新扫描磁盘组合RAID。

四、如何创建并管理软件RAID

1、mdadm命令
(1)全称:md admin
(2)mdadm在Linux中支持将任何块设备做成RAID,在为同一块磁盘的不同分区做RAID没有任何意义。

2、mdadm命令的模式
(1)创建模式
(2)管理模式
(3)监控模式
(4)增长模式
(5)装配模式

3、对应模式的对应选项
(1)一般格式:
mdadm [mode] raiddevice [options]
mode:模式
raiddevice:raid设备
options:选项
component-devices:组成设备

(2)进入各个模式的选项
创建模式:-C
管理模式:-add 或者 –del
监控模式:-F
增长模式:-G
装配模式:-A

(3)创建模式下的专用选项
①指定RAID级别:-l

②指定设备个数:-n #

③是否自动创建设备文件:-a {yes|no}

④指定创建RAID设备的数据块(CHUNK)大小(默认64K):
-c #unit

⑤指定空闲盘个数:-x #

⑥创建一个2G,级别为0的RAID例:

# fdisk /dev/sda
分一个1G的分区,设备为/dev/sda6
修改其类型为Linux raid auto# fdisk /dev/sdb
分一个1G的分区,设备为/dev/sdb1
修改其类型为Linux raid auto# protprobe /dev/sda
# protprobe /dev/sdb
更新分区表# cat /proc/partitions
查看分区是否建立,大小是否正确# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda6 /dev/sdb1 # cat /proc/mdstat
查看当前系统上所有处于启动状态的RIAD设备的状态,看raid设备是否创建成功。# mke2fs -jv -E stride=16 -b 4096 /dev/md0
格式化raid设备,使其能挂载。
-E stride=16  是指定桥带为16,数据块大小为:16*4=64K
-b 4096 指定块大小为4byte。    # mkdir /mnt/md0
# mount /dev/md0 /mnt/md0
将md0设备挂载后即可使用

⑦创建一个大小为2G的RAID 1例:

# fdisk /dev/sdb2
分一个1G的分区,设备为/dev/sdb2
修改其类型为Linux raid auto# fdisk /dev/sdc1
分一个1G的分区,设备为/dev/sdc1
修改其类型为Linux raid auto# protprobe /dev/sdb
# protprobe /dev/sdc
更新分区表# cat /proc/partitions
查看分区是否建立,大小是否正确# mdadm -C /dev/md1 -a yes -l 0 -n 2 /dev/sdb2 /dev/sdc1 -x 1 /dev/sdc2
-x指定空闲磁盘格式,若有一块磁盘坏了,空闲磁盘可以作补充# cat /proc/mdstat
查看当前系统上所有处于启动状态的RIAD设备的状态,看raid设备是否创建成功。# mke2fs -jv -E stride=16 -b 4096 /dev/md1
格式化raid设备,使其能挂载。
-E stride=16  是指定桥带为16,数据块大小为:16*4=64K
-b 4096 指定块大小为4byte。# mkdir /mnt/md1
# mount /dev/md0 /mnt/md1
将md1设备挂载后即可使用

4、查看RAID阵列的详细信息
(1)格式:mdadm -D /dev/md#
或者:mdadm –detail /dev/md#
(2)例:

# mdadm -D /dev/md0
查看md0阵列的详细信息。# mdadm --detail /dev/md1
查看md1阵列的详细信息。

5、模拟磁盘损坏
(1)格式:mdadm /dev/md# -f /dev/sd[a-z]#
或者:mdadm /dev/md# –fail /dev/sd[a-z]#
(2)例:

# mdadm /dev/md1 -f /dev/sdc1
将/dev/sdc1磁盘损坏# mdadm -D /dev/md1
查看磁盘信息此时发现,
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
证明模拟磁盘损坏成功,而空闲磁盘补充已损坏的磁盘位置。

6、移除已损坏的磁盘
(1)格式:mdadm /dev/md# -r /dev/sd[a-z]#
或者:mdadm /dev/md# –remove /dev/sd[a-z]#
(2)例:

# mdadm /dev/md1 --remove /dev/sdc1
移除刚刚模拟损坏的/dev/sdc1
# mdadm -D /dev/md1
查看磁盘信息,看是否移除成功。

7、提供空闲磁盘作备用
(1)格式:mdadm /dev/md# -a /dev/sd[a-z]#
或者mdadm /dev/md# -add /dev/sd[a-z]#
(2)例:

# mdadm /dev/md1 -a /dev/sdd1
# mdadm -D /dev/md1         检查是否添加备用磁盘

8、停止RAID阵列
(1)格式:mdadm -S /dev/md#
或者:mdadm –stop /dev/md#

(2)用命令rm /dev/md#把设备文件删除,整个阵列就会消失。
(3)例:

# mdadm -S /dev/md1
# cat /proc/mdstat          查看md1阵列是否被停用

9、把阵列重新装配启动
(1)格式:
mdadm -A /dev/md1 /dev/sd[a-z]# /dev/sd[a-z]#
(2)例:

# mdadm -A /dev/md1 /dev/sdb2 /dev/sdc2 /dev/sdd1
# mdadm -D /dev/md1
检查是否重新装配成功
# cat /proc/mdstat
检查重新装配的RAID是否启动成功

(3)最好将当前RAID信息保存至配置文件,以便以后进行装配。
①例:

# mdadm -D --scan > /etc/mdadm.conf
# mdadm --stop /dev/md1
停用md1 RAID阵列。
# mdadm -A /dev/md1
不用指定那个磁盘直接重新装配即可
# cat /proc/mdstat
检查即可

所以尽量在每次创建RAID的时候更新一下/etc/mdadm.conf配置文件。

10、创建一个2G的RAID5思路
(1)思路:2G的RAID 5由4个1G磁盘组成,其中3个1G磁盘作为数据盘(其中一个为校验盘),由1个1G磁盘用作空余备用盘。
(2)流程:

# 创建4个1G的磁盘,类型为Linux raid autodetect
# mdadm -C /dev/md2 -l 5 -n 3 /dev/sdb7 /dev/sdc3 /dev/sdd3
创建RAID  5
# mdadm /dev/md2 -add /dev/sde1
将sde1作为备用磁盘

①创建RAID 5

②格式化RAID 5 阵列

③检查RAID 5 阵列是否正确创建

以上是我个人的一些总结和看法,如有错误,欢迎大家指出,谢谢大家。

Raid和mdadm命令相关推荐

  1. 第十六章、Raid及mdadm命令

    第十六章.Raid及mdadm命令 10_01_Raid及mdadm命令之一 (17 - $) 各种接口的速率: IDE: 133Mbps SATA: 300Mbps, 600Mbps, 6Gbps ...

  2. md0和md1linux软raid,linux下Raid及mdadm命令详解

    linux下Raid及mdadm命令详解 1.RAID级别:仅代表磁盘组织方式不同,没有高低之分: Raid常用种类:raid0,raid1,raid5,raid10,raid01 jbod:叠加硬盘 ...

  3. Raid及mdadm命令

    双方都遵循的某种联系的方式成为法则 将多个硬盘组合成一个磁盘的技术是Raid 级别不能表示性能的优越性,只是代表组合方式的不同 0:调带 读写性能提升,没有冗余能力,空间利用率ns 1:镜像 读性能提 ...

  4. linux 软raid命令,mdadm命令 – 管理linux软RAID

    mdadm命令是multiple devices admin的简称,它是linux下的一款标准的软件 RAID管理工具,可以管理linux软RAID,比如创建.调整.监控RAID. mdadm命令能够 ...

  5. linux软raid mdadm命令详讲

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

  6. 在Linux中配置软 RAID,使用mdadm命令创建RAID5, RAID设备的数据恢复

    1.在Linux中配置软 RAID RAID(Redundant Array of Inexpensive Disks,独立磁盘完余阵列)用于将多个廉价的小型磁盘驱动器合并成一个磁盘阵列,以提高存储性 ...

  7. linux mdadm 源码,mdadm命令_Linux mdadm 命令用法详解: mdadm 标准的软件 RAID 管理工具...

    mdadm 命令 基本语法mdadm [mode] [options] [mode] 7种Assemble:将以前定义的某个阵列加入当前在用阵列. Build:Build a legacy array ...

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

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

  9. linux raid和mdadm,linux下的raid及mdadm的命令详解

    RAID被称为廉价的冗余磁盘阵列,这是由于在早期的磁盘很小,性能差,易损坏.所以RAID主要的做法就是把多个便宜的小磁盘组合到一个磁盘组,使性能和磁盘容量都可以达到相当于昂贵的磁盘性能. 根据RAID ...

最新文章

  1. 扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
  2. java jdbc in list_javaweb_JDBC
  3. 根据Explain结果中的key_len判断MySQL联合索引中实际用到的索引字段
  4. 多线程相关-ThreadPoolExecutor
  5. 推荐 | 8 个 SpringBoot 精选项目
  6. Sentinel(十四)之控制台
  7. Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...
  8. Winhex数据恢复笔记(五)
  9. 语音识别系统报告_2018-2024年中国语音识别系统行业市场发展格局及投资价值评估研究报告_中国产业信息网...
  10. 计算机导论以python为舟_计算机科学导论
  11. servlet异步请求
  12. python MAC地址查询
  13. 2012 ServerStandardEval 激活
  14. 【LTspice】010 串联谐振电路
  15. arduino超声波测距接线图详细_Arduino:超声波传感器+测距
  16. 奥斯汀大学计算机专业怎么样,德克萨斯大学奥斯汀分校计算机工程排名
  17. java语言,MP4视频文件合并功能
  18. Jenkins - 插件安装失败处理方法
  19. 今天开始做战斗,回合制战斗代码实现第一篇,从头开始,简单的2d回合制游戏
  20. opencv学习-高斯金字塔和拉普拉斯金字塔

热门文章

  1. 巨控GRM530远程模块与西门子上-300PLC远程上下载程序,远程在线调试程序
  2. 如何在sql语句里添加注释
  3. 国内知名的信息与通讯调查研究咨询公司情况
  4. 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/ch
  5. SpringBoot学习笔记(六)——Redis数据库
  6. STM32理论 —— DAC、DMA
  7. 东辉职校计算机专业录取分数线,2016年上海东辉职校录取分数
  8. 中国城市码cityCode映射
  9. 美的智能家电搭载华为鸿蒙系统产品将大批量上市;蔡天乐将出任麦德龙中国总裁 | 美通企业日报...
  10. 黑苹果驱动板载intel蓝牙