Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319040
  • 博文数量: 66
  • 博客积分: 2369
  • 博客等级: 大尉
  • 技术积分: 635
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-20 17:10
文章分类

全部博文(66)

文章存档

2020年(2)

2017年(3)

2016年(1)

2015年(1)

2013年(5)

2012年(12)

2011年(20)

2010年(1)

2009年(5)

2008年(15)

2007年(1)

分类: LINUX

2013-05-16 00:01:32

本文转自:http://blog.163.com/yinlong_bgp/blog/static/21733277200763182134646/
RAID介绍

RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks),从Linux 2.4内核开始,Linux就提供软件RAID,不必购买昂贵的硬件RAID控制器和附件(一般中、高挡服务器都提供这样的设备和热插拔硬盘),就能极大地增强Linux磁盘的I/O性能和可靠性。同时,它还具有将多个较小的磁盘空间组合成一个较大磁盘空间的功能。这里的软件RAID不是指在单个物理硬盘上实现RAID功能。为提高RAID的性能,最好还是使用多个硬盘,使用SCSI接口的硬盘效果会更好。
设置软件RAID,首先需要查看linux系统中是否有raid软件工具包。可以用

rpm -qil raidtools      
rpm -qifl /sbin/mdadm

命令查看相关raid命令。如果没有,可以从 中下载(现在是raidtools-1.00.3.tar.gz版本),然后解压安装:

#tar –zxvf raidtools-1.00.3.tar.gz
#cd
raidtools-1.00.3
#
./configure
# make
# make install

这样raidtools-1.00.3就安装好了,从而可以随时安装使用RAID。在Linux系统中,主要提供RAID 0RAID 1RAID 5三种级别的RAID方法。

l          RAID 0又称为StripeStriping,中文译为集带工作方式。它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读写,从而提高数据的读写速度。RAID 0另一目的是获得更大的单个磁盘容量。

l          RAID 1又称为MirrorMirroring,中文译为镜像方式。这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。

l         RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n1块硬盘的容量,存储空间利用率非常高。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。RAID 5具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛。

Linux软件RAID命令mdadm的六种模式

mdadm 6种模式,前两种模式:CreateAssemble用于配置和激活阵列;Manage模式用于操作在活动阵列中的设备;Follow Monitor模式允许管理员对活动阵列配置事件提醒和动作;Build模式用于对旧阵列使用旧版本的md驱动;还有Grow模式可以扩展阵列;剩下的是 Misc模式,它包括对多种内部的任务和没有指定特殊模式的一些操作。

具体操作

本文主要通过设置RAID 1介绍一下软件raid的一些工具命令。现介绍如下:

1.       分配磁盘,并对磁盘进行分区
fdisk –l;
fdisk /dev/sdb
a.
查看分配磁盘

Linux软件RAID技术 - inlone - 风云之色
b.
对两磁盘进行分区
Linux软件RAID技术 - inlone - 风云之色Linux软件RAID技术 - inlone - 风云之色

2.       对两盘建立RAID 1,做文件系统
mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1
   
(即mdadm --creat --verbose /dev/md0 --level=0 --raid-device=2 /dev/sdb1 /dev/sdc1 level就是raid级别,--raid-device为参与磁盘数量)
mkfs.ext3 /dev/md0

Linux软件RAID技术 - inlone - 风云之色

3.       查看/dev/md0状态及信息
lsraid -a /dev/md0
cat /proc/mdstat
mdadm -D --scan /dev/md0

Linux软件RAID技术 - inlone - 风云之色

4.       配置/etc/mdadm.conf文件
mdadm不采用/etc/mdadm.conf作为主要配置文件,它可以完全不依赖该文件而不会影响阵列的正常工作。 该配置文件的主要作用是方便跟踪软RAID的配置。对该配置文件进行配置是有好处的,但不是必须的。推荐对该文件进行配置。
通常可以这样来建立:
mdadm -Ds >> /etc/mdadm.conf

mdadm --detail --scan >> /etc/mdadm.conf

5.       测试raid性能
dd命令模仿磁盘突然损坏,删除该盘,添加一块新盘,查看镜像恢复
dd if=/dev/zero of=/dev/sdb bs=512k count=1
或用mdadm命令remove其中一个磁盘mdadm /dev/md0 –remove /dev/sdb1
fdisk –l

mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1   #point /dev/sdb1 is bad disk and remove it
mdadm /dev/md0 –add /dev/sdb1
cat /proc/mdstat
dd
命令破坏文件系统

Linux软件RAID技术 - inlone - 风云之色
remove bad disk

Linux软件RAID技术 - inlone - 风云之色
更换新盘,镜像恢复数据
Linux软件RAID技术 - inlone - 风云之色

6.       停止md0
mdadm -S /dev/md0
停止指定阵列,并释放磁盘(--stop
必须先umount md0,另外注意,停止raid后,原组成阵列的磁盘将处于空闲状态,一旦误操作这些磁盘,将不能再重启激活原阵列。

Linux软件RAID技术 - inlone - 风云之色

7.       激活md0
mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1

Linux软件RAID技术 - inlone - 风云之色

8.       监控
FollowMonitor状态下,可以使用mdadm对阵列进行监控,例如当阵列出现问题的时候,发送邮件给管理员;或者当磁盘出现问题的时候进行自动的磁盘替换。
nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &
上述定义:没300秒监控一次,当阵列出现错误,会发送邮件给sysadmin用户。由于monitor启动后是不会自动退出的,所以需要加上nohup&,使之持续在后台运行。
Follow模式下,是允许共享冗余磁盘的。
例如,我们有两个阵列:/dev/md0/dev/md1,而/dev/md0里面有一个spare磁盘。当我们在/etc/mdadm.conf中定义类似:
DEVICE /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database
UUID=410a299e:4cdd535e:169d3df4:48b7144a
ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database
UUID=59b6e564:739d4d28:ae0aa308:71147fe7
也就是定义一个spare-group组。并运行上面的monitor模式命令。这样,当组成/dev/md1的其中一个磁盘出现问题的时候,mdadm会自动从/dev/md0上移走spare磁盘,并加入/dev/md1中,而不需要人工干预。(请注意,能实现这样工作的,只有在该阵列支持冗余的情况下才能实现,如raid1raid5等。而对于raid0等阵列模式,是无效的)。

9.       增加热备(spare)盘
可以通过在创建的时候指定冗余热备磁盘:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sdb1 /dev/sdc1 /dev/sdd1
其中,-x--spare-devices)参数用于指定冗余磁盘的数量

.小结
上文出一些基本命令介绍外,主要是针对磁盘镜像即RAID 1方式来进行描述,如果有机会,后续会介绍一些其它RAID方式的设置过程及特点。
阅读(1489) | 评论(0) | 转发(0) |
0

上一篇:Linux LVM逻辑卷管理

下一篇:建立共享磁盘

给主人留下些什么吧!~~