mdadm命令詳解

mdadm命令詳解

mdadm命令詳解

mdadm命令詳解及實(shí)驗(yàn)過程

在線學(xué)習(xí)視頻分享:linux視頻教程

一.概念

? ? ? ? mdadm是multiple devices admin的簡(jiǎn)稱,它是linux下的一款標(biāo)準(zhǔn)的軟件 RAID 管理工具,作者是Neil Brown

二.特點(diǎn)

? ? ? ? mdadm能夠診斷、監(jiān)控和收集詳細(xì)的陣列信息   ?

? ? ? ? mdadm是一個(gè)單獨(dú)集成化的程序而不是一些分散程序的集合,因此對(duì)不同RAID管理命令有共通的語法   ?

? ? ? ? mdadm能夠執(zhí)行幾乎所有的功能而不需要配置文件(也沒有默認(rèn)的配置文件)

三.作用 (引用) ? ? ? ?

? ? ? ? 在linux系統(tǒng)中目前以MD(Multiple Devices)虛擬塊設(shè)備的方式實(shí)現(xiàn)軟件RAID,利用多個(gè)底層的塊設(shè)備虛擬出一個(gè)新的虛擬設(shè)備,并且利用條帶化(stripping)技術(shù)將數(shù)據(jù)塊均勻分布到多個(gè)磁盤上來提高虛擬設(shè)備的讀寫性能,利用不同的數(shù)據(jù)冗祭算法來保護(hù)用戶數(shù)據(jù)不會(huì)因?yàn)槟硞€(gè)塊設(shè)備的故障而完全丟失,而且還能在設(shè)備被替換后將丟失的數(shù)據(jù)恢復(fù)到新的設(shè)備上.

? ? ? ? 目前MD支持linear,multipath,raid0(stripping),raid1(mirror),raid4,raid5,raid6,raid10等不同的冗余級(jí)別和級(jí)成方式,當(dāng)然也能支持多個(gè)RAID陳列的層疊組成raid1 0,raid5 1等類型的陳列

四.實(shí)驗(yàn)

? ? 試題:建立4個(gè)大小為1G的磁盤,并將其中3個(gè)創(chuàng)建為raid5的陣列磁盤,1個(gè)為熱備份磁盤。測(cè)試熱備份磁盤替換陣列中的磁盤并同步數(shù)據(jù)。移除損壞的磁盤,添加一個(gè)新磁盤作為熱備份磁盤。最后要求開機(jī)自動(dòng)掛載。

4.1創(chuàng)建磁盤

