Linux -RAID
转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/25/3099464.html
| 硬盘类型 | 速度 |
| SATA | <150M/s |
| SCSI | <200M/s |
| SAS | 200M/s左右 |
| SSD固态硬盘 | 500M/s左右 |
磁盘的缺陷就是:I/O性能极差,稳定性极差
RAID(Redundant Array of Independent Disks)
①速度:读写速度的提升
②磁盘使用率:多磁盘的空间使用率
③冗余性: 能够支持几块磁盘损坏而不丢失数据
RAID一共有7个级别,分别是RAID0~RAID6 ,但常用的RAID级别主要是以下四种:
①RAID0:提高读写性能
②RAID1:提高读写性能、冗余性
③RAID5:提高读写性能、冗余性(允许1块硬盘发生故障)
④RAID6:提高读写性能、冗余性(运行2块硬盘发生故障)
1.RAID0 至少需要2块硬盘

①空间利用率:所有硬盘空间之和
②性能:所有硬盘读写速度之和
③冗余能力:无
读写数据的时候是将数据分开读写到多块硬盘上,所以其读写速度是最快的,但是因为多块硬盘上保存了数据的一部分,所以当一块硬盘发生损坏时,其整个RAID的数据也就损坏了
2.RAID1 至少需要2块硬盘

①空间利用率:所有磁盘中最小的那块(其实在使用RAID时,最好每块硬盘的大小及型号都一样)
②性能:读性能是所有硬盘之和,写性能有所减弱
③冗余能力:只要有一块硬盘正常,数据就正常
同于RAID0了,RAID1在写数据时会将数据复制到多块硬盘上,即每块硬盘都会保存该数据的一个备份,在读数据时,以提高冗余性。读的时候同时从多块硬盘上读取数据,以提高读的性能
3.RAID5 少需要3块硬盘
①空间利用率:1 - 1/n
②性能:读性能接近RAID0,写性能相比RAID0要弱一些
③冗余能力:可以接受1块硬盘的损坏
RAID5与RAID0类似,读写数据的时候会将数据分布的读写到所有硬盘上。但是在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,所以即使我们其中一块硬盘发生了损坏,RAID5也能通过其他硬盘以及校验信息对数据进行恢复使用。但是如果2块或者2块以上的硬盘发生了损坏,整个数据也就损坏了。
4.RAID6 至少需要4块硬盘

RAID6与RAID5相类似,读写数据的时候会将数据分布的读写到所有硬盘上。在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,但是RAID6会比RAID5多保存一份校验信息,所以RAID6的冗余性比RAID5就有所提升,可以允许2块硬盘发生损坏。
①空间利用率:1 - 2/n
②性能:读性能接近RAID5,写性能相比RAID5还要弱一些
③冗余能力:可以接受2块硬盘的损坏
| RAID级别 | 速度 | 冗余性 | 磁盘利用率 |
| RAID 0 | 读写速度均有提升 | 0 | 所有磁盘之和 |
| RAID 1 | 读速度有提示 | n | 一个磁盘大小 |
| RAID 5 | 读写速度均有提升 | 1 | 1-1/n |
| RAID 6 | 读写速度均有提升 | 2 | 1-2/n |
Linux操作系统的软件RAID是通过mdadm 这个程序来实现的,使用Linux下的 mdadm 这个软件需要注意的几点:
①mdadm 支持的RAID级别有:RAID0、RAID1、RAID4、RAID5以及RAID6。我们看到对于常用的四种RAID级别,mdadm都能够支持
②mdadm 可以基于多块硬盘、分区以及逻辑卷来创建RAID。对于硬件实现RAID来说,就只能是基于多块硬盘了
③创建好的软件RAID对应于 /dev/mdn,n表示的是第几个RAID,如第一个创建的RAID对应 /dev/md0, 第二个创建的RAID就对应 /dev/md1,当然这个名字是可以自己随便取的
④RAID的信息保存在 /proc/mdstat 文件中,或者通过 mdadm 命令来查看
mdadm 这个命令来创建软件RAID的语法格式:
创建RAID 0: mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev sdc
创建RAID 1: mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb /dev/sdc 创建RAID 5: mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd 创建RAID 6: mdadm -C /dev/md3 -a yes -l 6 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
① -C 创建一个新的RAID 我们这里就是创建第一个RAID,名字叫做 /dev/md0
② -a 自动创建对应的设备 yes表示会自动在/dev下创建该RAID设备
③ -l 指定要创建的RAID级别 0我们这里创建RAID 0
④ -n 指定硬盘数量 2表示使用2块硬盘来创建这个RAID0,分别是 /dev/sdb 和 /dev/sdc
我们也可以使用 -x 参数来指定一个备份磁盘,备份磁盘一般不使用,当出现一个磁盘故障的时候,指定的备份磁盘可以自动上线工作:
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x /dev/sdb /dev/sdc /dev/sdd /dev/sde mdadm -D 这个命令来查看刚创建的RAID的详细信息
或者来查看 /proc/mdstat 这个文件来查看RAID的信息 RAID的信息保存到 /etc/mdadm.conf 这个文件里,这样在下次操作系统重新启动的时候,系统就会自动加载这个文件来启用我们的RAID
mdadm -D --scan > /etc/mdadm.conf 使用RAID 0这个设备来对其进行文件系统格式化和挂载使用
mkfs.ext4 /dev/md0
mount /dev/md0 /mnt 通过 mdadm -S 这命令来关闭我们的 RAID ,当然在关闭RAID之前,我们需要先卸载掉RAID
umount /mnt
mdadm -S /dev/md0 通过 mdadm --zero-superblock 这个命令即可,但是我们首先必须要停止我们的RAID,即使用 mdadm -S 命令。例如我要将刚才创建的RAID 0 的两块硬盘完全移除,就可以使用如下命令:
mdadm -S /dev/md0
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdc 试验: 创建一个 RAID 5
mdadm -C /dev/md0 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd
cat /proc/mdstat
mdadm 命令来模拟RAID故障,通过 mdadm /dev/md0 -f /dev/sdd 命令 mdadm -D /dev/md0查看信息
mdadm /dev/md0 -r /dev/sdd 来移除这块硬盘 换上新的硬盘,使用 mdadm /dev/md0 -a /dev/sde 这个命令

