5Linux中软件RAID的使用Word文档格式.docx

上传人:b****6 文档编号:21909800 上传时间:2023-02-01 格式:DOCX 页数:29 大小:29.75KB
下载 相关 举报
5Linux中软件RAID的使用Word文档格式.docx_第1页
第1页 / 共29页
5Linux中软件RAID的使用Word文档格式.docx_第2页
第2页 / 共29页
5Linux中软件RAID的使用Word文档格式.docx_第3页
第3页 / 共29页
5Linux中软件RAID的使用Word文档格式.docx_第4页
第4页 / 共29页
5Linux中软件RAID的使用Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

5Linux中软件RAID的使用Word文档格式.docx

《5Linux中软件RAID的使用Word文档格式.docx》由会员分享,可在线阅读,更多相关《5Linux中软件RAID的使用Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

5Linux中软件RAID的使用Word文档格式.docx

9md

253mdp

[root@fc5mdadm-2.6.3]#lsmod|grepmd

md_mod733640

如果Linux系统既没有将MD编译到内核也没有自动加载MD模块,则没有/proc/mdstat文件,那么需要执行命令modprobemd加载驱动模块。

[root@fc5mdadm-2.6.3]#cat/proc/mdstat

cat:

/proc/mdstat:

Nosuchfileordirectory

[root@fc5mdadm-2.6.3]#modprobemd

如果系统中没有MD驱动模块则需要自己从Linux内核源代码网站下载源代码包,并且重新编译内核,并且需要在内核的配置文件选择。

[*]Multipledevicesdriversupport(RAIDandLVM)

<

*>

RAIDsupport

M>

Linear(append)mode

RAID-0(striping)mode

RAID-1(mirroring)mode

RAID-10(mirroredstriping)mode(EXPERIMENTAL)

RAID-4/RAID-5/RAID-6mode

[*]Supportaddingdrivestoaraid-5array

MultipathI/Osupport

FaultytestmoduleforMD

在Linux系统中用户层以前使用raidtool工具集来管理MD设备,目前广泛使用mdadm软件来管理MD设备,而且该软件都会集成在Linux的发布版中。

如果系统中没有安装可以到RAID驱动程序和mdadm软件的维护者NeilBrown的个人网站来下载源码包进行编译安装,或者下载RPM包直接安装。

mdadm的最新版本是2.6.3。

可以使用mdadm--version查看当前系统使用的版本。

本文使用的是mdadm-2.6.3,Linux内核版本是Linux-2.6.22.1。

下面的测试命令是在虚拟机环境中测试运行的。

[root@fc5mdadm-2.6.3]#uname-r

2.6.22.1

[root@fc5mdadm-2.6.3]#./mdadm--version

mdadm-v2.6.3-20thAugust2007

二.mdadm管理软RAID阵列

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

模式名字

主要功能

Create

使用空闲的设备创建一个新的阵列,每个设备具有元数据块

Assemble

将原来属于一个阵列的每个块设备组装为阵列

Build

创建或组装不需要元数据的阵列,每个设备没有元数据块

Manage

管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘

Misc

报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息

Grow

改变阵列中每个设备被使用的容量或阵列中的设备的数目

Monitor

监控一个或多个阵列,上报指定的事件

2.1为磁盘划分分区

如果MD驱动被编译到内核中,当内核调用执行MD驱动时会自动查找分区为FD(Linuxraidautodetect)格式的磁盘。

所以一般会使用fdisk工具将HD磁盘或者SD磁盘分区,再设置为FD的磁盘。

[root@fc5mdadm-2.6.3]#fdisk/dev/sdk

DevicecontainsneitheravalidDOSpartitiontable,norSun,SGIorOSFdisklabel

BuildinganewDOSdisklabel.Changeswillremaininmemoryonly,

untilyoudecidetowritethem.Afterthat,ofcourse,theprevious

contentwon'

tberecoverable.

Warning:

invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)

Command(mforhelp):

n

Commandaction

eextended

pprimarypartition(1-4)

p

Partitionnumber(1-4):

1

Firstcylinder(1-512,default1):

1

Usingdefaultvalue1

Lastcylinderor+sizeor+sizeMor+sizeK(1-512,default512):

512

Usingdefaultvalue512

t

Selectedpartition1

Hexcode(typeLtolistcodes):

FD

Changedsystemtypeofpartition1tofd(Linuxraidautodetect)

w

Thepartitiontablehasbeenaltered!

Callingioctl()tore-readpartitiontable.

Syncingdisks.

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

Disk/dev/sdk:

1073MB,1073741824bytes

128heads,32sectors/track,512cylinders

Units=cylindersof4096*512=2097152bytes

DeviceBootStartEndBlocksIdSystem