?[root@xiao?~]#?fdisk?/dev/sda WARNING:?DOS-compatible?mode?is?deprecated.?It's?strongly?recommended?to ?????????switch?off?the?mode?(command?'c')?and?change?display?units?to ?????????sectors?(command?'u'). Command?(m?for?help):?n First?cylinder?(10486-13054,?default?10486):? Using?default?value?10486 Last?cylinder,?+cylinders?or?+size{K,M,G}?(10486-13054,?default?13054):?+1G Command?(m?for?help):?n First?cylinder?(10618-13054,?default?10618):? Using?default?value?10618 Last?cylinder,?+cylinders?or?+size{K,M,G}?(10618-13054,?default?13054):?+1G Command?(m?for?help):?n First?cylinder?(10750-13054,?default?10750):? Using?default?value?10750 Last?cylinder,?+cylinders?or?+size{K,M,G}?(10750-13054,?default?13054):?+1G Command?(m?for?help):?n First?cylinder?(10882-13054,?default?10882):? Using?default?value?10882 Last?cylinder,?+cylinders?or?+size{K,M,G}?(10882-13054,?default?13054):?+1G Command?(m?for?help):?t Partition?number?(1-8):?8 Hex?code?(type?L?to?list?codes):?fd Changed?system?type?of?partition?8?to?fd?(Linux?raid?autodetect) Command?(m?for?help):?t Partition?number?(1-8):?7 Hex?code?(type?L?to?list?codes):?fd Changed?system?type?of?partition?7?to?fd?(Linux?raid?autodetect) Command?(m?for?help):?t Partition?number?(1-8):?6 Hex?code?(type?L?to?list?codes):?fd Changed?system?type?of?partition?6?to?fd?(Linux?raid?autodetect) Command?(m?for?help):?t Partition?number?(1-8):?5?? Hex?code?(type?L?to?list?codes):?fd Changed?system?type?of?partition?5?to?fd?(Linux?raid?autodetect) Command?(m?for?help):?p? Disk?/dev/sda:?107.4?GB,?107374182400?bytes 255?heads,?63?sectors/track,?13054?cylinders Units?=?cylinders?of?16065?*?512?=?8225280?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disk?identifier:?0x0008ed57 ???Device?Boot??????Start?????????End??????Blocks???Id??System /dev/sda1???*???????????1??????????26??????204800???83??Linux Partition?1?does?not?end?on?cylinder?boundary. /dev/sda2??????????????26???????10225????81920000???83??Linux /dev/sda3???????????10225???????10486?????2097152???82??Linux?swap?/?Solaris /dev/sda4???????????10486???????13054????20633279????5??Extended /dev/sda5???????????10486???????10617?????1058045???fd??Linux?raid?autodetect /dev/sda6???????????10618???????10749?????1060258+??fd??Linux?raid?autodetect /dev/sda7???????????10750???????10881?????1060258+??fd??Linux?raid?autodetect /dev/sda8???????????10882???????11013?????1060258+??fd??Linux?raid?autodetect Command?(m?for?help):?w The?partition?table?has?been?altered! Calling?ioctl()?to?re-read?partition?table. WARNING:?Re-reading?the?partition?table?failed?with?error?16:?設(shè)備或資源忙. The?kernel?still?uses?the?old?table.?The?new?table?will?be?used?at the?next?reboot?or?after?you?run?partprobe(8)?or?kpartx(8) Syncing?disks.

4.2加載內(nèi)核

[root@xiao ~]# partx -a /dev/sda5 /dev/sda

[root@xiao ~]# partx -a /dev/sda6 /dev/sda

[root@xiao ~]# partx -a /dev/sda7 /dev/sda

[root@xiao ~]# partx -a /dev/sda8 /dev/sda

4.3創(chuàng)建raid5及其熱備份盤

[root@xiao?~]#?mdadm?-C?/dev/md0?-l?5?-n?3?-x?1???/dev/sda{5,6,7,8} mdadm:?/dev/sda5?appears?to?be?part?of?a?raid?Array: ????level=raid5?devices=3?ctime=Wed?Dec?17?00:58:24?2014 mdadm:?/dev/sda6?appears?to?be?part?of?a?raid?array: ????level=raid5?devices=3?ctime=Wed?Dec?17?00:58:24?2014 mdadm:?/dev/sda7?appears?to?be?part?of?a?raid?array: ????level=raid5?devices=3?ctime=Wed?Dec?17?00:58:24?2014 mdadm:?/dev/sda8?appears?to?be?part?of?a?raid?array: ????level=raid5?devices=3?ctime=Wed?Dec?17?00:58:24?2014 Continue?creating?array??y mdadm:?Defaulting?to?version?1.2?metadata mdadm:?array?/dev/md0?started.

4.4初始化時(shí)間和磁盤陣列的讀寫的應(yīng)用相關(guān),使用cat /proc/mdstat信息查詢RAID陣列當(dāng)前重構(gòu)的速度和預(yù)期的完成時(shí)間。

