Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1250850
  • 博文数量: 793
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5025
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 17:58
文章分类

全部博文(793)

文章存档

2011年(1)

2008年(792)

我的朋友

分类: LINUX

2008-08-28 18:04:47

 
id=artstyle="MARGIN:15px"width="100%">F.3.利用mdadm 設定RAID類與多路徑(Multipath)的儲存裝置

跟raidtools套件組中的工具一樣,mdadm 指令可以用來執行所有與管理多裝置組相關的功能。在本節中,我們將告訴您如何利用mdadm 指令,以:

建立RAID裝置

建立多路徑(multipath)裝置

F.3.1.使用mdadm 指令建立RAID裝置

要建立RAID裝置,請編輯/etc/mdadm.conf檔案,設定適切的DEVICEARRAY 值。

DEVICE/dev/sd[abcd]1

ARRAY/dev/md0devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

在本例中,DEVICE 一行使用的是傳統檔名的glob指令(請參閱glob(7)manpage獲得更多訊息),以定義以下的SCSI裝置:

/dev/sda1

/dev/sdb1

/dev/sdc1

/dev/sdd1

ARRAY 一行則定義了DEVICE 行中,組成RAID的裝置(/dev/md0)。

在建立或使用任何RAID裝置前,/proc/mdstat檔案顯示目前系統並無任何RAID裝置運作中:

Personalities:

read_aheadnotset

Event:0

unuseddevices:

接下來,使用以上設定與mdadm 指令,以建立RAID0陣列:

mdadm-C/dev/md0--level=raid0--raid-devices=4/dev/sda1/dev/sdb1/dev/sdc1\

/dev/sdd1

Continuecreatingarray?yes

mdadm:array/dev/md0started.


我的配置方法

分区,用fdisk,raid5要3个分区以上,用在fdisk内t命令把分区标识fd,

例如:

Disk/dev/hdb:62.9GB,62913208320bytes

255heads,63sectors/track,7648cylinders

Units=cylindersof16065*512=8225280bytes

DeviceBoot Start End Blocks Id System

/dev/hdb1 1 7648 61432528 5 Extended

/dev/hdb5 1 1217 9775489 fd Linuxraidautodetect

/dev/hdb6 1218 2434 9775521 fd Linuxraidautodetect

/dev/hdb7 2435 3651 9775521 fd Linuxraidautodetect

/dev/hdb8 3652 4868 9775521 fd Linuxraidautodetect

配置命令:

mdadm--create/dev/md0--level=raid5--chunk=8--raid-devices=4/dev/hdb5/dev/hdb6/dev/hdb7/dev/hdb8

格式化mkfs.ext3/dev/md0

用mount/dev/md0/mnt测试看看是否可以挂上。

编辑mdadm.conf,没有内容没有问题

echo "DEVICE partitions" > /etc/mdadm.confbgKLinux联盟
mdadm --detail --scan >> /etc/mdadm.conf

manmdadm.conf

EXAMPLE

DEVICE/dev/sd[bcdjkl]1

DEVICE/dev/hda1/dev/hdb1

#/dev/md0isknownbyit’sUID.

ARRAY/dev/md0UUID=3aaa0122:29827cfa:5331ad66:ca767371

#/dev/md1containsalldeviceswithaminornumberof

# 1inthesuperblock.

ARRAY/dev/md1superminor=1

#/dev/md2ismadefrompreciseythesetwodevices

ARRAY/dev/md2devices=/dev/hda1,/dev/hda2

#/dev/md4and/dev/md5areaspare-groupandspares

# canbemovedbetweenthem

ARRAY/dev/md4uuid=b23f3c6d:aec43a9f:fd65db85:369432df

spare-group=group1

ARRAY/dev/md5uuid=19464854:03f71b1b:e0df2edd:246cc977

spare-group=group1

MAILADDRroot@mydomain.tld

PROGRAM/usr/sbin/handle-mdadm-events

