刘霞
(邢台学院数信学院,河北邢台 054001)
基于Linux的RAID技术研究
刘霞
(邢台学院数信学院,河北邢台 054001)
本文阐述了在大数据、云时代下存储技术中RAID技术的重要性,详细描述了RAID技术的基本原理,在对RAID技术进行深入研究的基础上实现了Redhat Linux下的软件RAID。
RAID;Linux;大数据;云时代
当前的计算机技术已经完全进入了大数据、云时代。新的技术也随着人们的需求不同而不断改进。对电脑配置要求越来越高,双核、四核甚至更多核心的CPU随之出现,现在处理器的性能已经很高了,但计算机整体IO(读写) 性能较弱,严重影响了计算机的性能。可能大多数人都有这样一个感觉:为什么电脑配置这么高,而复制一个1~2G的大文件等待的时间会如此之长,又或者自己辛辛苦苦保存的数据却突然都没有了,其实这就是传统的机械硬盘的劣势。为了解决人们对速度和安全需求。SSD固态硬盘孕育而生,它具有启动快,读取延迟小、写入速度快、安全性高等特点,但是价格却非常昂贵,一块较好的SSD硬盘高达几百上千元。想必大多数人会望而却步,那么就没有解决办法吗?答案是否定的。这就是本文所讨论的Linux系统下RAID磁盘阵列技术所发挥的作用。
随着存储技术的不断进步,现在的计算机存储单位已经飙升到T,但是不管磁盘多大,磁盘读写速度都相对较慢,重要数据容易丢失。对于相对富裕的用户的解决方法是,购买一块新的SSD固态硬盘取而代之,面对昂贵的价格一般用户却力不从心。那么如何在价格相对低廉,读写速度快,安全性好的前提下使用硬盘呢?所以Linux系统下的RAID技术是一种值得研究的磁盘技术。
RAID(全称为Redundent Array of Inexpensive Disks),直译为“廉价冗余磁盘阵列”,后来RAID中的字母I被改为Independent,RAID就称为“独立冗余磁盘阵列”,其实只是名称的变化,而实质性的内容并没有改变。独立冗余磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput),大幅减低数据的存取时间,有着更好的空间利用率。简单来说,RAID就是多个价格较便宜的磁盘,组合成一个容量巨大的逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID可以分为7个种类被称为RAID的级别。常用的有4类磁盘阵列(RAID 0、RAID 1、RAID 5、RAID 6) 利用的不同的技术,不同的级别针对不同的系统及应用,以解决读写素对及数据安全的问题。
2.1 RAID 0的介绍
RAID 0:至少使用2块硬盘,在读写时将数据分开读写到多块硬盘的方式来提高IO性能。如图1所示。
图1 RAID0
空间利用率:所有磁盘空间之和。
性能:所有磁盘速度之和。
冗余能力:无。
2.2 RAID 1的介绍
RAID 1:至少使用2块硬盘,写数据时将数据复制到多块硬盘。在读数据时,提高了读取速度,具有冗余性,如图2所示。
空间利用率:所有磁盘空间中最小的那块。
性能:读性能为所有磁盘速度值之和,写性能比单块硬盘弱。
冗余能力:只要有一块磁盘正常,数据就正常。也就是具有很高的冗余性。
图2 RAID1
2.3 RAID 5的介绍
RAID 5:至少三块硬盘,与RAID0类似,在读写时将数据分布式的读写到所有磁盘上,但在写数据的时候会进行奇偶校验,将校验信息保存到硬盘上,利用校验信息可以进行数据恢复,如图3所示。
图3 RAID5
空间利用率:1-1/n。
性能:读性能与RAID0接近,写性能比RAID0差
冗余能力:允许一块硬盘损坏。
2.4 RAID 6的介绍
RAID 6:至少4块硬盘,与RAID5类似,在读写时将数据分布式的读写到所有磁盘上,并且写数据的时候会进行奇偶校验,但会保存2份校验信息,冗余度比RAID5有所提升,如图4所示。
图4RAID6
空间利用率:1-2/n
性能:读性能与RAID5接近,写性能比RAID5差
冗余能力:允许2块硬盘损坏。
RAID的实现方式有两种:
软件RAID:通过系统功能或RAID软件实现RAID,没有独立硬件和接口,需要占用一定的系统资源(CPU、硬盘接口速度),并受操作系统稳定性的影响。
硬件RAID:通过独立的RAID硬件卡实现,有些主板集成RAID硬件,有些需要购买独立的RAID硬件卡,硬件RAID实现不需要占用其他硬件资源,稳定性和速度都比软件RAID要强。
3.1 RAID的创建
步骤1:根据需求创建不同级别的RAID。
创建RAID 0:mdadm-C/dev/md0 a yes-10 n2/dev/sdb/dev/sdc
创建RAID 1:mdadm-C/dev/md0 a yes-11 n2/dev/sdb/dev/sdc
创建RAID 5:mdadm-C/dev/md0 a yes-15 n3/dev/sdb/dev/sdc/dev/sdd
创建RAID 6:mdadm-C/dev/md0 a yes-16 n4/dev/sdb/dev/sdc/dev/sdd/dev/sde
步骤2:创建好RAID之后,需要创建一个配置文件。
mdadm D--scan>/etc/mdadm.conf
步骤3:挂载使用。
mkfs.ext4/dev/md0
mount/dev/md0/mnt
3.2 查看RAID信息
使用MADAM查看RAID信息
Mdadm D/dev/md0
/Proc中的文件也包含RAID信息
[root@seashorewangmnt]#cat/proc/mdstat
Personalities:[raid0]
md0:active raid0 sdc[1]sdb[0]
2095104 blocks super 1.2 512k chunks
3.3 控制RAID
使用MADAM关闭RAID,关闭前先卸载。Mdadm S/dev/md0
重启RAID Mdadm R/dev/md0
3.4 重做RAID
使用MADAM关闭将已经做RAID的磁盘卸掉,让其可以重新做RAID
mdadm--zero-superblock/dev/sdb
mdadm--zero-superblock/dev/sdc
mdadm-C md0-a yes-11-n2/dev/sdb/dev/sdc
3.5 设置故障磁盘
使用MADAM将RAID中的磁盘置为故障磁盘,设置方法为:
mdadm/dev/md0-f/dev/sdb
3.6 移除RAID里面的所有磁盘
首先停止RAID设备
mdadm-S/dev/md0
然后移除RAID里面的磁盘
mdadm--misc zero-superblock/dev/sdb
综上所述,在实际应用中,若想不增加额外花费,增加磁盘读写速度,同时又保证数据安全性的前提下Linux的RAID磁盘阵列技术是再适合不过的了。
[1]鸟哥.鸟哥的Linux 私房菜基础篇(第三版)[M].机械工业出版社,2009.7.
[2]鸟哥.鸟哥的Linux 私房菜服务器架设篇(第三版)[M].机械工业出版社,2009.7.
[3]王海宾,白尚旺,等.基于Observer 模式的AS/RS 调度系统设计与实现[J].计算机技术与发展,2009,19(3),110-113.
[4]王海宾.多车场多目标开放式物流配送车辆调度问题的研究[J].计算机测量与控制,2010,18(12):2856-2861.
TP213
A
1672-4658(2015)04-0163-03
2015-05-08
河北省教育厅自然科学指导计划项目.项目编号:Z2014140
刘 霞(1982-),女,河北邢台人,硕士研究生,讲师,研究方向:网络搭建、网络安全.