[root@xiao?~]#?cat?/proc/mdstat Personalities?:?[raid1]?[raid0]?[raid6]?[raid5]?[raid4]? md0?:?active?raid5?sda7[4]?sda8[3](S)?sda6[1]?sda5[0] ??????2113536?blocks?super?1.2?level?5,?512k?chunk,?algorithm?2?[3/2]?[UU_] ??????[=========&gt;...........]??recovery?=?45.5%?(482048/1056768)?finish=0.3min?speed=30128K/sec ?????? unused?devices:?<none> [root@xiao?~]#?cat?/proc/mdstat Personalities?:?[raid1]?[raid0]?[raid6]?[raid5]?[raid4]? md0?:?active?raid5?sda7[4]?sda8[3](S)?sda6[1]?sda5[0] ??????2113536?blocks?super?1.2?level?5,?512k?chunk,?algorithm?2?[3/3]?[UUU] ?????? unused?devices:?<none> ?[root@xiao?~]#?mke2fs?-t?ext3?/dev/md0????????//格式化raid</none></none>

4.5掛載raid到/mnt目錄下,并查看是否正常(顯示lost+found為正常)

[root@xiao?~]#?mount?/dev/md0?/mnt [root@xiao?~]#?ls?/mnt lost+found

?

4.6查看raid陣列的詳細(xì)信息

[root@xiao?~]#?mdadm?-D?/dev/md0 /dev/md0: ????????Version?:?1.2 ??Creation?Time?:?Wed?Dec?17?03:38:08?2014 ?????Raid?Level?:?raid5 ?????Array?Size?:?2113536?(2.02?GiB?2.16?GB) ??Used?Dev?Size?:?1056768?(1032.17?MiB?1082.13?MB) ???Raid?Devices?:?3 ??Total?Devices?:?4 ????Persistence?:?Superblock?is?persistent ????Update?Time?:?Wed?Dec?17?03:55:11?2014 ??????????State?:?clean? ?Active?Devices?:?3 Working?Devices?:?4 ?Failed?Devices?:?0 ??Spare?Devices?:?1 ?????????Layout?:?left-symmetric ?????Chunk?Size?:?512K ???????????Name?:?xiao:0??(local?to?host?xiao) ???????????UUID?:?bce110f2:34f3fbf1:8de472ed:633a374f ?????????Events?:?18 ????Number???Major???Minor???RaidDevice?State ???????0???????8????????5????????0??????active?sync???/dev/sda5 ???????1???????8????????6????????1??????active?sync???/dev/sda6 ???????4???????8????????7????????2??????active?sync???/dev/sda7 ???????3???????8????????8????????-??????spare???/dev/sda8

4.7模擬損壞其中的一個(gè)磁盤,這里我選擇 ?/dev/sda6磁盤

[root@xiao?~]#?mdadm?/dev/md0?--fail?/dev/sda6 mdadm:?set?/dev/sda6?faulty?in?/dev/md0

4.7查看raid陣列詳細(xì)信息,發(fā)現(xiàn)/dev/sda8自動(dòng)替換了損壞的/dev/sda6磁盤。

[root@xiao?~]#?mdadm?-D?/dev/md0 /dev/md0: ????????Version?:?1.2 ??Creation?Time?:?Wed?Dec?17?03:38:08?2014 ?????Raid?Level?:?raid5 ?????Array?Size?:?2113536?(2.02?GiB?2.16?GB) ??Used?Dev?Size?:?1056768?(1032.17?MiB?1082.13?MB) ???Raid?Devices?:?3 ??Total?Devices?:?4 ????Persistence?:?Superblock?is?persistent ????Update?Time?:?Wed?Dec?17?04:13:59?2014 ??????????State?:?clean,?degraded,?recovering? ?Active?Devices?:?2 Working?Devices?:?3 ?Failed?Devices?:?1 ??Spare?Devices?:?1 ?????????Layout?:?left-symmetric ?????Chunk?Size?:?512K ?Rebuild?Status?:?43%?complete ???????????Name?:?xiao:0??(local?to?host?xiao) ???????????UUID?:?bce110f2:34f3fbf1:8de472ed:633a374f ?????????Events?:?26 ????Number???Major???Minor???RaidDevice?State ???????0???????8????????5????????0??????active?sync???/dev/sda5 ???????3???????8????????8????????1??????spare?rebuilding???/dev/sda8 ???????4???????8????????7????????2??????active?sync???/dev/sda7 ???????1???????8????????6????????-??????faulty???/dev/sda6 [root@xiao?~]#?cat?/proc/mdstat Personalities?:?[raid1]?[raid0]?[raid6]?[raid5]?[raid4]? md0?:?active?raid5?sda7[4]?sda8[3]?sda6[1](F)?sda5[0]

