RAID实战
来源:互联网 发布:监控器无网络视频 编辑:程序博客网 时间:2024/06/18 09:57
RAID简介:
RAID全称为独立磁盘冗余阵列(Rdeundant Array ofIndependent Disks),基本思想就是把 多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区, 因此操作系统只会把它当做一个硬盘。
RAID分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。 在实际应用中,可以依据自己的实际需求选择不同的RAID方案。
RAID方案 :
RAID0:
RAID0(条带化(Striping)存储)将数据分段存储于各个磁盘中,读写均可以并行处理。因此其读写速率为单个磁盘的N倍(N为组成RAID0的磁盘个数),但是却没有数 据冗余,单个磁盘的损坏会导致数据的不可修复。
RAID1:
镜像存储(mirroring),没有数据校验。数据被同等地写入两个或多个磁盘中,可想而知,写入速度会比较 慢,但读取速度会比较快。读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢 的磁盘。
RAID5:
奇偶校验(XOR),数据以块分段条带化存储。校验信息交叉地存储在所有的数据盘上。
RAID 5可以理解为是RAID 0和RAID 1的折中方案。
RAID0+1:
RAID0和RAID1的结合。先做条带(0),再做镜像(1)。
RAID1+0:
先做镜像(1),再做条带(0)。
实验环境:
一台虚拟机 :centos6.3 x86 mdadm
四块磁盘 :sdb、sdc、sdd、sde
Mdadm命令详解:
基本语法 : mdadm [mode] [options] <disk device>
[mode] 有7种:
Assemble:将以前定义的某个阵列加入当前在用阵列。
Build:Build alegacy array ,每个device 没有superblocks
Create:创建一个新的阵列,每个device 具有 superblocks
Manage: 管理阵列,比如add 或 remove
Misc:允许单独对阵列中的某个device 做操作,比如抹去superblocks 或 终止在用的阵列。
Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态
Grow:改变raid 容量或阵列中的 device 数目
[options]:
-A, --assemble:加入一个以前定义的阵列
-B, --build:Builda legacy array without superblocks.
-C, --create:创建一个新的阵列
-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分
-D, --detail:打印一个或多个 md device的详细信息
-E, --examine:打印device 上的 md superblock 的内容
-F, --follow, --monitor:选择 Monitor 模式
-G, --grow:改变在用阵列的大小或形态
-h, --help:帮助信息,用在以上选项后,则显示该选项信息
--help-options
-V, --version
-v, --verbose:显示细节
-b, --brief:较少的细节。用于 --detail 和 --examine 选项
-f, --force
-c, --config= :指定配置文件,缺省为 /etc/mdadm/mdadm.conf
-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf
create 或 build 使用的选项:
-c, --chunk=:Specify chunk size ofkibibytes. 缺省为64.
--rounding=: Specify rounding factor forlinear array (==chunk size)
-l, --level=:设定 raid level.
--create可用:linear,raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.
--build可用:linear,raid0, 0, stripe.
-p, --parity=:设定raid5 的奇偶校验规则:eft-asymmetric, left-symmetric,right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric
--layout=:类似于--parity
-n, --raid-devices=:指定阵列中可用 device数目,这个数目只能由--grow 修改
-x, --spare-devices=:指定初始阵列的冗余device数目
-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数
--assume-clean:目前仅用于 --build 选项
-R, --run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。
-f, --force:通常mdadm不允许只用一个device 创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。
-a, --auto{=no,yes,md,mdp,part,p}{NN}:
实验1——RAID0:
1. 对RAID磁盘分区,指定分区类型为fd。
2. 重读分区表
# partprobe
3. 开始创建RAID0
# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sd[b,c]1
4. 查看RAID0状态
说明:
Raid Level : 阵列级别;
Array Size : 阵列容量大小;
RaidDevices : RAID成员的个数;
TotalDevices : RAID中下属成员的总计个数,因为还有冗余硬盘或分区,也就是spare,为了RAID的正常运珩,随时可以推上去加入RAID的;
State:RAID状态。三个状态,clean表示正常,degraded表示有问题,recovering表示正在恢复或构建;
ActiveDevices : 被激活的RAID成员个数;
WorkingDevices : 正常的工作的RAID成员个数;
FailedDevices : 出问题的RAID成员;
SpareDevices : 备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;
UUID : RAID的UUID值,在系统中是唯一的;
5. 创建/etc/mdadm.conf配置文件,为了系统启动能自动加载RAID。
#echo DEVICE /dev/sdb1 /dev/sbc1 > /etc/mdadm.conf
#mdadm -Ds >> /etc/mdadm.conf
6. 格式化RAID与挂载
# mkfs.ext4 /dev/md0
#mkdir -p /data
#mount /dev/md0 /data
7. 查看磁盘状态
#df -h
8. 写入/etc/fstab
#vi /etc/fstab
/dev/md0 /raid0 ext4 defaults 0 0
9. 磁盘性能对比测试
RAID——写速度:
在挂载目录内写入一个文件,测试写入速度,文件大小最好大于内存的数倍,以防止内存把文件给缓存了。
#timedd if=/dev/zero of=/data/test bs=4k count= 1310720 conv=fdatasync
命令解释:写入5G文件,写入到/data/下命名为test,测试写入速度。
普通(根目录)——写速度:
#time dd if=/dev/zero of=/test bs=4k count= 1310720 conv=fdatasync
同上,写入到根目录
RAID——读取速度:
#time dd if=/data/testof=/dev/null bs=4k count=1310720
普通(根目录)——读取速度:
#time dd if=/testof=/dev/null bs=4k count=1310720
RAID——读写速度:
#time dd if=/data/test of=/data/test bs=4k count= 1310720conv=fdatasync
普通(根目录)——读写速度:
#time dd if=/test of=/test bs=4k count=1310720 conv=fdatasync
实验2——RAID1:
1. 对RAID磁盘分区,指定分区类型为fd。
2. 重读分区表
# partprobe
3. 建立RAID1
# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd[d,e]1
4. 查看RAID1状态
# cat /proc/mdstat
# mdadm -D /dev/md1
5. 创建/etc/mdadm.conf配置文件,为了系统启动能自动加载RAID。
#echo DEVICE /dev/sdd1 /dev/sbe1 > /etc/mdadm.conf
#mdadm -Ds >> /etc/mdadm.conf
6. 格式化且挂载
#mkfs.ext4 /dev/md1
#mkdir -p /raid1
#mount /dev/md0 /raid1
7. 写入/etc/fstab
/dev/md1 /raid1 ext4 defaults 0 0
8. 测试。和RAID0一样,这里就不详细介绍了。
实验3——RAID5:
三块活动盘,一块热备盘。
1. 对RAID磁盘分区,指定分区类型为fd。
2. 重读分区表
# partprobe
3. 建立RAID5
# mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sd[b,c,d,e]1
4. 查看RAID5状态
# cat /proc/mdstat
# mdadm -D /dev/md5
5. 创建/etc/mdadm.conf配置文件,为了系统启动能自动加载RAID。
#echo DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 > /etc/mdadm.conf
#mdadm -Ds >> /etc/mdadm.conf
6. 格式化且挂载
#mkfs.ext4 /dev/md1
#mkdir -p /raid1
#mount /dev/md0 /raid1
7. 写入/etc/fstab文件
8. 性能测试和RAID0一样测试,这里不详细讲解。
9. 模拟磁盘损坏
# mdadm /dev/md5 -f /dev/sdd1
10. 查看RAID5状态
# cat /proc/mdstat
# mdadm -D /dev/md5
11. 移除损坏硬盘
# mdadm /dev/md5 -r /dev/sdd1
12. 再次查看状态
13. 再次添加新硬盘作为热备盘
# mdadm /dev/md5 -a /dev/sdd1
14. 如果RAID5空间不足,可以添加新硬盘扩容。
#mdadm /dev/md5 -a /dev/sdf1
把一个热备盘改为活动盘(由3个活动盘扩展到4个)
#mdadm --grow /dev/md5 --raid-devices=4
查看状态(转化中—转化完成)
# cat /proc/mdstat
# mdadm -D /dev/md5
查看RAID5大小(没有变化)
#df -h
调整磁盘大小
#resize2fs /dev/md5
再次查看(完成扩容)
#df -h
实验4——RAID1+0:
先创建2个RAID1,在把两个RAID1作为RAID0的材料,创建RAID0.
实验步骤上同。
- RAID实战
- linux 软raid实战
- 实战NF4 RAID的组装[转]~~
- RAID
- RAID
- RAID
- raid
- RAID
- RAID
- RAID
- RAID
- RAID
- RAID
- raid
- RAID
- RAID
- RAID
- raid
- C++ 11/14 2
- win7 cmd 进入指定目录下
- 两数组的交
- leetcode-48. Rotate Image
- Python版本升级
- RAID实战
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 05 春申门下三千客,小杜城南五尺天
- leetcode 476 Number Complement
- ROC曲线/AUC值/PR曲线
- Ignatius and the Princess IV HDU
- Android中使用SVG
- 第4章 简单的4位计算机设计及实现
- Hbase结合Mapreduce示例