Linux -RAID的更多相关文章
- 【原】Linux Raid 实验
本文参照以下两个链接,将实验重做了一遍,目的就是加深印象及提升实操能力 参照链接:http://www.opsers.org/base/learning-linux-the-day-that-the- ...
- 第8天【文件系统挂载、ext文件系统及read命令、Linux RAID、lvm应用】
文件系统挂载与管理工具(01)_recv 文件系统管理: 将额外文件系统与根文件系统某现存的目录建立关联关系,进而使得此目录作为其他文件访问入口的行成为挂载: 解除此关联关系的过程 吧设备关联挂载点: ...
- linux raid技术
一.概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意.是为了提高文件在磁盘上的读写速度而研究出来的. ...
- Linux RAID 磁盘管理
Linux RAID 磁盘管理 RAID工作模式介绍:https://www.cnblogs.com/xiangsikai/p/8441440.html 本章主要讲解 Linux下 RAID5 与 R ...
- Linux raid信息 查看
Linux下查看软.硬raid信息的方法. 软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装 ...
- Linux RAID卡优化
200 ? "200px" : this.width)!important;} --> 介绍 我们的生产服务器经常会做raid存储,但是单单做了raid就能保证性能高效和数据 ...
- Linux - RAID和LVM
什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...
- Linux RAID简介
现代磁盘的缺陷:IO性能极弱,稳定性极差 RAID廉价磁盘冗余阵列:通过多磁盘并行运行来提高计算机的IO性能,在创建RAID时要求硬盘大小.品牌.型号一样 RAID可分为多种,称之为RAID级别,现代 ...
- Linux RAID磁盘阵列
RAID磁盘阵列 什么是RAID RAID是磁盘阵列的英文缩写,多块磁盘组成了一个组合,一起完成存储任务,就是磁盘阵列. RAID几种常用的类别(组合) RAID0:条带卷:最低磁盘个数2+,空间利用 ...
随机推荐
- Python的魔法方法 .
基本行为和属性 __init__(self[,....])构造函数 . 在实例化对象的时候会自动运行 __del__(self)析构函数 . 在对象被回收机制回收的时候会被调用 __str__(sel ...
- Ubuntu安装Sun JDK及如何设置默认java JDK
假设系统为Ubuntu 10.10 64位. 先来看看当前的系统默认的java版本,及提供商.通过命令java -version kemix@kemix-VB10-64:~$ jav ...
- java 基本类型
1 常量 整数 byte 1字节 8位 -27~27-1 0111 1111 ~1000 0000 short 2 16 int 4 32 long 8 64 1111 111 ...
- 【转】C++析构函数为什么要为虚函数
注:本文内容来源于zhice163博文,感谢作者的整理. 1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生. 下面转自网络:源地址 ...
- python发布文件(windows)
怎样发布文件 首先发布本地文件有一个好的用处,就是省去了朋友同import的时候还要使用sys.path,省的自己出错 1.新建文件夹d:\ tool 在的d:\tool文件夹中建立login.py ...
- for each 循环
前言 在C++中,经常用到类似 for (int i=0; i<n; i++); 这样的循环控制结构. 然而,如果要求循环变量的改变方式不是简单的+1递增,而是依次取某个数组里面的元素,那么C+ ...
- Sed 直接修改文件
sed最常用的用法莫过于替换文件,然而其默认的模式是直接输出在shell中 sed 's/Old/New/' My_File.txt 如果我们想要sed直接在文件中更改,只需要在sed后面添加 -i ...
- jQuery关于Select的操作
jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...
- 2003服务器断开rdp后会自动注销。
开始-运行-gpedit.msc-计算机配置-管理模板-Windows Components-Terminal Services-Sessions-Set time limit for disconn ...
- xampp改到phpmyadmin的root密碼無法登錄
open /Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php $cfg['Servers'][$i]['auth_type'] = 'co ...