LINUX 中软件RAID 使用常见问题解决方法.docx

上传人:b****8 文档编号:9754261 上传时间:2023-02-06 格式:DOCX 页数:13 大小:21.13KB
下载 相关 举报
LINUX 中软件RAID 使用常见问题解决方法.docx_第1页
第1页 / 共13页
LINUX 中软件RAID 使用常见问题解决方法.docx_第2页
第2页 / 共13页
LINUX 中软件RAID 使用常见问题解决方法.docx_第3页
第3页 / 共13页
LINUX 中软件RAID 使用常见问题解决方法.docx_第4页
第4页 / 共13页
LINUX 中软件RAID 使用常见问题解决方法.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

LINUX 中软件RAID 使用常见问题解决方法.docx

《LINUX 中软件RAID 使用常见问题解决方法.docx》由会员分享,可在线阅读,更多相关《LINUX 中软件RAID 使用常见问题解决方法.docx(13页珍藏版)》请在冰豆网上搜索。

LINUX 中软件RAID 使用常见问题解决方法.docx

LINUX中软件RAID使用常见问题解决方法

LINUX中软件RAID使用常见问题解决方法

在文章“Linux中软件RAID的使用”中我们讲述了Linux系统中软RAID的基本概念和如何使用mdadm程序来管理软RAID设备,通过对mdadm命令的主要参数来介绍软RAID设备的创建,删除,停止和扩展等操作,以及其元数据和位图bitmap数据的管理方法。

在本文中我们讨论使用软RAID设备常见的问题以及解决的方法。

pqmLinux联盟

1.RAID的子设备物理上要独立不相关

对一个磁盘上的多个磁盘分区做RAID是没有价值的,因为不但违背了RAID阵列中设备独立性的原则,不能增加阵列的可靠性,当这个磁盘失效后必然不可避免的导致数据丢失,而且还导致阵列的性能显著降低,当数据读写时磁头在磁盘的多个分区上来回抖动带来长时间的搜索耗时。

2.RAID0没有数据冗余功能

RAID0只能使用数据块条带化(stripping)功能来提高性能,如果有磁盘失效则会导致MD设备上的数据丢失,在读写MD设备时出错。

3.快速测试命令

当创建磁盘时,如果已知设备上的数据已经是同步(sync)成功过,或者仅仅是用来测试阵列,可以使用--assume-clean参数来通知MD驱动不必初始化阵列。

               mdadm-C/dev/md0-l5-n6/dev/sd[b-g]-x1/dev/sdh--assume-cleanpqmLinux联盟

           pqmLinux联盟

 pqmLinux联盟

如果想避免mdadm每次创建命令时,因为设备上还有以前的元数据的提示,避免手工输入,可以使用--run(或者其缩写-R)通知阵列直接运行。

               mdadm--create--run/dev/md0-l5-n6/dev/sd[b-g]-x1/dev/sdh--assume-cleanpqmLinux联盟

           pqmLinux联盟

 pqmLinux联盟

4.异构磁盘组成的RAID

RAID0可以支持不同大小的磁盘构造多个区域(zone)的RAID,每个区域有不同的磁盘个数。

使用fdisk命令查询/dev/sdi1为2GB,/dev/sdj1为4GB,/dev/sdk1为1GB,所以做成RAID0设备为7GB。

pqmLinux联盟

               pqmLinux联盟

               mdadm-C/dev/md0-l5-n6/dev/sd[b-g]-x1/dev/sdh--assume-cleanpqmLinux联盟

           pqmLinux联盟

 

pqmLinux联盟

而RAID1,RAID456,RAID10等对不同大小的磁盘只能使用最小的磁盘的容量作为公共的大小,多余的部分被浪费掉。

/dev/sdi1,/dev/sdj1,/dev/sdk1做成的RAID5设备为2GB,是最小的设备/dev/sdk1的2倍,设备/dev/sdi1和sdj1分别浪费了1GB和3GB。

[root@fc5mdadm-2.6.3]#./mdadm–CR/dev/md1-l0-n3/dev/sd[i-k]1pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md1|grep"ArraySize"pqmLinux联盟

    ArraySize:

