Linux
中软件
RAID
的使用
级别:
中级
张
志斌
(linuxaid@tom.com),
软件工程师
,
软件工程师
2007
年
11
月
08
日
在以数据为中心的信息时代,如何妥善有效地保护数据是存储系统的核心问题之一。人们
可以忍受计算机宕机,所有应用程序重新启动或者硬件损坏,但是他们要求信息永远不会
丢失。冗余磁盘阵列
(Redundant Array of Independent Disks )
技术是各种企业信息系统和
个人广泛使用的解决方案,一般的中高档服务器多使用硬件
RAID
控制器,但是由于硬件
RAID
控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得
软件
RAID
的解决方法得到人们的重视。这里我们主要介绍在
Linux
系统中软件
RAID
的配
置和使用方法,它既降低了系统的总投资,也能满足系统应用的需要。
一
.
简介
在
Linux
系统中目前以
MD (Multiple Devices)
虚拟块设备的方式实现软件
RAID
,利用多个
底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化
(stripping)
技术将数据块均匀分
布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不
会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的
设备上。关于不同冗余级别的定义和数据块以及校验块的分布示意图可以参考存储专业委
员会给出的参考资料“
Common RAID Disk Data Format Specification ”
。目前
MD
支持
linear, multipath, raid0 (stripping), raid1 (mirror), raid4, raid5, raid6, raid10
等不同的冗余
级别和组成方式,当然也能支持多个
RAID
阵列的层叠组成
raid1+0, raid5+1
等类型的阵列。
在参考资料“
Software RAID HOWTO”
中介绍了早期软件
RAID
阵列功能特点和使用方式,
但是因为软件
RAID
程序的功能不断增加,因此很有必要写份新的使用介绍。
本文主要先讲解用户层
mdadm
如何管理软件
RAID
以及使用中经常
遇到的问题和解决方法。在流行的
Linux
的发布版中,如
FedoraCore,Gentoo, Ubuntu,Debian,SuseLinux
系统中一般已经将
MD
驱动模块直接编译到内核中或编译为可动态加载的驱动模块。
我们可以在机器启动后通过
cat /proc/mdstat
看内核是否已经加载
MD
驱动或者
cat /proc/devices
是否有
md
块设备,并且可以使用
lsmod
看
MD
是否是以模块形式加载到系统中。
!"
#$
%
评论