今天小編給大家分享的是mdadm命令的作用是什么,相信很多人都不太了解,為了讓大家更加了解mdadm命令,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。
創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、H5場景定制、網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、小程序設(shè)計服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
mdadm命令詳解
mdadm命令詳解及實驗過程
一.概念
mdadm是multiple devices admin的簡稱,它是Linux下的一款標(biāo)準(zhǔn)的軟件 RAID 管理工具,作者是Neil Brown
二.特點
mdadm能夠診斷、監(jiān)控和收集詳細的陣列信息
mdadm是一個單獨集成化的程序而不是一些分散程序的集合,因此對不同RAID管理命令有共通的語法
mdadm能夠執(zhí)行幾乎所有的功能而不需要配置文件(也沒有默認(rèn)的配置文件)
三.作用 (引用)
在linux系統(tǒng)中目前以MD(Multiple Devices)虛擬塊設(shè)備的方式實現(xiàn)軟件RAID,利用多個底層的塊設(shè)備虛擬出一個新的虛擬設(shè)備,并且利用條帶化(stripping)技術(shù)將數(shù)據(jù)塊均勻分布到多個磁盤上來提高虛擬設(shè)備的讀寫性能,利用不同的數(shù)據(jù)冗祭算法來保護用戶數(shù)據(jù)不會因為某個塊設(shè)備的故障而完全丟失,而且還能在設(shè)備被替換后將丟失的數(shù)據(jù)恢復(fù)到新的設(shè)備上.
目前MD支持linear,multipath,raid0(stripping),raid1(mirror),raid4,raid5,raid6,raid10等不同的冗余級別和級成方式,當(dāng)然也能支持多個RAID陳列的層疊組成raid1 0,raid5 1等類型的陳列
四.實驗
試題:建立4個大小為1G的磁盤,并將其中3個創(chuàng)建為raid5的陣列磁盤,1個為熱備份磁盤。測試熱備份磁盤替換陣列中的磁盤并同步數(shù)據(jù)。移除損壞的磁盤,添加一個新磁盤作為熱備份磁盤。最后要求開機自動掛載。
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初始化時間和磁盤陣列的讀寫的應(yīng)用相關(guān),使用cat /proc/mdstat信息查詢RAID陣列當(dāng)前重構(gòu)的速度和預(yù)期的完成時間。
[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_] [=========>...........] recovery = 45.5% (482048/1056768) finish=0.3min speed=30128K/sec unused devices:[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: [root@xiao ~]# mke2fs -t ext3 /dev/md0 //格式化raid
4.5掛載raid到/mnt目錄下,并查看是否正常(顯示lost+found為正常)
[root@xiao ~]# mount /dev/md0 /mnt [root@xiao ~]# ls /mnt lost+found
4.6查看raid陣列的詳細信息
[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模擬損壞其中的一個磁盤,這里我選擇 /dev/sda6磁盤
[root@xiao ~]# mdadm /dev/md0 --fail /dev/sda6 mdadm: set /dev/sda6 faulty in /dev/md0
4.7查看raid陣列詳細信息,發(fā)現(xiàn)/dev/sda8自動替換了損壞的/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] #正常的情況會是[UUU],若第一個磁盤損壞則顯示[ _UU ].
4.8 移除損壞的硬盤
[root@xiao ~]# mdadm /dev/md0 -r /dev/sda6 mdadm: hot removed /dev/sda6 from /dev/md0
4.9添加一個新硬盤作為熱備份盤
[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.開機自動掛載
編輯/etc/fsab文件
/dev/md0 /mnt ext3 defaults 0 0
:wq
6.mdadm中文man(引用)
基本語法 : mdadm [mode] [options]
[mode] 有7種:
Assemble:將以前定義的某個陣列加入當(dāng)前在用陣列。
Build:Build a legacy array ,每個device 沒有 superblocks
Create:創(chuàng)建一個新的陣列,每個device 具有 superblocks
Manage: 管理陣列,比如 add 或 remove
Misc:允許單獨對陣列中的某個 device 做操作,比如抹去superblocks 或 終止在用的陣列。
Follow or Monitor:監(jiān)控 raid 1,4,5,6 和 multipath 的狀態(tài)
Grow:改變raid 容量或 陣列中的 device 數(shù)目
可用的 [options]:
-A, --assemble:加入一個以前定義的陣列
-B, --build:Build a legacy array without superblocks.
-C, --create:創(chuàng)建一個新的陣列
-Q, --query:查看一個device,判斷它為一個 md device 或是 一個 md 陣列的一部分
-D, --detail:打印一個或多個 md device 的詳細信息
-E, --examine:打印 device 上的 md superblock 的內(nèi)容
-F, --follow, --monitor:選擇 Monitor 模式
-G, --grow:改變在用陣列的大小或形態(tài)
-h, --help:幫助信息,用在以上選項后,則顯示該選項信息
--help-options
-V, --version
-v, --verbose:顯示細節(jié)
-b, --brief:較少的細節(jié)。用于 --detail 和 --examine 選項
-f, --force
-c, --config= :指定配置文件,缺省為 /etc/mdadm/mdadm.conf
-s, --scan:掃描配置文件或 /proc/mdstat以搜尋丟失的信息。配置文件/etc/mdadm/mdadm.conf
create 或 build 使用的選項:
-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 的奇偶校驗規(guī)則:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省為left-symmetric
--layout=:類似于--parity
-n, --raid-devices=:指定陣列中可用 device 數(shù)目,這個數(shù)目只能由 --grow 修改
-x, --spare-devices=:指定初始陣列的富余device 數(shù)目
-z, --size=:組建RAID1/4/5/6后從每個device獲取的空間總數(shù)
--assume-clean:目前僅用于 --build 選項
-R, --run:陣列中的某一部分出現(xiàn)在其他陣列或文件系統(tǒng)中時,mdadm會確認(rèn)該陣列。此選項將不作確認(rèn)。
-f, --force:通常mdadm不允許只用一個device 創(chuàng)建陣列,而且創(chuàng)建raid5時會使用一個device作為missing drive。此選項正相反。
-a, --auto{=no,yes,md,mdp,part,p}{NN}:
關(guān)于mdadm命令的作用是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。