? ? ? 2113536 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] ? #正常的情況會(huì)是[UUU],若第一個(gè)磁盤損壞則顯示[ _UU ].

4.8 移除損壞的硬盤

[root@xiao?~]#?mdadm?/dev/md0?-r?/dev/sda6 mdadm:?hot?removed?/dev/sda6?from?/dev/md0

4.9添加一個(gè)新硬盤作為熱備份盤

[root@xiao?~]#?fdisk?/dev/sda WARNING:?DOS-compatible?mode?is?deprecated.?It's?strongly?recommended?to ?????????switch?off?the?mode?(command?'c')?and?change?display?units?to ?????????sectors?(command?'u'). Command?(m?for?help):?n First?cylinder?(11014-13054,?default?11014):? Using?default?value?11014 Last?cylinder,?+cylinders?or?+size{K,M,G}?(11014-13054,?default?13054):?+1G Command?(m?for?help):?t Partition?number?(1-9):?9 Hex?code?(type?L?to?list?codes):?fd Changed?system?type?of?partition?9?to?fd?(Linux?raid?autodetect) Command?(m?for?help):?p Disk?/dev/sda:?107.4?GB,?107374182400?bytes 255?heads,?63?sectors/track,?13054?cylinders Units?=?cylinders?of?16065?*?512?=?8225280?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disk?identifier:?0x0008ed57 ???Device?Boot??????Start?????????End??????Blocks???Id??System /dev/sda1???*???????????1??????????26??????204800???83??Linux Partition?1?does?not?end?on?cylinder?boundary. /dev/sda2??????????????26???????10225????81920000???83??Linux /dev/sda3???????????10225???????10486?????2097152???82??Linux?swap?/?Solaris /dev/sda4???????????10486???????13054????20633279????5??Extended /dev/sda5???????????10486???????10617?????1058045???fd??Linux?raid?autodetect /dev/sda6???????????10618???????10749?????1060258+??fd??Linux?raid?autodetect /dev/sda7???????????10750???????10881?????1060258+??fd??Linux?raid?autodetect /dev/sda8???????????10882???????11013?????1060258+??fd??Linux?raid?autodetect /dev/sda9???????????11014???????11145?????1060258+??fd??Linux?raid?autodetect Command?(m?for?help):?w The?partition?table?has?been?altered! Calling?ioctl()?to?re-read?partition?table. WARNING:?Re-reading?the?partition?table?failed?with?error?16:?設(shè)備或資源忙. The?kernel?still?uses?the?old?table.?The?new?table?will?be?used?at the?next?reboot?or?after?you?run?partprobe(8)?or?kpartx(8) Syncing?disks. [root@xiao?~]#?partx?-a?/dev/sda9?/dev/sda [root@xiao?~]#?mdadm?/dev/md0?--add?/dev/sda9 mdadm:?added?/dev/sda9 ? [root@xiao?~]#?mdadm?-D?/dev/md0 /dev/md0: ????????Version?:?1.2 ??Creation?Time?:?Wed?Dec?17?03:38:08?2014 ?????Raid?Level?:?raid5 ?????Array?Size?:?2113536?(2.02?GiB?2.16?GB) ??Used?Dev?Size?:?1056768?(1032.17?MiB?1082.13?MB) ???Raid?Devices?:?3 ??Total?Devices?:?4 ????Persistence?:?Superblock?is?persistent ????Update?Time?:?Wed?Dec?17?04:39:35?2014 ??????????State?:?clean? ?Active?Devices?:?3 Working?Devices?:?4 ?Failed?Devices?:?0 ??Spare?Devices?:?1 ?????????Layout?:?left-symmetric ?????Chunk?Size?:?512K ???????????Name?:?xiao:0??(local?to?host?xiao) ???????????UUID?:?bce110f2:34f3fbf1:8de472ed:633a374f ?????????Events?:?41 ????Number???Major???Minor???RaidDevice?State ???????0???????8????????5????????0??????active?sync???/dev/sda5 ???????3???????8????????8????????1??????active?sync???/dev/sda8 ???????4???????8????????7????????2??????active?sync???/dev/sda7 ???????5???????8????????9????????-??????spare???/dev/sda9