7337664(7.00GiB7.51GB)pqmLinux联盟

 

pqmLinux联盟

在阵列的状态信息查询中的大小(ArraySize)前面使用的是KB,也表示MD块设备的实际大小;而后面的两个值只是为了显示处理后的结果。

[root@fc5mdadm-2.6.3]#./mdadm–CR/dev/md1-l0-n3/dev/sd[i-k]1pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md1|grep"ArraySize"pqmLinux联盟

    ArraySize:

7337664(7.00GiB7.51GB)pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-CR/dev/md1-l5-n3/dev/sd[i-k]1pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md1|grep"ArraySize"pqmLinux联盟

    ArraySize:

2096896(2048.09MiB2147.22MB)pqmLinux联盟

 pqmLinux联盟

5.配置共享的热备盘

mdadm程序是允许多个RAID组共享冗余磁盘的。

例如有/dev/md0和/dev/md1两个阵列,在创建时/dev/md0里面有一个热备磁盘,而/dev/md1没有热备磁盘。

我们只要在/etc/mdadm.conf中配置两个阵列使用相同的spare-group组。

[root@fc5mdadm-2.6.3]#cat/etc/mdadm.confpqmLinux联盟

DEVICE/dev/sdb/dev/sdc/dev/sdd/dev/sde/dev/sdf/dev/sdg/dev/sdhpqmLinux联盟

      /dev/sdi1/dev/sdj1/dev/sdk1pqmLinux联盟

ARRAY/dev/md1level=raid0num-devices=3spare-group=sparediskspqmLinux联盟

     UUID=dcff6ec9:

53c4c668:

58b81af9:

ef71989dpqmLinux联盟

ARRAY/dev/md0level=raid10num-devices=6spare-group=sparediskspqmLinux联盟

     UUID=0cabc5e5:

842d4baa:

e3f6261b:

a17a477a    pqmLinux联盟

 pqmLinux联盟

并运行mdadm的监控(monitor)模式命令。

当/dev/md1阵列中的一个磁盘/dev/sdi1失效时,mdadm会自动从/dev/md0组中上移走spare磁盘,并加入/dev/md1中。

[root@fc5mdadm-2.6.3]#./mdadm--monitor--mail=root@localhost--syslog--program=/root/md.shpqmLinux联盟

                    --delay=300/dev/md*--daemonisepqmLinux联盟

8105pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm/dev/md1-f/dev/sdi1pqmLinux联盟

mdadm:

set/dev/sdi1faultyin/dev/md1pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md1pqmLinux联盟

/dev/md1:

pqmLinux联盟

       Version:

00.90.03pqmLinux联盟

 CreationTime:

MonAug2300:

10:

001999pqmLinux联盟

    RaidLevel:

raid5pqmLinux联盟

    ArraySize:

2096896(2048.09MiB2147.22MB)pqmLinux联盟

 UsedDevSize:

1048448(1024.05MiB1073.61MB)pqmLinux联盟

  RaidDevices:

3pqmLinux联盟

 TotalDevices:

4pqmLinux联盟

PreferredMinor:

1pqmLinux联盟

   Persistence:

Superblockispersistent

   UpdateTime:

MonAug2300:

13:

151999pqmLinux联盟

         State:

clean,degraded,recoveringpqmLinux联盟

 ActiveDevices:

2pqmLinux联盟

WorkingDevices:

3pqmLinux联盟

 FailedDevices:

1pqmLinux联盟

 SpareDevices:

1

        Layout:

left-symmetricpqmLinux联盟

    ChunkSize:

64K

 RebuildStatus:

78%complete

          UUID:

34d3de75:

6912dc24:

e1316607:

4e72cd01pqmLinux联盟

        Events:

0.4

   Number  Major  Minor  RaidDeviceStatepqmLinux联盟

      3      8     112       0     sparerebuilding  /dev/sdhpqmLinux联盟

      1      8     145       1     activesync  /dev/sdj1pqmLinux联盟

      2      8     161       2     activesync  /dev/sdk1

      4      8     129       -     faultyspare  /dev/sdi1

 pqmLinux联盟