建立完成之後,您就可以隨時查詢該RAID裝置,獲得狀態資訊。底下的範例顯示了使用mdadm--detail/dev/md0指令的結果:

/dev/md0:

Version:00.90.00

CreationTime:MonMar 113:49:102004

RaidLevel:raid0

ArraySize:15621632(14.90GiB15.100GB)

RaidDevices:4

TotalDevices:4

PreferredMinor:0

Persistence:Superblockispersistent

UpdateTime:MonMar 113:49:102004

State:dirty,no-errors

ActiveDevices:4

WorkingDevices:4

FailedDevices:0

SpareDevices:0

ChunkSize:64K

Number Major Minor RaidDeviceState

0 8 1 0 activesync /dev/sda1

1 8 17 1 activesync /dev/sdb1

2 8 33 2 activesync /dev/sdc1

3 8 49 3 activesync /dev/sdd1

UUID:25c0f2a1:e882dfc0:c0fe135e:6940d932

Events:0.1

F.3.2.使用mdadm 指令建立多路徑(multipath)裝置

除了建立RAID陣列外,只要硬體支援,mdadm 指令也可以透過多個I/O路徑,連到每個SCSILUN(磁碟機)去。即使硬體失效,或是某個路徑的容量過於飽和,多路徑儲存也能繼續提供服務。由於這設定包括多條路徑(每條路徑都以獨立的虛擬控制卡來運作)存取一個共同的SCSILUN(磁碟機),所以Linux核心會「透過」每條路徑偵測每個磁碟機。換句話說,視為/dev/sda的SCSILUN(磁碟機)也可以透過/dev/sdb、/dev/sdc等等來存取,端看設定而定。

要在I/O路徑失效或過度飽和時,單一裝置還是可以提供服務,mdadm 為每每level選項提供了額外的參數。這參數〞multipath 〞會指向Linux核心的md層,在一條I/O路徑失效時,將I/O需求引導到另一條路徑去。

要建立多路徑裝置,請編輯/etc/mdadm.conf檔,定義DEVICEARRAY 兩行的值,以反映您的硬體設定。

注意

跟之前RAID的範例不同(在RAID範例中,每個/etc/mdadm.conf中的磁碟都代表不同的實體磁碟機),這檔案中的每個裝置都指向同一台分享磁碟機。

這用於建立多路徑裝置的指令跟建立RAID裝置的指令類似;不同之處在於將RAID等級的參數改為multipath 參數:

mdadm-C/dev/md0--level=multipath--raid-devices=4/dev/sda1/dev/sdb1/dev/sdc1/dev/sdd1

Continuecreatingarray?yes

mdadm:array/dev/md0started.

由於mdadm 指令的長度關係,我們把它分成兩行來顯示。

在這例子裡,包括一個SCSILUN的硬體代表四個獨立的SCSI裝置,每組裝置都使用不同的路徑存取同一個儲存空間。一旦建立路徑裝置/dev/md0之後,所有參照/dev/md0的I/O都會導向到/dev/sda1、/dev/sdb1、/dev/sdc1、或/dev/sdd1(視目前哪一條路徑在運行中,並且是可用的)。

您可以使用mdadm--detail/dev/md0指令,查詢/dev/md0的細部設定,以確定它的確是多路徑裝置:

/dev/md0:

Version:00.90.00

CreationTime:TueMar 210:56:372004

RaidLevel:multipath

ArraySize:3905408(3.72GiB3.100GB)

RaidDevices:1

TotalDevices:4

PreferredMinor:0

Persistence:Superblockispersistent

UpdateTime:TueMar 210:56:372004

State:dirty,no-errors

ActiveDevices:1

WorkingDevices:4

FailedDevices:0

SpareDevices:3

Number Major Minor RaidDeviceState

0 8 49 0 activesync /dev/sdd1

1 8 17 1 spare /dev/sdb1

