使用RAID进行磁盘管理
转自http://www.linuxprobe.com/chapter-06/
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,作用是防止硬盘物理损坏以及增加存储设备的吞吐量。
RAID常见的组合有0、1、5和10:
- RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。

将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
- RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。

实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
- RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。

如上图所示"parity"块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。- RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。

继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
- RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
常见的做软RAID的工具是mdadm。下面就简单写几个实用的小例子快速上手这个命令。
1.配置RAID10
①在虚拟机上给主机分配4块1G的磁盘(为了实验磁盘就不分配大的了)

②创建raid10
mdadm -Cv /dev/md1 -n4 -l 10 -a yes /dev/sd{b..e}
-C是创建
-v是显示过程
/dev/md1 是做成的raid磁盘名
-n 是使用磁盘数
-l是raid级别
-a 检查raid名称
/dev/sd{b..e}是之前分配的四块盘mkfs.ext4 /dev/md1
partprobe /dev/md1 #内核同步磁盘
③挂载raid磁盘
mkdir /RAID
mount /dev/md1 /RAID
此时一个raid10的磁盘创建挂载已经完成

④开机自动挂载
在这里不是很建议用设备名写入fstab表中,因为我之前使用的设备名md1结果开机md1在dev目录下没了,变成md127了,具体原因不明,因此可以使用UUID
使用blkid获取UUID

echo “UUID=d3986c95-11d9-4afa-935e-bd4e637f4754 /RAID ext4 default 0 0” >> /etc/fstab
⑤查看RAID磁盘详细信息
mdadm -D /dev/md1

⑥模拟一块硬盘损坏
mdadm /dev/md1 -f /dev/sdb
#-f将sdb移出阵列,此时sdb状态是被移除,通过mdadm -D /dev/md1查看sdb是失败状态
此时硬盘状态是坏的,你需要将它从取出
mdadm /dev/md1 -r /dev/sdb
换上同样大小的硬盘后执行
mdadm /dev/md1 -a /dev/sdb
即可将sdb重新加入阵列(如果磁盘真有问题必须要先-r移除才能-a添加)
重新挂载
mount /dev/md1 /RAID

⑦停止阵列设备
umount /RAID #必须先卸载
mdadm -S /dev/md1
此时dev目录下没有md1了,若想恢复,目前我使用的方法是
mdadm -A /dev/md1 /dev/sd{b..e}
使用RAID进行磁盘管理的更多相关文章
- RAID与磁盘管理之——综合应用
为了实现磁盘的管理和RAID的综合,现将四块硬盘组合成一个RAID10,并在此基础之上创建物理卷.卷组.逻辑卷,实现在线扩容,最后挂载使用. 其中也部分包含了swap分区的创建和使用. 1.根据lin ...
- 每天进步一点点——Linux磁盘管理LVM与RAID
转载请注明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,仅仅能通过加入硬盘. ...
- linux磁盘管理系列-软RAID的实现
1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...
- linux磁盘管理系列二:软RAID的实现
磁盘管理系列 linux磁盘管理系列一:磁盘配额管理 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...
- Linux RAID 磁盘管理
Linux RAID 磁盘管理 RAID工作模式介绍:https://www.cnblogs.com/xiangsikai/p/8441440.html 本章主要讲解 Linux下 RAID5 与 R ...
- liunx 磁盘管理命令记录
Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...
- LVM磁盘管理
http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html Linux LVM硬盘管理及LVM扩容 LVM磁盘管理 一.LVM简介... ...
- linux磁盘管理系列-LVM的使用
LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...
- Linux第七节随笔-下磁盘管理
baidubaike 磁盘管理物理磁盘---> RAID--->文件系统--->用户使用LVM概念简述Raid详细解说 0 ...
随机推荐
- 使用putty上传下载文件(pscp)
putty作为ssh工具开源免费,简单易用.可是如何使用它来上传和下载文件呢?答案在于pscp. pscp下载地址:http://www.chiark.greenend.org.uk/~sgtatha ...
- Poi写文件时报java.io.IOException: Read error
使用POI报表时不停的报java.io.IOException: Read error,看网上是说关闭了InputStream所导致的,由于我的InputStream是读取和写入都是用的同一个,所以就 ...
- POJ 3080 多个串最长公共子序列
求多个串最长公共子序列,字典序最小输出.枚举剪枝+kmp.比较简单,我用find直接查找16ms #include<iostream> #include<string> #in ...
- 使用javaconfig方式配置spring工程的单元测试
添加@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {MoveModelSpringTestConfig ...
- Google解决跨域
1.添加 --disable-web-security --user-data-dir=D:\tmp 2.在D的根目录新建tmp文件夹
- IOC基本理解
什么是IOC? IOC全称为控制反转(Inversion Of Control),别名依赖注入(Dependency Injection). 控制反转即指我们获取依赖的方式发生了反转. 假设存在如下情 ...
- Croc Champ 2013 - Round 2 C. Cube Problem
问满足a^3 + b^3 + c^3 + n = (a+b+c)^3 的 (a,b,c)的个数 可化简为 n = 3*(a + b) (a + c) (b + c) 于是 n / 3 = (a + b ...
- MFC中的几种播放声音的方法
一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数.利用这些函数可以方便地播放声音.最简单的播放声音方法就是直接调用VC++中提供的声音播放函 数BOOL s ...
- 推荐几款屏幕录制工具(可录制GIF)
我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...
- android 按两次物理返回键退出程序
<?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...