6.多种元数据格式

目前MD设备有两种主要的元数据格式(0.9版本和1.x版本),主要是元数据占用的空间不同和支持的底层设备个数不同,而且1.x版本还可以指定元数据写入设备的具体位置(1.0为在设备尾部,1.1为在设备开始,1.2为在设备开始的4KB位置)。

创建阵列通过—metadata(元数据)(或者其缩写-e)参数来指定元数据格式版本。

[root@fc5mdadm-2.6.3]#./mdadm-CR/dev/md0-l5-n6-x1 /dev/sd[b-h]pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md0|grepVersionpqmLinux联盟

       Version:

00.90.03pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-CR/dev/md0-l5-n6-x1-e1.0/dev/sd[b-h]pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md0|grepVersionpqmLinux联盟

       Version:

01.00.03pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-CR/dev/md0-l5-n6-x1-e1.1/dev/sd[b-h]pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md0|grepVersionpqmLinux联盟

       Version:

01.01.03pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-CR/dev/md0-l5-n6-x1-e1.2/dev/sd[b-h]pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-D/dev/md0|grepVersionpqmLinux联盟

       Version:

01.02.03pqmLinux联盟

 pqmLinux联盟

当阵列将磁盘移走后,也使用--zero-superblock清空设备上面的元数据信息。

[root@fc5mdadm-2.6.3]#./mdadm-Es/dev/sdhpqmLinux联盟

ARRAY/dev/md0level=raid5num-devices=6pqmLinux联盟

UUID=acd2b182:

4695ee20:

37689502:

eb0423e1pqmLinux联盟

  spares=1pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm/dev/md0-f /dev/sdh-r/dev/sdhpqmLinux联盟

mdadm:

set/dev/sdhfaultyin/dev/md0pqmLinux联盟

mdadm:

hotremoved/dev/sdhpqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm--zero-superblock/dev/sdhpqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-Es/dev/sdhpqmLinux联盟

[root@fc5mdadm-2.6.3]#pqmLinux联盟

 pqmLinux联盟

7.可分区的RAID设备

如果想对支持分区的MD设备(Partitionableraidarray)进行分区,需要在创建时使用/dev/md_d0来替代前面的/dev/md0。

创建阵列是通过--auto=mdp(或者其缩写-ap)参数指定。

[root@fc5mdadm-2.6.3]#./mdadm-Cv--auto=mdp/dev/md_d0-l5-n6/dev/sd[b-g]-x1/dev/sdhpqmLinux联盟

mdadm:

layoutdefaultstoleft-symmetricpqmLinux联盟

mdadm:

chunksizedefaultsto64KpqmLinux联盟

mdadm:

sizesetto1048512KpqmLinux联盟

mdadm:

array/dev/md_d0started.pqmLinux联盟

[root@fc5mdadm-2.6.3]#fdisk/dev/md_d0pqmLinux联盟

DevicecontainsneitheravalidDOSpartitiontable,norSun,SGIorOSFdisklabelpqmLinux联盟

BuildinganewDOSdisklabel.Changeswillremaininmemoryonly,pqmLinux联盟

untilyoudecidetowritethem.Afterthat,ofcourse,thepreviouspqmLinux联盟

contentwon'tberecoverable.

Thenumberofcylindersforthisdiskissetto1310640.pqmLinux联盟

Thereisnothingwrongwiththat,butthisislargerthan1024,pqmLinux联盟

andcouldincertainsetupscauseproblemswith:

pqmLinux联盟

1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)pqmLinux联盟

2)bootingandpartitioningsoftwarefromotherOSspqmLinux联盟

  (e.g.,DOSFDISK,OS/2FDISK)pqmLinux联盟

Warning:

invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)

Command(mforhelp):

npqmLinux联盟

CommandactionpqmLinux联盟

  e  extendedpqmLinux联盟

  p  primarypartition(1-4)pqmLinux联盟

ppqmLinux联盟

Partitionnumber(1-4):

1pqmLinux联盟

Firstcylinder(1-1310640,default1):

1pqmLinux联盟

Usingdefaultvalue1pqmLinux联盟

