Linux下RAID1硬盘损坏解决方案

作者: admin 分类: linux 发布时间: 2009-01-09 16:14 ė 6 没有评论

Linux下RAID1硬盘损坏解决方案
Author: melon Filed under: 虚拟空间 星期五
Oct 17,2008
在以数据为中心的信息时代,如何妥善有效地保护数据是存储系统的核心问题之一。人们可以忍受计算机宕机,所有应用程序重新启动或者硬件损坏,但是他们要求信息永远不会丢失。冗余磁盘阵列(Redundant Array of Independent Disks )技术是各种企业信息系统和个人广泛使用的解决方案,一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。RAID类型有许多种,由于篇幅限制,在这里只简单介绍一下由两块硬盘组成的RAID1出现问题时的解决方案。

一、简介
在Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。
在流行的Linux的发布版中,如FedoraCore,Gentoo, Ubuntu,Debian,SuseLinux系统中一般已经将MD驱动模块直接编译到内核中或编译为可动态加载的驱动模块。我们可以在机器启动后通过 cat /proc/mdstat看内核是否已经加载MD驱动或者cat /proc/devices是否有md块设备,并且可以使用lsmod看MD是否是以模块形式加载到系统中。笔者使用的CentOS系统内核是已经加载国MD驱动的。

二、mdadm (Linux的软件RAID管理程序)
mdadm程序是一个独立的程序,能完成所有的软RAID管理功能,主要有7种使用模式:

模式名字 主要功能
Create 使用空闲的设备创建一个新的阵列,每个设备具有元数据块
Assemble 将原来属于一个阵列的每个块设备组装为阵列
Build 创建或组装不需要元数据的阵列,每个设备没有元数据块
Manage 管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘
Misc 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息
Grow 改变阵列中每个设备被使用的容量或阵列中的设备的数目
Monitor 监控一个或多个阵列,上报指定的事件

更为详细的使用方法可以通过man mdadm来查询。

三、实例:在VMware workstation中模拟并解决RAID1硬盘故障
前面介绍了一些基础知识,下面该接触一下具体的例子了。由于,真实情况下硬盘损坏很难模拟,我们选择在VMware Workstation下面安装CentOS系统并组建一个由两块硬盘组成的软件RAID1。(具体设置过程略)
这样的磁盘阵列中,硬盘损坏无非有下列三种情况:

1)按照安装接口顺序的第二块硬盘(hd1)损坏。
(注:”#”表示Linux提示符,”//”为注释,下同。)

#mdadm –D /dev/md0
//查看当前RAID状态。

#mdadm /dev/md0 –f /dev/sdb1 –r /dev/sdb1
//标记损坏硬盘并从md0中移除,在真实环境中坏硬盘会被系统标记。用smartctl 查看并记录损坏硬盘的序列号码。然后关机,换上新硬盘。

#fdisk /dev/sdb
//给新硬盘创建分区表:输入n创建;输入a标记为可启动;输入t更改系统id为fd(linux raid autodetect),否则再次重启后新盘无法加载;输入w将分区表信息写入磁盘。

#mdadm /dev/md0 –a /dev/sdb1
//将新硬盘加入阵列中,此后mdadm会自动同步数据,此时系统会满负荷运作,可通过cat /proc/mdstat 查看同步进度。

#grub
//进入grub配置启动信息:
grub>root (hd0,0)
grub>setup (hd0)
grub>root (hd1,0)
grub>setup (hd1)
grub>reboot
//将两个盘的启动信息都写入配置文件,重启系统。

2)按照安装接口顺序的第一块硬盘(hd0)损坏。
关机后拔下坏盘后,需要将原来第二块盘(hd1)的数据线插在原(hd0)的插槽上,否则无法从硬盘启动。
剩下的步骤与1)相同。

3)两块硬盘都损坏……祈祷上帝,这种情况最好不要发生。否则,只有把硬盘交给专业人员进行数据恢复了。

本文出自 小Q,转载时请注明出处及相应链接。

本文永久链接: http://www.linuxqq.com/archives/78.html

0
更多
Ɣ回顶部