2 8 33 2 spare /dev/sdc1

3 8 1 3 spare /dev/sda1

UUID:4b564608:fa01c716:550bd8ff:735d92dc

Events:0.1

另一個mdadm 的特點是能從操作設定中,強迫移除裝置(不管是RAID陣列或多路徑設定的裝置皆可)。在接下來的例子中,/dev/sda1已經被標示為發生錯誤,然後將被移除,最後在加回設定中。對多路徑的設定來說,這些動作不會對I/O活動產生任何衝擊:

#mdadm/dev/md0-f/dev/sda1

mdadm:set/dev/sda1faultyin/dev/md0

#mdadm/dev/md0-r/dev/sda1

mdadm:hotremoved/dev/sda1

#mdadm/dev/md0-a/dev/sda1

mdadm:hotadded/dev/sda1

#

mdadm使用参考

JesseLee于2004年12月17日 发表

mdadm是linux下用于管理软件raid的工具

以下内容来自manpage页:

基本语法?mdadm[mode][options]

[mode]?有7种:

Assemble:将以前定义的某个阵列加入当前在用阵列。

Build:Buildalegacyarray,每个device没有superblocks

Create:创建一个新的阵列,每个device具有superblocks

Manage: 管理阵列,比如add或remove

Misc:允许单独对阵列中的某个device做操作,比如抹去superblocks或 终止在用的阵列。

FolloworMonitor:监控raid1,4,5,6和multipath的状态

Grow:改变raid容量或 阵列中的device数目

可用的[options]:

-A,--assemble:加入一个以前定义的阵列

-B,--build:Buildalegacyarraywithoutsuperblocks.

-C,--create:创建一个新的阵列

-Q,--query:查看一个device,判断它为一个mddevice或是 一个md阵列的一部分

-D,--detail:打印一个或多个mddevice的详细信息

-E,--examine:打印device上的md?superblock的内容

-F,--follow,--monitor:选择Monitor模式

-G,--grow:改变在用阵列的大小或形态

-h,--help:帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V,--version

-v,--verbose:显示细节

-b,--brief:较少的细节。用于--detail?和?--examine选项

-f,--force

-c,--config=:指定配置文件,缺省为/etc/mdadm/mdadm.conf

-s,--scan:扫描配置文件或/proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf

create?或build使用的选项:

-c,--chunk=:Specifychunksizeofkibibytes.??缺省为64.

--rounding=:Specifyroundingfactorforlineararray(==chunksize)

-l,--level=:设定raidlevel.

--create可用:linear,raid0,0,stripe,raid1,1,mirror,raid4,4,raid5,5,raid6,6,multipath,mp.

--build可用:linear,raid0,0,stripe.

-p,--parity=:设定raid5的奇偶校验规则:

left-asymmetric,left-symmetric,right-asymmetric,right-symmetric,la,ra,ls,rs.缺省为left-symmetric

--layout=:类似于--parity

-n,--raid-devices=:指定阵列中可用?device数目,这个数目只能由--grow修改

-x,--spare-devices=:指定初始阵列的富余device数目

-z,--size=:组建RAID1/4/5/6后从每个device获取的空间总数

--assume-clean:目前仅用于--build选项

-R,--run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。

-f,--force:通常mdadm不允许只用一个device创建阵列,而且创建raid5时会使用一个device作为missingdrive。此选项正相反。

-a,--auto{=no,yes,md,mdp,part,p}{NN}:

1.mdadm新增一個hdd請用

mdadm--manage/dev/md0--add/dev/hdg1

主功能MDDriver副功能 副功能function.

2.新建一個Raid請用

mdadm--create/dev/md0--chunk=32--level=0--raid-devices=4

/dev/hd[efgh]1

以上請接成一行

3.rebuild上面那個Raid

mdadm--build/dev/md0--chunk=32--level=0[...]

通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath通过使用 mdadm 設定 RAID与Multipath
阅读(701) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~