Lastcylinderor+sizeor+sizeMor+sizeK(1-1310640,default1310640):

+1024M

Command(mforhelp):

npqmLinux联盟

CommandactionpqmLinux联盟

  e  extendedpqmLinux联盟

  p  primarypartition(1-4)pqmLinux联盟

ppqmLinux联盟

Partitionnumber(1-4):

2pqmLinux联盟

Firstcylinder(250002-1310640,default250002):

250002pqmLinux联盟

Usingdefaultvalue250002pqmLinux联盟

Lastcylinderor+sizeor+sizeMor+sizeK(250002-1310640,default1310640):

1310640pqmLinux联盟

Usingdefaultvalue1310640

Command(mforhelp):

wpqmLinux联盟

Thepartitiontablehasbeenaltered!

Callingioctl()tore-readpartitiontable.pqmLinux联盟

Syncingdisks.pqmLinux联盟

[root@fc5mdadm-2.6.3]#fdisk-l/dev/md_d0

Disk/dev/md_d0:

5368MB,5368381440bytespqmLinux联盟

2heads,4sectors/track,1310640cylinderspqmLinux联盟

Units=cylindersof8*512=4096bytes

     DeviceBoot     Start        End     Blocks  Id SystempqmLinux联盟

/dev/md_d0p1              1     250001    1000002  83 LinuxpqmLinux联盟

/dev/md_d0p2         250002    1310640    4242556  83 Linux

 pqmLinux联盟

MD设备支持两种块设备,一种是不可分区类型的名字是md设备,主设备号是9,另一种是可分区的名字是mdp设备,mdp的主设备号是动态分配的,一个mdp设备最多能支持63个分区。

查看/proc/device信息能看到mdp的主设备号,查询/proc/partitions信息能看到md和mdp设备的主设备号和从设备号。

[root@fc5mdadm-2.6.3]#cat/proc/devices|grepmdpqmLinux联盟

1ramdiskpqmLinux联盟

9mdpqmLinux联盟

253mdppqmLinux联盟

[root@fc5mdadm-2.6.3]#cat/proc/partitions|grepmdpqmLinux联盟

  9    1   2096896md1pqmLinux联盟

 253    0   5242560md_d0pqmLinux联盟

 253    1   1000002md_d0p1pqmLinux联盟

 253    2   1000002md_d0p2

 

pqmLinux联盟

8.怎样扩展RAID设备

Grow模式中的容量扩展(resize)功能不但支持设备大小增加,也可以支持设备大小减少,但要求使用者自己来保证MD设备有效数据上不被截断导致丢失。

[root@fc5mdadm-2.6.3]#./mdadm/dev/md0--grow--size=102400pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-Q/dev/md0pqmLinux联盟

/dev/md0:

600.00MiBraid57devices,0spares.Usemdadm--detailformoredetail.

 pqmLinux联盟

而磁盘个数扩展(reshape)功能不支持设备个数减少,如果在阵列中空闲的热备盘而且也没有指定backup文件,则不能扩展。

如果对于RAID5阵列有备份(backup)文件可以支持扩展一个磁盘,扩展后的磁盘阵列是降级模式的,不支持扩展多个磁盘或者对降级的RAID5阵列再扩展。

这些扩展模式不够安全,仅仅是暂时没有热备盘的权宜之计,一般合理的操作还是先增加空闲的热备磁盘再执行扩展命令。

[root@fc5mdadm-2.6.3]#./mdadm--grow/dev/md0-n6pqmLinux联盟

mdadm:

/dev/md0:

Cannotreducenumberofdatadisks(yet).pqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm--grow/dev/md0-n8pqmLinux联盟

mdadm:

Needtobackup2688Kofcriticalsection.pqmLinux联盟

mdadm:

/dev/md0:

Cannotgrow-needaspareorbackup-filetobackupcriticalsectionpqmLinux联盟

[root@fc5mdadm-2.6.3]#./mdadm-G/dev/md0-n9--backup-file=/root/bak-reshapepqmLinux联盟

mdadm:

Needtobackup1024Kofcriticalsection..pqmLinux联盟

m

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1