Chinaunix首页 | 论坛 | 博客
  • 博客访问: 389801
  • 博文数量: 67
  • 博客积分: 1742
  • 博客等级: 上尉
  • 技术积分: 753
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-15 01:54
文章分类

全部博文(67)

文章存档

2014年(1)

2013年(4)

2012年(1)

2011年(9)

2010年(29)

2009年(23)

我的朋友

分类: LINUX

2009-06-24 02:38:24

在Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。目前MD支持linear, multipath, raid0 (stripping), raid1 (mirror), raid4, raid5, raid6, raid10等不同的冗余级别和组成方式,当然也能支持多个RAID阵列的层叠组成raid1+0, raid5+1等类型的阵列。
---------------------------------------------------------------------------------------------------------------
本文主要先讲解用户层mdadm如何管理软件RAID以及使用中经常遇到的问题和解决方法。在流行的Linux的发布版中,如FedoraCore,Gentoo, Ubuntu,Debian,SuseLinux系统中一篇般已经将MD驱动模块直接编译到内核中或编译为可动态加载的驱动模块。我们可以在机器启动后通过cat /proc/mdstat看内核是否已经加载MD驱动或者cat /proc/devices是否有md块设备,并且可以使用lsmod看MD是否是以模块形式加载到系统中。
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities :
unused devices:
[root@fc5 mdadm-2.6.3]# cat /proc/devices | grep md
1 ramdisk
9 md
253 mdp
[root@fc5 mdadm-2.6.3]# lsmod | grep md
md_mod                 73364  0
如果Linux系统既没有将MD编译到内核也没有自动加载MD模块,则没有/proc/mdstat文件,那么需要执行命令modprobe md加载驱动模块。
[root@fc5 mdadm-2.6.3]#cat /proc/mdstat
cat: /proc/mdstat: No such file or directory
[root@fc5 mdadm-2.6.3]# modprobe  md
[root@fc5 mdadm-2.6.3]# lsmod | grep md
md_mod               73364  0
如果系统中没有MD驱动模块则需要自己从Linux内核源代码网站下载源代码包,并且重新编译内核,并且需要在内核的配置文件选择。
[*]Multiple devices driver support (RAID and LVM)
<*>    RAID support                                       
         Linear (append) mode 
         RAID-0 (striping) mode 
         RAID-1 (mirroring) mode
         RAID-10 (mirrored striping) mode (EXPERIMENTAL)
         RAID-4/RAID-5/RAID-6 mode
    [*]       Support adding drives to a raid-5 array
         Multipath I/O support
         Faulty test module for MD
在Linux系统中用户层以前使用raidtool工具集 来管理MD设备,目前广泛使用mdadm软件来管理MD设备,而且该软件都会集成在Linux的发布版中。如果系统中没有安装可以到RAID驱动程序和mdadm软件的维护者Neil Brown的个人网站 来下载源码包进行编译安装,或者下载RPM包直接安装。mdadm的最新版本是2.6.3。可以使用mdadm --version查看当前系统使用的版本。本文使用的是mdadm-2.6.3, Linux内核版本是Linux-2.6.22.1。下面的测试命令是在虚拟机环境中测试运行的。
[root@fc5 mdadm-2.6.3]# uname -r
2.6.22.1
[root@fc5 mdadm-2.6.3]# ./mdadm --version
mdadm - v2.6.3 - 20th August 2007
阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~