下载后可任意编辑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 是否是以模块形式加载到系统中。[root@fc5 mdadm-2.6.3]# cat /proc/mdstatPersonalities :unused devices: [root@fc5 mdadm-2.6.3]# cat /proc/devices | grep md1 ramdisk9 md253 mdp[root@fc5 mdadm-2.6.3]# lsmod | grep mdmd_mod 73364 0假如 Linux 系统既没有将 MD 编译到内核也没有自动加载 MD 模块,则没有/proc/mdstat 文件,那么需要执行命令 modprobe md 加载驱动模块。[root@fc5 mdadm-2.6.3]#cat /proc/mdstatcat: /proc/mdstat: No such file or directory[root@fc5 mdadm-2.6.3]# modprobe md[root@fc5 mdadm-2.6.3]# lsmod | grep mdmd_mod 73364 0假如系统中没有 MD 驱动模块则需要自己从 Linux 内核源代码网站下载源代码包,并且重新编译内核,并且需要在内核的配置文件选择。下载...