博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
raid及mdadm
阅读量:5965 次
发布时间:2019-06-19

本文共 3053 字,大约阅读时间需要 10 分钟。

raid的作用主要是用来提高磁盘的读写速率和提高数据的容错率。

常见的raid级别有:

raid0,raid1,raid5,raid10等

raid0:

理论上创建raid0至少需要两块盘,每一块盘都用做读写数据,也就是说:一个数据会拆分成多个,分别写入到每块磁盘中,读取数据的时候也会从每块盘中读取。优点:大大提高了数据的读写速率;缺点:容错率很差,只要其中一个块盘坏了,数据就不可用。    raid0的磁盘利用率为100%。    另外在实际生产环境中一块盘也能做raid0.

raid1:

创建raid1需要两块盘,其中一块盘作数据盘,用来存储数据,另一块为镜像盘,用来备份数据。优点:容错率高,允许坏掉一块盘,不会破坏数据,读取速率比一块盘要高;缺点:因为一份数据要写入两块盘,所以写入数据速率低,另外成本高,磁盘的利用率只有50%。

raid5:

创建raid5至少需要三块盘,其中两块轮流作为数据盘,用来存储数据,另外一块作为校验盘。优点:容错率高,允许坏掉一块盘,不会破坏数据,当其中一块盘坏了之后,可通过校验盘恢复破坏的数据,如果校验盘坏了可通过两块盘的数据恢复校验盘,读写性能略有提升;缺点成本较高,不能同时坏两块盘。磁盘利用率为(n-1)/n    raid6和raid5差不多,raid6至少需要4块盘,两块做校验盘。

raid10:

创建raid10至少需要四块盘,先两两做成raid1再做成raid0;磁盘利用率为1/2.
另外在生产环境中常用的还用一种jbod的直通模式,就是系统和磁盘直连,在做hadoop大数据中经常需要这种模式。
如,软raid1创建:

首先需要两块盘,这里我创建两个同样大小的逻辑分区 sdb5和sdb6.    之后将其格式化mkfs.ext4 /dev/sdb5,mkfs.ext4 /dev/sdb6    使用mdadm模块将其创建成raid1(如果没有mdadm需要安装)    创建raid1: mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb5 /sdb6            -C 创建,-a yes自动创建文件系统,-l raid级别,-n 磁盘数量    查看raid1状态:mdadm -D /dev/md0(-D 打印信息)    [root@localhost ~]# mdadm -D /dev/md0 /dev/md0:                Version : 1.2    Creation Time : Fri Aug 10 15:19:55 2018         Raid Level : raid1         Array Size : 521792 (509.65 MiB 534.32 MB)    Used Dev Size : 521792 (509.65 MiB 534.32 MB)     Raid Devices : 2    Total Devices : 2        Persistence : Superblock is persistent        Update Time : Fri Aug 10 15:19:59 2018                    State : clean  Active Devices : 2Working Devices : 2 Failed Devices : 0    Spare Devices : 0                     Name : localhost.localdomain:0  (local to host localhost.localdomain)                     UUID : fa32332d:ee855ef9:a94fe472:820b3fec                 Events : 17        Number   Major   Minor   RaidDevice State             0       8       21        0      active sync   /dev/sdb5             1       8       22        1      active sync   /dev/sdb6[root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb6[1] sdb5[0]            521792 blocks super 1.2 [2/2] [UU]unused devices: 

我们知道raid1是有一块备份盘的,允许破坏一块盘而不破坏数据,现在模拟一下,使用watch命令来监控raid的状态:watch -n 1 "cat /proc/mdstat" ,每隔一秒打印raid信息。

现在我们破坏其中一块盘:

mdadm /dev/md0 --fail /dev/sdb5可以看到其中一块盘破坏了 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb6[1] sdb5[0](F)      #F fail表示破坏            521792 blocks super 1.2 [2/1] [_U]    # 看到只有一个U upunused devices: 
使用mdadm -D /dev/md0查看 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 22 1 active sync /dev/sdb6

/dev/sdb5破坏后需要将其移除:mdadm /dev/md0 --remove /dev/sdb5

添加另一块好的盘将raid1恢复:mdadm /dev/md0 --add /dev/sdb5,恢复后

Number   Major   Minor   RaidDevice State                 2       8       21        0    active sync   /dev/sdb5                 1       8       22        1    active sync   /dev/sdb6

停止raid:mdadm -S /dev/md0

启动raid:mdadm -A /dev/md0 /dev/sdb5 /dev/sdb6

如需自动装配需要写入配置文件:mdadm -D --scan > /etc/mdadm.conf

更多的参数使用man mdadm查看,另外软raid在实际生产线上用的非常少,因为一旦系统破坏磁盘的数据就毁了,所以一般使用硬raid。

转载于:https://blog.51cto.com/13803030/2301647

你可能感兴趣的文章
sed单行处理命令奇偶行输出
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
2013 Linux领域年终盘点
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>