linux下用mdadm命令创建磁盘阵列

 

linux下用mdadm命令创建磁盘阵列


2007-11-05 09:28:00    业界 |  评论(0) |  浏览(84)

本文讲述如何利用mdadm工具在Linux中创建和管理RAID磁盘阵列。  

不用我说你也应该知道备份的重要性。不过虽然大多数人都知道备份是非常重要的,但是我们实际对数据的备份次数却要少于理论上的最佳值。

目前市场上有多种备份解决方案,其中大部分都是采用快照的策略。换句话说,大多数系统在数据恢复时,都只能恢复到上次备份时的状态。而少数解决方案可以提供实时的备份能力

RAID,也就是我们常说的独立磁盘冗余阵列或者廉价磁盘冗余阵列,则是一种全面的增量备份解决方案。RAID具有多种模式和附加功能,基本的RAID就已经可以实时的保存多个文件副本了。

RAID通过两个或两个以上容量一致的磁盘组成一个阵列(或一个组)。之后在系统中,这些物理存储设备就会被统一看作一个整体,或者说是“元设备(meta device)”。

向这个阵列中写入数据,实际上就是将数据同时写入每个磁盘。因此当这个阵列中的一个磁盘发生错误,其它磁盘中的数据依然能得到保存。

当然,RAID并不能替代一个具有良好性能的即时备份工具,不过它却可以保证当你的硬盘出现故障时,不会仅能恢复到几天前的数据。另外,RAID还可以帮助你找回偶然删除的文件。

RAID的成本低廉,而且操作系统的内核也可以支持。你所要做的就是购买两块相同的硬盘,然后分成同样大小的分区。之后你可以从这里 下载mdadm工具,以便创建和管理RAID阵列。

比如创建一个RAID 5,可以使用如下命令

1.创建分区

五块SCSI磁盘分别 对应/dev/sda 、/dev/sdb、 /dev/sdc、 /dev/sdd、/ dev/sde。其中 第一块磁盘/dev/ sda分两个区,用于 安装RedHat AS 4和做交换分区,其他 四块磁盘每块只分一个 主分区,分别为/de v/sdb1、/de v/sdc1、/de v/sdd1、/de v/sde1,并且将 分区 类型指定为“fd”, 这将使Linux内核 能将它们识别为RAI D分区,且在每次引导 时自动被检测并启动。 创建分区使用fdis k命令。

# fdisk /dev/sdb

进入fdisk命令行 后,使用命令n创建分 区,命令t改变分区类 型,命令w保存分区表 并退出,命令m为帮助

2.创建RAID 5

这里使用了/dev/ sdb1、/dev/ sdc1、/dev/ sdd1、/dev/ sde1四个设备创建 RAID 5,其中/dev/s de1作为备份设备, 其他为活动设备。备份 设备主要起备用作用, 一旦某一设备损坏可以 立即用备份设备替换, 当然也可以不使用备份 设 备。命令格式如下:
# modprobe md
# mdadm -Cv /dev/md0 -l5 -n3 -x1 -c128 /dev/sd[b, c,d,e]1

命令中各参数分别表示 如下作用:“-C”指 创建一个新的阵列;“ /dev/md0”表 示阵列设备名称;“- l5”表示设置阵列模 式,可以选择0、1、 4、5、6,它们分别 对应于RAID0、R AID1、RAID4 、RAID5、RAI D6,这里设为RAI D5模式;“-n3” 指设置阵列中活动设备 的数 目,该数目加上备用设 备的数目应等于阵列中 的总设备数; “-x1”设置阵列中 备份设备的数目,当前 阵列中含有1个备份设 备;“-c128”指 设置块的尺寸为128 KB,缺省为64KB ;“/dev/sd[ b, c,d,e]1”指当 前阵列中包含的所有设 备标识符,也可以分开 来写,中间用空格分开 ,其中最后一个为备份 设备。
     我想配一个RAID5 没有备份盘,应该是 mdadm -Cv /dev/md0 -l5 -n4 -x0 -c128 /dev/sd[b, c,d,e]1吧?但 是使用 mdadm -D /dev/md0 查看阵列状态是发现, 阵列为degrade
     参考了mdadm源代 码,Create函数
/* If this is    raid5, we want to configure the last active slot
    * as missing, so that a reconstruc t happens (faster than re-parity)
    * FIX: Can we do this for raid6 as well?
    */
if (assume_cl ean==0 && force == 0 && first_miss ing >= raiddisks) {
    switch ( level ) {
    case 5:
     insert_poi nt = raiddisks- 1;
     sparedisks ++;
     array.acti ve_disks-- ;
     missing_di sks++;
     break;
    default:
     break;
    }
}
所以要使参数forc e==1就可以了,所 以在命令中加-f就可 以没有备份盘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值