5.開機(jī)自動(dòng)掛載

編輯/etc/fsab文件

/dev/md0 ?/mnt ? ext3 defaults 0 0

:wq

?

?

6.mdadm中文man(引用)

基本語法 : mdadm [mode] [options]

[mode] 有7種:

Assemble:將以前定義的某個(gè)陣列加入當(dāng)前在用陣列。

Build:Build a legacy array ,每個(gè)device 沒有 superblocks

Create:創(chuàng)建一個(gè)新的陣列,每個(gè)device 具有 superblocks

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

Misc:允許單獨(dú)對(duì)陣列中的某個(gè) device 做操作,比如抹去superblocks 或 終止在用的陣列。

Follow or Monitor:監(jiān)控 raid 1,4,5,6 和 multipath 的狀態(tài)

Grow:改變r(jià)aid 容量或 陣列中的 device 數(shù)目

可用的 [options]:

-A, –assemble:加入一個(gè)以前定義的陣列

-B, –build:Build a legacy array without superblocks.

-C, –create:創(chuàng)建一個(gè)新的陣列

-Q, –query:查看一個(gè)device,判斷它為一個(gè) md device 或是 一個(gè) md 陣列的一部分

-D, –detail:打印一個(gè)或多個(gè) md device 的詳細(xì)信息

-E, –examine:打印 device 上的 md superblock 的內(nèi)容

-F, –follow, –monitor:選擇 Monitor 模式

-G, –grow:改變?cè)谟藐嚵械拇笮』蛐螒B(tài)

-h, –help:幫助信息,用在以上選項(xiàng)后,則顯示該選項(xiàng)信息

–help-options

-V, –version

-v, –verbose:顯示細(xì)節(jié)

-b, –brief:較少的細(xì)節(jié)。用于 –detail 和 –examine 選項(xiàng)

-f, –force

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

-s, –scan:掃描配置文件或 /proc/mdstat以搜尋丟失的信息。配置文件/etc/mdadm/mdadm.conf

create 或 build 使用的選項(xiàng):

-c, –chunk=:Specify chunk size of kibibytes. 缺省為 64.

–rounding=: Specify rounding factor for linear array (==chunk size)

-l, –level=:設(shè)定 raid level.

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

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

-p, –parity=:設(shè)定 raid5 的奇偶校驗(yàn)規(guī)則:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省為left-symmetric

–layout=:類似于–parity

-n, –raid-devices=:指定陣列中可用 device 數(shù)目,這個(gè)數(shù)目只能由 –grow 修改

-x, –spare-devices=:指定初始陣列的富余device 數(shù)目

-z, –size=:組建RAID1/4/5/6后從每個(gè)device獲取的空間總數(shù)

–assume-clean:目前僅用于 –build 選項(xiàng)

-R, –run:陣列中的某一部分出現(xiàn)在其他陣列或文件系統(tǒng)中時(shí),mdadm會(huì)確認(rèn)該陣列。此選項(xiàng)將不作確認(rèn)。

-f, –force:通常mdadm不允許只用一個(gè)device 創(chuàng)建陣列,而且創(chuàng)建raid5時(shí)會(huì)使用一個(gè)device作為missing drive。此選項(xiàng)正相反。

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

更多編程相關(guān)內(nèi)容,請(qǐng)關(guān)注php中文網(wǎng)linux視頻教程欄目!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享