/dev/sdk115121048560fdLinuxraidautodetect

软RAID阵列实际上也可以使用任何标准的块设备作为底层设备,如SCSI设备、IDE设备、RAMdisk磁盘和NBD(NetworkBlockDevice)等,甚至是其他的MD设备。

如果MD驱动是模块形式加载,需要在系统运行时由用户层脚本控制RAID阵列启动运行。

如在FedoraCore系统中在/etc/rc.d/rc.sysinit文件中有启动软RAID阵列的指令,若RAID的配置文件mdadm.conf存在,则调用mdadm检查配置文件里的选项,然后启动RAID阵列。

echo"

raidautorun/dev/md0"

|nash--quiet

if[-f/etc/mdadm.conf];

then

/sbin/mdadm-A-s

fi

2.2创建新的阵列

mdadm使用--create(或其缩写-C)参数来创建新的阵列,并且将一些重要阵列的标识信息作为元数据可以写在每一个底层设备的指定区间。

--level(或者其缩写-l)表示阵列的RAID级别,--chunk(或者其缩写-c)表示每个条带单元的大小,以KB为单位,默认为64KB,条带单元的大小配置对不同负载下的阵列读写性能有很大影响。

--raid-devices(或者其缩写-n)表示阵列中活跃的设备个数,而--spare-devices(或者其缩写-x)表示阵列中热备盘的个数,一旦阵列中的某个磁盘失效,MD内核驱动程序自动用将热备磁盘加入到阵列,然后重构丢失磁盘上的数据到热备磁盘上。

创建一个RAID0设备:

mdadm--create/dev/md0--level=0--chunk=32--raid-devices=3/dev/sd[i-k]1

创建一个RAID1设备:

mdadm-C/dev/md0-l1-c128-n2-x1/dev/sd[i-k]1

创建一个RAID5设备:

mdadm-C/dev/md0-l5-n5/dev/sd[c-g]-x1/dev/sdb

创建一个RAID6设备:

mdadm-C/dev/md0-l6-n5/dev/sd[c-g]-x2/dev/sdb/dev/sdh

创建一个RAID10设备:

mdadm-C/dev/md0-l10-n6/dev/sd[b-g]-x1/dev/sdh

创建一个RAID1+0设备:

mdadm-C/dev/md0-l1-n2/dev/sdb/dev/sdc

mdadm-C/dev/md1-l1-n2/dev/sdd/dev/sde

mdadm-C/dev/md2-l1-n2/dev/sdf/dev/sdg

mdadm-C/dev/md3-l0-n3/dev/md0/dev/md1/dev/md2

当RAID1/4/5/6/10等创建成功后,需要计算每个条带的校验和信息并写入到相应磁盘上,所以RAID阵列有一个冗余组数据同步的初始化过程(resync)。

但是MD设备只要创建成功后即可对外被上层应用读写使用,当然由于上层数据读写降低数据同步的性能。

初始化的时间长短和磁盘阵列自身性能以及读写的应用负载相关,使用cat/proc/mdstat信息查询RAID阵列当前重构的速度和预期的完成时间。

[raid10]

md0:

activeraid10sdh[6](S)sdg[5]sdf[4]sde[3]sdd[2]sdc[1]sdb[0]

3145536blocks64Kchunks2near-copies[6/6][UUUUUU]

[===>

...........]resync=15.3%(483072/3145536)finish=0.3minspeed=120768K/sec

如果一个块设备已经正在被其他的MD设备或者文件系统使用,则不能用来创建新的MD设备。

[root@fc5mdadm-2.6.3]#./mdadm-C/dev/md1-l0-n2/dev/sdh/dev/sdi

mdadm:

Cannotopen/dev/sdh:

Deviceorresourcebusy

createaborted

Build模式可以用来创建没有元数据的RAID0/1设备,不能创建RAID4/5/6/10等带有冗余级别的MD设备。

[root@fc5mdadm-2.6.3]#./mdadm-BR/dev/md0-l0-n6/dev/sd[b-g]

array/dev/md0builtandstarted.

[root@fc5mdadm-2.6.3]#./mdadm-BR/dev/md0-l1-n2/dev/sd[b-c]

array/dev/md0builtandstarted.

[root@fc5mdadm-2.6.3]#./mdadm-BR/dev/md0-l5-n6/dev/sd[b-g]

Raidlevel5notpermittedwith--build.

[root@fc5mdadm-2.6.3]#./mdadm-BR/dev/md0–l6-n6/dev/sd[b-g]

[root@fc5mdadm-2.6.3]#./mdadm-BR/dev/md0–l10-n6/dev/sd[b-g]

Raidlevel10notpermittedwith--build.

使用阵列:

MD设备可以像普通块设备那样直接读写,也可以做文件系统格式化。

#mkfs.ext3/dev/md0

#mkdir-p/mnt/md-test

#mount/dev/md0/mnt/md-test

停止正在运行的阵列:

当阵列没有文件系统或者其他存储应用以及高级设备使用的话,可以使用--stop(或者其缩写-S)停止阵列;

如果命令返回设备或者资源忙类型的错误,说明/dev/md0正在被上层应用使用,暂时不能停止,必须要首先停止上层的应用,这样也能保证阵列上数据的一致性。

[root@fc5mdadm-2.6.3]#./mdadm--stop/dev/md0

failtostoparray/dev/md0:

[root@fc5mdadm-2.6.3]#umount/dev/md0

[root@fc5mdadm-2.6.3]#./mdadm--stop/dev/md0

stopped/dev/md0

2.3组装曾创建过的阵列

模式--assemble或者其缩写(-A)主要是检查底层设备的元数据信息,然后再组装为活跃的阵列。

如果我们已经知道阵列由那些设备组成,可以指定使用那些设备来启动阵列。

[root@fc5mdadm-2.6.3]#./mdadm-A/dev/md0/dev/sd[b-h]

/dev/md0hasbeenstartedwith6drivesand1spare.

如果有配置文件(/etc/mdadm.conf)可使用命令mdadm-As/dev/md0。

mdadm先检查mdadm.conf中的DEVICE信息,然后从每个设备上读取元数据信息,并检查是否和ARRAY信息一致,如果信息一致则启动阵列。

如果没有配置/etc/mdadm.conf文件,而且又不知道阵列由那些磁盘组成,则可以使用命令--examine(或者其缩写-E)来检测当前的块设备上是否有阵列的元数据信息。

[root@fc5mdadm-2.6.3]#./mdadm-E/dev/sdi

Nomdsuperblockdetectedon/dev/sdi.

[root@fc5mdadm-2.6.3]#./mdadm-E/dev/sdb

/dev/sdb:

Magic:

a92b4efc

Version:

00.90.00

UUID:

0cabc5e5:

842d4baa:

e3f6261b:

a17a477a

CreationTime:

SunAug2217:

49:

531999

RaidLevel:

raid10

UsedDevSize:

1048512(1024.11MiB1073.68MB)

ArraySize:

3145536(3.00GiB3.22GB)

RaidDevices:

6

TotalDevices:

7

PreferredMinor:

0

UpdateTime:

SunAug2218:

05:

561999

State:

clean

ActiveDevices:

WorkingDevices:

FailedDevices:

SpareDevices:

Checksum:

2f056516-correct

Events:

0.4

Layout:

near=2,far=1

ChunkSize:

64K

NumberMajorMinorRaidDeviceState

this08160activesync/dev/sdb

008160activesync/dev/sdb

118321activesync/dev/sdc

228482activesync/dev/sdd

338643activesync/dev/sde

448804activesync/dev/sdf

558965activesync/dev/sdg

6681126spare/dev/sdh

从上面命令结果可以找到阵列的唯一标识UUID和阵列包含的设备名字,然后再使用上面的命令来组装阵列,也可以使用UUID标识来组装阵列。

没有一致的元数据的信息设备(例如/dev/sda和/dev/sda1等)mdadm程序会自动跳过。

[root@fc5mdadm-2.6.3]#./mdadm-Av--uuid=0cabc5e5:

a17a477a

/dev/md0/dev/sd*

lookingfordevicesfor/dev/md0

norecogniseablesuperblockon/dev/sda

/dev/sdahaswronguuid.

norecogniseablesuperblockon/dev/sda1

/dev/sda1haswronguuid.

noRAIDsuperblockon/dev/sdi

/dev/sdihaswronguuid.

/dev/sdi1haswronguuid.

noRAIDsuperblockon/dev/sdj

/dev/sdjhaswronguuid.

/dev/sdj1haswronguuid.

noRAIDsuperblockon/dev/sdk

/dev/sdkhaswronguuid.

/dev/sdk1haswronguuid.

/dev/sdbisidentifiedasamemberof/dev/md0,slot0.

/dev/sdcisidentifiedasamemberof/dev/md0,slot1.

/dev/sddisidentifiedasamemberof/dev/md0,slot2.

/dev/sdeisidentifiedasamemberof/dev/md0,slot3.

/dev/sdfisidentifiedasamemberof/dev/md0,slot4.

/dev/sdgisidentifiedasamemberof/dev/md0,slot5.

/dev/sdhisidentifiedasamemberof/dev/md0,slot6.

added/dev/sdcto/de

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

当前位置:首页 > 高等教育 > 管理学

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

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