博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RAID概述
阅读量:7085 次
发布时间:2019-06-28

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

RAID:独立磁盘冗余阵列

将多个物理磁盘整合成一个逻辑磁盘,提高读取速度并实现冗余备份的功能。对用户透明,比如/dev/sda 就是一个磁盘阵列,只是我们认为只是一块硬盘而已。

多个不同容量的磁盘也可以做raid,只要我们每块磁盘能够取相同容量空间即可;

常用的raid技术:

raid0  //至少2块磁盘,无备份,磁盘全部用于存储数据

raid1  //至少2块磁盘,有备份,磁盘一半容量用于备份

raid4  //至少3块硬盘,单独分出一块磁盘存放校验码,用于容错并恢复数据,但是此校验磁盘故障整个raid失败

raid5  //至少3块硬盘,1个校验位,有容错性,比raid4安全,并留有备用磁盘(spare disk)

raid6  //至少4块磁盘,2个校验位,容错性更强

raid1+0  //2块磁盘组成raid1,然后再以2块磁盘为单位做raid0

raid0+1  //2块磁盘组成raid0,然后再以2块磁盘为单位做raid1


RAID实现方式:

硬raid  //硬件磁盘、raid卡组成

软raid  //软件控制

本实验使用软raid完成

linux下软raid介绍:

软raid工具:mdadm

raid设备可以命名为/dev/md0、/dev/md1/、/dev/md2等

mdadm 模式 raid设备 选项 块设备  //mdadm命令格式

模式:

-C  //创建raid

-D  //显示raid信息

raid设备:/dev/md#

配置示例:

本实验以vmware虚拟机环境操作,centos6操作系统

以制作raid5为例

第1步:在虚拟机上添加sdb、sdc、sdd三块磁盘

1
2
3
4
5
6
7
[root@CentOs6 ~]
#echo '- - - ' > /sys/class/scsi_host/host2/scan  //扫描磁盘
[root@CentOs6 ~]
#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom 
/media/CentOS_6
.9_Final
sdb 8:16 0 10G 0 disk 
sdc 8:32 0 10G 0 disk 
sdd 8:48 0 10G 0 disk

第2步:使用madam创建并定义raid设备

1
2
3
4
5
6
7
8
9
[root@CentOs6 ~]
#mdadm -C /dev/md0 -a yes -l 5 -n 2 -x 1 /dev/sdb  /dev/sdc  /dev/sdd
mdadm: Defaulting to version 1.2 metadata
mdadm: array 
/dev/md0 
started.  
//
创建raid
/dev/md0
成功
-C  
//
创建raid设备
/dev/md0
-a 
yes  
//
自动创建raid设备的设备文件,
ls 
-l 
/dev/md0
-l 5  
//
创建raid等级5,即raid5
-n 2  
//
使用2块磁盘创建此raid
-x 1  
//
使用1块磁盘作为预留磁盘
最后是3个磁盘设备,前两个对应-n 2,最后一个磁盘设备对应-x 1

第3步:对raid设备进行格式化

1
2
3
[root@CentOs6 ~]
#mkfs.ext4 /dev/md0   //用ext4文件系统对raid设备格式化
[root@CentOs6 ~]
#blkid /dev/md0   //查看结果,type类型是ext4
/dev/md0
: UUID=
"8c6bf484-a8c8-4c46-9ba4-48c362597017" 
TYPE=
"ext4"

第4步:测试raid

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@CentOs6 ~]
#mkdir /mnt/md0
[root@CentOs6 ~]
#mount /dev/md0 /mnt/md0   //挂载raid设备
[root@CentOs6 ~]
#dd if=/dev/zero of=/mnt/md0/test bs=1M count=1024   
1024+0 records 
in
1024+0 records out  
1073741824 bytes (1.1 GB) copied, 2.64593 s, 406 MB
/s
//
上例测试raid5设备传输1G大小文件的时间和速率
[root@CentOs6 ~]
#dd if=/dev/zero of=test bs=1M count=1024           
1024+0 records 
in
1024+0 records out   
//
直接在root家目录测试,即普通磁盘
1073741824 bytes (1.1 GB) copied, 5.85619 s, 183 MB
/s
//
上例测试未做raid的本机普通磁盘传输1G大小文件的时间和速率
//
通过比较,raid5比普通磁盘传输效率高

第5步:检查raid设备状况(信息较多,只列出基本信息)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@CentOs6 ~]
#mdadm -D /dev/md0 
/dev/md0
:  
//
设备名
  
Creation Time : Fri Aug 11 20:37:12 2017  
//
创建时间
     
Raid Level : raid5  
//raid
级别
     
Array Size : 10477568 (9.99 GiB 10.73 GB)  
//
阵列大小
  
Used Dev Size : 10477568 (9.99 GiB 10.73 GB)  
//
使用的磁盘大小
   
Raid Devices : 2  
//
用作raid的磁盘数
  
Total Devices : 3  
//
总的磁盘数,还有1个是当作备用
    
Persistence : Superblock is persistent  
//
此raid设备的超级块是存在的
          
State : clean   
//raid
状态已经创建完成
  
Spare Devices : 1  
//
备用磁盘
     
Chunk Size : 512K  
//chunk
类似于磁盘中的block,是raid的基本容量单位
    
Number   Major   Minor   RaidDevice State
       
0       8       16        0      active 
sync   
/dev/sdb
       
3       8       32        1      active 
sync   
/dev/sdc
       
2       8       48        -      spare   
/dev/sdd
另外
[root@CentOs6 ~]
#cat /proc/mdstat    //此命令也可以查看raid摘要信息

第6步:raid5具有容错性,接下来模拟/dev/sdb磁盘故障,/dev/sdd磁盘能否磁道备份作用

1
2
3
4
5
6
7
8
9
[root@CentOs6 ~]
#mdadm /dev/md0 -f /dev/sdb  
mdadm: 
set 
/dev/sdb 
faulty 
in 
/dev/md0
[root@CentOs6 ~]
#mdadm -D /dev/md0 |tail -5
    
Number   Major   Minor   RaidDevice State
       
2       8       48        0      spare rebuilding   
/dev/sdd
       
3       8       32        1      active 
sync   
/dev/sdc
       
0       8       16        -      faulty   
/dev/sdb
##-f模拟/dev/sdb磁盘故障,结果显示确实生效
##/dev/sdd作为备份,替代/dev/sdb磁盘,rebuilding表示正在同步信息,完成后会显示sync

第7步:故障磁盘已经被替换,然后我们将其移除

1
2
3
4
5
6
7
[root@CentOs6 ~]
#mdadm /dev/md0 -r /dev/sdb  
mdadm: hot removed 
/dev/sdb 
from 
/dev/md0
[root@CentOs6 ~]
#mdadm -D /dev/md0 |tail -5
    
Number   Major   Minor   RaidDevice State
       
2       8       48        0      active 
sync   
/dev/sdd
       
3       8       32        1      active 
sync   
/dev/sdc
//
移除故障磁盘,提示hot removed,热移除,如果服务器不支持热插拔磁盘还需要提前断电。最后移除故障磁盘

第8步:实验结束,恢复磁盘

1
2
3
4
5
6
7
8
[root@CentOs6 ~]
#umount /mnt/md0/   //首先取消挂载
[root@CentOs6 ~]
#mdadm -S /dev/md0   
mdadm: stopped 
/dev/md0  
//-S 
停止raid设备
[root@CentOs6 ~]
#mdadm --zero-superblock /dev/sdb 
[root@CentOs6 ~]
#mdadm --zero-superblock /dev/sdc
[root@CentOs6 ~]
#mdadm --zero-superblock /dev/sdd  
 
//
删除3块磁盘的硬件信息
[root@CentOs6 ~]
#blkid  //最后查看块设备信息,确认raid已经被清除完毕

到此raid实验结束

本文转自  a_pan  51CTO博客,原文链接:http://blog.51cto.com/panpangao/1955616

转载地址:http://niwql.baihongyu.com/

你可能感兴趣的文章
c++中冒号(:)和双冒号(::)的用法
查看>>
dubbo工作原理
查看>>
驱动开发利器Microsoft Windows Driver Kit 7.1.0下载
查看>>
[MongoDB]索引
查看>>
maven_项目的依赖、聚合、继承
查看>>
一个C++类的注释:
查看>>
Winsock IO模型之select模型
查看>>
开发规范
查看>>
vim中tab转为空格
查看>>
Android Studio导入第三方类库的方法(转)
查看>>
union和union all的区别
查看>>
debian attempt to kill init!
查看>>
centos7下使用yum安装mysql
查看>>
jquery获取div距离顶部的距离
查看>>
CentOS使用EPEL YUM源
查看>>
大型网站架构设计及技术总结
查看>>
phpunit assert断言分类整理
查看>>
springMVC robots.txt 处理
查看>>
python2.0_s12_day19_前端模版使用
查看>>
从B树、B+树、B*树谈到R 树
查看>>