linux 系統(tǒng)中軟件raid 配置方法

2.3 RAID的配置文件;
RAID并不是一定要配置文件,但有配置文件,會(huì)方便管理,比如RAID最精簡(jiǎn)的方法執(zhí)行、狀態(tài)查看………… 也需要RAID的配置文件。如果不沒(méi)有配置文件,還要指定RAID成員;
RAID的配置文件是mdadm.conf 位于/etc目錄,如果你沒(méi)有這個(gè)文件,可以自己創(chuàng)建一個(gè);當(dāng)我們做好RAID后,首先要配置這個(gè)文件;把你所有的RAID配置信息都寫入這個(gè)文件。 我們可以自己手工編寫。參照mdadm.conf 配置文件的示例就比較方便。
你也可以用下面的辦法,要先做好/etc/mdamd.conf的備份;
[root@linuxsir~] mv /etc/mdadm.conf /etc/mdadm.conf.bak
第一步:搜索RAID;
搜索RAID是以激活RAID為前掉條件,否則下面的命令不會(huì)有什么作用;請(qǐng)參見激活RAID的辦法;
語(yǔ)法:
mdadm -Ds
注: 其中-D 表示 --detail ,-s 表示--scan ,兩者結(jié)合起來(lái)就-Ds;
提示:運(yùn)行查詢RAID的時(shí),要首先激活RAID;
舉例:
[root@linuxsir~] mdadm -Ds
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
第二步:查詢RAID的詳細(xì)信息;主要是查看RAID的成員有哪些;
語(yǔ)法:
mdadm -D RAID設(shè)備
舉例:
下面查詢已經(jīng)啟動(dòng)了的RAID設(shè)備/dev/md0的詳細(xì)信息;
[root@linuxsir~] mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Wed Aug 1 07:11:43 2007
RAID Level : RAID0
Array Size : 156249856 (149.01 GiB 160.00 GB)
RAID Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Aug 2 07:22:27 2007
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
UUID : 35e1a3e6:ed59c368:e5bc9166:5004fe52
Events : 0.21
Number Major Minor RAIDDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
注:通過(guò)查詢?cè)敿?xì)信息,我們得到 /dev/md0是RAID0,下面兩個(gè)成員/dev/sdb和/dev/sdc ;UUID為 35e1a3e6:ed59c368:e5bc9166:5004fe52 ;這個(gè)RAID是有超級(jí)塊的;
第三步:書寫RAID的配置文件mdadm.conf;
[root@linuxsir~] mdadm -Ds >> /etc/mdadm.conf 注:把查詢出來(lái)的RAID信息寫到mdadm.conf中;
[root@linuxsir~]more /etc/mdadm.conf 注:看看有沒(méi)有內(nèi)容寫進(jìn)來(lái)?
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
因?yàn)槲覀冊(cè)谇懊嬉呀?jīng)通過(guò)mdadm -D /dev/md0 得知其下有成員/dev/sdb 和 /dev/sdc 兩塊硬盤。所以我們要修改一下mdamd.conf的內(nèi)容。要在加上/dev/md0的成員/dev/sdb和/dev/sdc;用編輯器打開/etc/mdadm.conf;
在下面類似的一行;
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
修改成
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 devices=/dev/sdb,/dev/sdc
其實(shí)也就是把/dev/md0這個(gè)RAID設(shè)備的成員指定出來(lái),每個(gè)設(shè)備之間要用,號(hào)隔開?;蛘邔懗?devices=/dev/sd[bc]類似的寫法也行;
我們來(lái)看一下/dev/md0這行,其中/dev/md0這行是一個(gè)RAID0設(shè)備,由兩個(gè)成員組成,/dev/md0的UUID為 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 ,兩個(gè)成員分別是/dev/sdb和/dev/sdc兩個(gè)硬盤;
其實(shí)我們無(wú)論添加多少RAID設(shè)備,都可以通過(guò)這種方法寫入RAID配置文件/etc/mdadm.conf中,每個(gè)RAID設(shè)備一行;寫好后,我們要重啟一下RAID;
[root@linuxsir~] mdadm -Ss
或
[root@linuxsir~] mdadm --stop --scan
mdadm: stopped /dev/md0
[root@linuxsir~] mdadm -As
或
[root@linuxsir~] mdadm --assemble --scan
mdadm: /dev/md0 has been started with 2 drives.
注: -S 和--stop相同,表示停止RAID。而-s和 --scan相同,表示掃描RAID。-A和--assemble表示激活RAID;這些參數(shù)都比較簡(jiǎn)單,查查man和help就知道了;
激活RAID后,我們要通過(guò)查看RAID的狀態(tài)來(lái)判斷RAID是否正常和健康……
3 RAID設(shè)備的使用:RAID設(shè)備分區(qū)、文件系統(tǒng)初始化,掛載方法;
既然我們已經(jīng)把RAID設(shè)備做好了,我們就要使用這個(gè)設(shè)備。RAID做好后,類似一個(gè)沒(méi)有格式化的新硬盤。如果我們拿到新硬盤時(shí)第一步是做什么?對(duì),是分區(qū)和格式化,安裝操作系統(tǒng)。RAID做好后,沒(méi)有文件系統(tǒng),一樣是沒(méi)辦法用的,所以我們做好RAID后,要來(lái)創(chuàng)建文件系統(tǒng);RAID只不過(guò)是把幾個(gè)硬盤或分區(qū)綁定在一起成為一個(gè)大的虛擬物理存儲(chǔ)設(shè)備。如果我們要對(duì)這個(gè)大的虛擬設(shè)備進(jìn)行使用,就要在這個(gè)設(shè)備上創(chuàng)建文件系統(tǒng)才行。Linux 目前可用的文件系統(tǒng)有reiserfs、xfs、ext3,我推薦reiserfs和xfs,感覺這個(gè)比較安全點(diǎn)。雖然現(xiàn)在有超強(qiáng)的zfs,但我認(rèn)為還是處于小白鼠階段。對(duì)于重量級(jí)應(yīng)用來(lái)說(shuō),我們還是觀察一段時(shí)間再說(shuō)。
RAID做好后,我們要為它進(jìn)行文件系統(tǒng)初始化,當(dāng)初始化完成后,我們就可以掛載使用了。在一般情況下,我們可以把做好的RAID掛載到/home,我們可以把所有的存儲(chǔ)性文件。
在Linux中,創(chuàng)建文件系統(tǒng)的工具有 mkfs.xfs(創(chuàng)建xfs文件系統(tǒng)), mkfs.jfs(創(chuàng)建JFS文件系統(tǒng)), mkfs.reiserfs (創(chuàng)建reiserfs文件系統(tǒng)), mkfs.ext3 (創(chuàng)建ext3文件系統(tǒng))…… 。我們推薦的是reiserfs和xfs,不推薦ext2或ext3,為什么不推薦?因?yàn)閷?shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),性能不如人、安全性不如人,怎么用?我不是ext文件系統(tǒng)的專家,我只用最方便,維護(hù)起來(lái)比較容易的文件系統(tǒng)。
RAID也可以分區(qū)來(lái)使用,但以我看來(lái),大可不必,凡是能用到RAID的,大多是服務(wù)器領(lǐng)域。我們可以把RAID做成后,掛載到/home目錄上。有關(guān)數(shù)據(jù)存儲(chǔ)的都放在RAID上。操作系統(tǒng)并不安裝在RAID上,當(dāng)操作系統(tǒng)發(fā)生故障的時(shí)候,我們僅僅是修復(fù)或重裝操作系統(tǒng),對(duì)數(shù)據(jù)存儲(chǔ)的RAID沒(méi)有任何影響。就是重裝操作系統(tǒng),我們也能在幾分鐘之內(nèi)恢復(fù)RAID。
如果您想把RAID再進(jìn)進(jìn)行分區(qū)使用,可以用fdisk 、parted或cfdisk 來(lái)進(jìn)行分區(qū)工作,也可以嘗試LVM的來(lái)對(duì)分區(qū)進(jìn)行管理,LVM能自動(dòng)調(diào)整分區(qū)的大小。當(dāng)然,我不會(huì)推薦RAID+LVM,或?qū)AID進(jìn)行分區(qū)操作。
RAID做好后,我們就像使用物理硬盤一樣使用它,比如根據(jù)前面的例子,把/dev/sdb和/dev/sdc兩個(gè)硬盤做成RAID0,其設(shè)備為/dev/md0,我們就可以對(duì)/dev/md0進(jìn)行和物理硬盤一樣的操作。如果我們不分區(qū),只是進(jìn)行創(chuàng)建文件系統(tǒng),那就比較簡(jiǎn)單了。
比如我們?cè)?dev/md0上創(chuàng)建reiserfs文件系統(tǒng),我們可以用mkfs.reiserfs命令來(lái)完成。
第一步:查看/dev/md0設(shè)備是否存在,以及它的容量;
[root@linuxsir:~]# fdisk -l /dev/md0
Disk /dev/md0: 159.9 GB, 159999852544 bytes
2 heads, 4 sectors/track, 39062464 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk /dev/md0 doesn't contain a valid partition table
注:我們可以看到/dev/md0設(shè)備有 158.0GB的容量,不包含有效分區(qū)。如果您想要用分區(qū)操作,請(qǐng)用fdisk /dev/md0 、或cfdisk /dev/md0 或parted /dev/md0來(lái)操作;
第二步:創(chuàng)建文件系統(tǒng);
在這里我們是計(jì)劃用 reiserfs 文件系統(tǒng);
[root@linuxsir:~]# mkfs.reiserfs /dev/md0
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)
A pair of credits:
Nikita Danilov wrote most of the core balancing code, plugin infrastructure,
and directory code. He steadily worked long hours, and is the reason so much of
the Reiser4 plugin infrastructure is well abstracted in its details. The carry
function, and the use of non-recursive balancing, are his idea.
Oleg Drokin was the debugger for V3 during most of the time that V4 was under
development, and was quite skilled and fast at it. He wrote the large write
optimization of V3.
Guessing about desired format.. Kernel 2.6.21.5-smp is running.
Format 3.6 with standard journal
Count of blocks on the device: 39062464
Number of blocks consumed by mkreiserfs formatting process: 9404
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 2b06b743-8a4e-4421-b857-68eb2176bc50
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/md0'!
Continue (y/n):y 注:在這里輸入y ,就進(jìn)行創(chuàng)建文件系統(tǒng)了;
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.
ReiserFS is successfully created on /dev/md0.
這樣文件系統(tǒng) reiserfs 就創(chuàng)建成功了。如果您想創(chuàng)建xfs文件系統(tǒng),就用mkfs.xfs /dev/md0 ,其它文件系統(tǒng)也類似 ……
第三步:掛載文件系統(tǒng)并使用;
[root@linuxsir:~]# mkdir /mnt/data
[root@linuxsir:~]# mount /dev/md0 /mnt/data
[root@linuxsir:~]# df -lh /dev/md0
文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn)
/dev/md0 150G 33M 149G 1% /mnt/RAID0
注: 這樣就就/dev/md0 設(shè)備掛載到/mnt/RAID0上了??梢钥吹皆O(shè)備大小為150G。已使用33M,掛載點(diǎn)為/mnt/RAID0。我們可以向設(shè)備里存儲(chǔ)文件;
其實(shí)根據(jù)Linux文件系統(tǒng)的結(jié)構(gòu),以及最新Linux軟件方便易用的特點(diǎn)。我們完全可以把/home獨(dú)立出來(lái)。把RAID設(shè)備掛載到/home目錄上。凡是涉及用戶或數(shù)據(jù)存儲(chǔ)的,都可以放在/home中,比如數(shù)據(jù)庫(kù),網(wǎng)絡(luò)服務(wù)器有關(guān)數(shù)據(jù)存儲(chǔ)的,都指定到 /home中的文件夾中。所有的一切都是根據(jù)方便管理為前提。
如果您的RAID是在安裝系統(tǒng)后創(chuàng)建的,如果掛載到Linux現(xiàn)有目錄下,要先做好相應(yīng)目錄的數(shù)據(jù)遷移到RAID設(shè)備中,然后再把RAID掛載到Linux目錄中。比如你想把RAID掛載到/home目錄中,可以先創(chuàng)建一個(gè)臨時(shí)的目錄,把RAID掛到這個(gè)臨時(shí)的目錄上,接著再把/home目錄下的文件都移到 RAID上,然后再把RAID卸載,再重新掛載到/home中,這樣/home的數(shù)據(jù)就完遷移了。
至于如何把操作系統(tǒng)安裝或移到RAID上,不同的Linux發(fā)行版有不同的方法。Fedora或Redhat在安裝的過(guò)程中,就為我們提供了在RAID1上安裝系統(tǒng)。其它的發(fā)行版是否支持,不太知道,Slackware是不支持。如果您想把系統(tǒng)移植到RAID1中,可能需要安裝好系統(tǒng)后,再進(jìn)行移植。 感覺軟RAID1在一塊硬盤上做,沒(méi)太大的必要,如果要做RAID1,也要在兩個(gè)硬盤上(或兩個(gè)屬于不同硬盤的分區(qū)上來(lái)做)。
如何開機(jī)掛載RAID設(shè)備,不同的發(fā)行版也有自己的方法,流程是先激活RAID,然后才是掛載。
4 軟RAID的高級(jí)進(jìn)階及維護(hù);
RAID做好以后,并不是萬(wàn)事大吉了,還要進(jìn)行日常維護(hù);比如某個(gè)硬盤(或分區(qū))壞掉,我們可以在不停機(jī)的情況下?lián)Q上?;蛘呶覀?yōu)镽AID做一個(gè)冗余的硬盤或分區(qū),當(dāng)RAID發(fā)生故障時(shí),冗余硬盤或分區(qū)自動(dòng)推上工作,能實(shí)現(xiàn)零停機(jī)任務(wù)。
4.1 如何向已存在的RAID中,添加一塊硬盤或分區(qū);
RAID有幾種模式,比如創(chuàng)建、管理。下面我們所說(shuō)的就是RAID的管理模式Manage,也可以說(shuō)是RAID的進(jìn)階應(yīng)用。管理模式的目的,僅僅是為了把有問(wèn)題的RAID成員換掉,或者為了管理的需要把其中一個(gè)RAID成員由另一個(gè)來(lái)替換,也可能是為了安全需要,讓新增加的硬盤或分區(qū)當(dāng)做RAID的備用(spare)成員;在管理模式中, RAID的真正成員個(gè)數(shù)并不改變。比如我們做RAID5是,用的是三個(gè)硬盤或分區(qū)。在增加RAID成員時(shí),RAID5仍是三個(gè)成員,容量還是保持不變,如果三個(gè)RAID成員完全正常健康,新增加的成員,僅僅是備用(spare)成員。備用成員的用途就是當(dāng)RAID的真正成員發(fā)生問(wèn)題時(shí),備用成員會(huì)馬上啟動(dòng),僅僅是起到安全的冗余的作用;
我們要向一個(gè)既已存在RAID中,添加或移除一個(gè)硬盤或分區(qū),我們要用到mdadm 工具的 -f 和-r 以及-a 參數(shù);
mdadm /dev/mdX -f RAID成員
mdadm /dev/mdX -r RAID成員
mdadm /dev/mdX -a RAID成員
注:
-f 同 --fail 表示把一個(gè)設(shè)備列為有問(wèn)題的設(shè)備,以便用-r或--remove參數(shù)移除;
-r 同 --remove 表示把RAID中的一個(gè)成員移出RAID;
-a 同 --add 表示向一個(gè)RAID中添加一個(gè)成員;
--re-add 重新把最近移除的RAID成員重新添加到RAID中;
值得一提的是,這些參數(shù)的運(yùn)用,必須是在RAID正常運(yùn)行的情況下進(jìn)行。其中RAID設(shè)備是/dev/mdX,X是一個(gè)大于0的整數(shù),RAID成員是一個(gè)硬盤或分區(qū)。添加設(shè)備并不會(huì)把RAID的容量擴(kuò)大,僅僅是為了添加備用成員,比如在RAID1、RAID5和RAID10中特加有用。當(dāng)一個(gè)RAID成員發(fā)生故障的時(shí)候,要用這種辦法來(lái)讓新成員頂替工作;
舉例:
[root@linuxsir:~]# mdadm /dev/md0 -f /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -r /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb5
注:當(dāng)我們想把一個(gè)RAID的成員/dev/sdb3移除 RAID設(shè)備/dev/md0時(shí),要首先標(biāo)注它為有問(wèn)題的(也可能是完全正常的,為了管理需要)。然后 用-r參數(shù)移除,接著用-a 參數(shù)再添加一個(gè)設(shè)備/dev/sdb5到RAID設(shè)備/dev/md0中;
當(dāng)我們用mdadm -D /dev/md0查看RAID的狀態(tài)時(shí),我們會(huì)看到RAID的詳細(xì)信息。比如是否正常、RAID成員…… 下面是我們需要掌握的;
Raid Level : 注:陣列級(jí)別;比如Raid5
Array Size : 注:陣列容量大小;
Used Dev Size : 注:RAID單位成員容量大小,也就是構(gòu)成RAID的成員硬盤或分區(qū)的容量的大小;
Raid Devices : 注:RAID成員的個(gè)數(shù);
Total Devices : RAID中下屬成員的總計(jì)個(gè)數(shù),因?yàn)檫€有冗余硬盤或分區(qū),也就是spare,為了RAID的正常運(yùn)珩,隨時(shí)可以推上去加入RAID的;
State : clean, degraded, recovering 注:狀態(tài),包括三個(gè)狀態(tài),clean表示正常, degraded 表示有問(wèn)題, recovering 表示正在恢復(fù)或構(gòu)建;
Active Devices : 被激活的RAID成員個(gè)數(shù);
Working Devices : 注:正常的工作的RAID成員個(gè)數(shù);
Failed Devices : 出問(wèn)題的RAID成員;
Spare Devices : 備用RAID成員個(gè)數(shù),當(dāng)一個(gè)RAID的成員出問(wèn)題時(shí),用其它硬盤或分區(qū)來(lái)頂替時(shí),RAID要進(jìn)行構(gòu)建,在沒(méi)構(gòu)建完成時(shí),這個(gè)成員也會(huì)被認(rèn)為是spare設(shè)備;
Rebuild Status : 注:RAID的構(gòu)建進(jìn)度,比如 38% complete ,表示構(gòu)建到 38%;
UUID : 注:RAID的UUID值,在系統(tǒng)中是唯一的;
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:表示這個(gè)成員是激活的;
1 8 18 1 active sync /dev/sdb2 注:表示這個(gè)成員是激活的;
4 8 19 2 spare rebuilding /dev/sdb3 注:未被激活,正在構(gòu)建中的成頁(yè),正在傳輸數(shù)據(jù);
3 8 49 - spare /dev/sdd1
注:spare /dev/sdd1 表示/dev/sdd1是RAID的備用成員,當(dāng)RAID的正式成員/dev/sdb1、/dev/sdb2或/dev/sdb3中有一個(gè)出問(wèn)題的時(shí)候,這個(gè)備用成員會(huì)自動(dòng)進(jìn)行工作的。這個(gè)并不是必須的,可以用添加RAID成員的辦法來(lái)添加,也可以在創(chuàng)建的RAID的時(shí)候添加;
4.2 如何為一個(gè)現(xiàn)有RAID擴(kuò)充容量;
在RAID的管理模式中,我們提到增加RAID成員的辦法,如果RAID所有真正成員都是健康的,這個(gè)成員就進(jìn)入備用(spare)狀態(tài)。只有當(dāng)真正成員有問(wèn)題時(shí),這個(gè)備用成員才啟用頂替出問(wèn)題的成員來(lái)工作。
但我們能不能向RAID添加一個(gè)新成員,并且讓他成為RAID的真正成員,并且達(dá)到為RAID擴(kuò)充容量呢?比如有一個(gè)RAID5,用的是3個(gè)20G 的分區(qū)做的,其總?cè)萘渴?3-1)x20=40G,我們能否為這個(gè)RAID5新增加一個(gè)20G的分區(qū),并且讓其成為這個(gè)RAID5真正的成員,并且達(dá)到擴(kuò)充容量的目的,也就是說(shuō)讓這個(gè)RAID5有四個(gè)真正的成員,其容量為(4-1)x20=60G。
在硬RAID中,這個(gè)工作比較容易,但在軟RAID中,是否能實(shí)現(xiàn)呢?答案是肯定的,這種情況僅針對(duì)已經(jīng)做好的RAID,并且已經(jīng)在存儲(chǔ)過(guò)程中發(fā)現(xiàn)RAID容易不足的情況下使用。如果是一個(gè)新做的RAID,我們發(fā)現(xiàn)計(jì)劃錯(cuò)了,我們重新做一次就行了,沒(méi)必要用擴(kuò)容的辦法。
我們?yōu)楝F(xiàn)有的RAID擴(kuò)充容量,利用的就是RAID的Grow模式,中譯為RAID的增長(zhǎng)模式;應(yīng)用范圍是RAID1、RAID4、RAID5、RAID6。
RAID擴(kuò)容流程:
向一個(gè)已經(jīng)存在的RAID中添加一個(gè)成員->執(zhí)行擴(kuò)容指令
注: 在這里我們要用到RAID的管理模式中的添加成員的辦法。也就是用到mdadm 中的-a 參數(shù),請(qǐng)參考上一節(jié)的內(nèi)容。這時(shí)添加的成員是備用(spare)成員,我們要把備用成員“推”到位置上。這時(shí)我們要用到mdadm的Grow模式;
舉例說(shuō)明:
比如我們做的RAID5,由三個(gè)硬盤分區(qū)/dev/sdb1、/dev/sdc1、/dev/sdd1構(gòu)成,這時(shí)的RAID5真正成員就是3個(gè)。當(dāng)我們添加一個(gè)分區(qū)/dev/sdb2到這個(gè)RAID5時(shí),新增加的這個(gè)sdb2就是這個(gè)RAID5R 的備用(spare)成員。比如已有的RAID5的設(shè)備是/dev/md0;
首先,查看RAID狀態(tài);
[root@linuxsir:~]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注:RAID級(jí)別;
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注:RAID中每個(gè)成員的容量是19534912
Raid Devices : 3 注:RAID真正成員是3個(gè)設(shè)備構(gòu)成;
Total Devices : 3 注: 總共設(shè)備是3個(gè);
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:02:33 2007
State : clean 注:狀態(tài)正常;
Active Devices : 3 注:激活的設(shè)備是3個(gè);其實(shí)就是RAID真正成員正常激活的個(gè)數(shù);
Working Devices : 3 注:正常工作的設(shè)備是3個(gè);
Failed Devices : 0 注:有問(wèn)題的設(shè)備是0個(gè);
Spare Devices : 0 注:備用設(shè)備是0個(gè);
Layout : left-symmetric
Chunk Size : 64K
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d 注:RAID的UUID;
Events : 0.16
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:RAID真正成員/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注:RAID真正成員/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注:RAID真正成員/dev/sdd1
其次,我們?yōu)檫@個(gè)RAID5添加一個(gè)成員;
把/dev/sdb2添加到RAID設(shè)備/dev/md0,然后查看RAID的狀態(tài)及詳細(xì)信息;
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb2 注:添加分區(qū)/dev/sdb2到/dev/md0中;
mdadm: added /dev/sdb2
[root@linuxsir:~]# mdadm -D /dev/md0 注:查看/dev/md0的詳細(xì)信息;
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注:RAID級(jí)別;raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注:RAID中每個(gè)成員的容量是19534912
Raid Devices : 3 注:RAID真正成員是3個(gè)設(shè)備構(gòu)成;
Total Devices : 4 注: 總共設(shè)備是4個(gè);
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:14:13 2007
State : clean 注:狀態(tài)正常;
Active Devices : 3 注:激活的設(shè)備是3個(gè);其實(shí)就是RAID真正成員正常激活的個(gè)數(shù);
Working Devices : 4 注:正常工作的設(shè)備是4個(gè);
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:RAID真正成員/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注:RAID真正成員/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注:RAID真正成員/dev/sdd1
3 8 18 - spare /dev/sdb2 注:注:RAID備用成員/dev/sdb2
添加/dev/sdb2到/dev/md0后,我們發(fā)現(xiàn)RAID的組成設(shè)備總數(shù)由3個(gè)變成了4個(gè),但真正成員個(gè)數(shù)并沒(méi)有變化,多出了一個(gè)備用成員/dev/sdb2。但/dev/md0的容量并沒(méi)有變大。 所以這時(shí)我們要為RAID來(lái)擴(kuò)容,解決辦法就是讓/dev/sdb2成為RAID的真正成員,RAID的容易由 40G擴(kuò)展到 60G;
第三,為RAID進(jìn)行擴(kuò)充容量;
在這里我們要用到RAID的Grow模式,也就是增長(zhǎng)模式。擴(kuò)充模式,極為簡(jiǎn)單,有--size參數(shù),-n參數(shù) --size是指大定RAID的大小,這個(gè)可以省略,具體由你所做的RAID級(jí)別而定。 -n 代表RAID真正成員的個(gè)數(shù)。在這個(gè)例子中,RAID5真正成員是3個(gè),后來(lái)我們又添加了一個(gè)備用成員/dev/sdb2進(jìn)去。我們所做的就是把這個(gè)備用成員“推”到真正成員的位置上。也就是說(shuō)RAID的真正成員由3個(gè)變成4個(gè)。只是這一簡(jiǎn)單的指令,就可以讓RAID5容量增加起來(lái)。
[root@linuxsir:~] # mdadm -G /dev/md0 -n4
mdadm: Need to backup 384K of critical section..
mdadm: ... critical section passed.
然后我們查看RAID的詳細(xì)信息;
[root@linuxsir:~] # mdadm -D /dev/md0
/dev/md0:
Version : 00.91.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:RAID的容量,我們發(fā)現(xiàn)RAID的容量并沒(méi)有增大,這是因?yàn)闃?gòu)建沒(méi)有完成;等構(gòu)建完成時(shí)就會(huì)改變過(guò)來(lái);
Used Dev Size : 19534912 (18.63 GiB 20.00 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:36:06 2007
State : clean, recovering 注:正常,恢復(fù)中;
Active Devices : 4 注:RAID的正式成員已經(jīng)變到4個(gè);
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 注:備用成員由1個(gè),減少到0個(gè);說(shuō)明已經(jīng)把RAID備用成員推到了RAID的正式成員中;
Layout : left-symmetric
Chunk Size : 64K
Reshape Status : 17% complete 注:RAID重新構(gòu)建狀態(tài),已經(jīng)完成17%;目前并未完成構(gòu)建;
Delta Devices : 1, (3->4) 注:RAID的正式成員增加一個(gè),由3個(gè)到4個(gè);
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.100
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 18 3 active sync /dev/sdb2 注:/dev/sdb2已經(jīng)由spare改變到 active ,也就是說(shuō)由備用
當(dāng)執(zhí)行完增容后,我們發(fā)現(xiàn)RAID的容量并沒(méi)有增大,這是因?yàn)闃?gòu)建沒(méi)有完成,等RAID完成構(gòu)建后,RAID的容量就會(huì)改變?yōu)?19534912x(4-1)=58604736K=60G;構(gòu)建進(jìn)度也可以cat /proc/mdstat 來(lái)查看。
新增加一個(gè)RAID正式成員的辦法,不會(huì)讓RAID原有的數(shù)據(jù)丟失,也不會(huì)損壞原有的數(shù)據(jù)。所以這種辦法對(duì)RAID已經(jīng)存儲(chǔ)大量數(shù)據(jù),當(dāng)容量發(fā)生危機(jī)時(shí)而不損失原有數(shù)據(jù)的前提下,所采用的一種安全可行的擴(kuò)容辦法; 當(dāng)然擴(kuò)容后,你要修改 /etc/mdadm.conf;
4.3 RAID正式成員個(gè)數(shù)達(dá)不到RAID啟動(dòng)要求時(shí),如何啟動(dòng)RAID;
可能存在這樣一種狀況,當(dāng)RAID的一個(gè)正式成員掛掉后,這時(shí)RAID按以前說(shuō)的常規(guī)辦法是不能啟動(dòng)的。這時(shí)我們要強(qiáng)制啟動(dòng),要用到--run 參數(shù);比如當(dāng)做RAID5時(shí),我們用到了三個(gè)硬盤或分區(qū),當(dāng)其中有一個(gè)掛掉,按RAID5的特點(diǎn)來(lái)說(shuō),數(shù)據(jù)一樣是安全完整的,但RAID5啟動(dòng)按常規(guī)辦法是必須要達(dá)到做RAID時(shí)所指定的正式成員個(gè)數(shù),這時(shí)按常規(guī)啟動(dòng)辦法是不行的,我們要用到--run參數(shù);
我們舉個(gè)例子。比如RAID5正式成員有3個(gè)/dev/sdb1,/dev/sdb2,/dev/sdb3,我們只用/dev/sdb1和/dev/sdb2來(lái)啟動(dòng)RAID5;
[root@linuxsir:~] # mdadm -A --run /dev/md0 /dev/sdb1 /dev/sdb2
5 軟RAID設(shè)備使用方向的探討;
對(duì)于軟RAID是把幾個(gè)同容量的物理磁盤或分區(qū)組成一個(gè)大的虛擬設(shè)備來(lái)用,我們應(yīng)用方向是什么呢?通過(guò)RAID的定義,我們可以知道RAID是為了解決容量、讀寫效率以及磁盤冗余安全而提出來(lái)的。
相關(guān)文章
虛擬機(jī)安裝CentOS后沒(méi)有網(wǎng)絡(luò)怎么辦
虛擬機(jī)安裝CentOS后沒(méi)有網(wǎng)絡(luò)了不能上網(wǎng),該怎么設(shè)置網(wǎng)絡(luò)呢?下面我們就來(lái)看看這個(gè)問(wèn)題的解決辦法,詳細(xì)請(qǐng)看下文圖文介紹2024-01-18虛擬機(jī)怎么安裝CentOS? 安裝CentOS操作系統(tǒng)的保姆級(jí)圖文教程
虛擬機(jī)想要安裝CentOS操作系統(tǒng),但是CentOS操作系統(tǒng)已經(jīng)停止維護(hù)了,該怎么安裝呢?詳細(xì)請(qǐng)看下文圖文教程2024-01-18Centos7.8怎么更新openssh? Centos升級(jí)openssh的技巧
Centos7.8怎么更新openssh?Centos7.8系統(tǒng)想要安裝openssh,該怎么安裝呢?下面我們就來(lái)看看Centos升級(jí)openssh的技巧2023-09-02Centos7.8怎么更新openssl? CentOS升級(jí)OpenSSL的技巧
Centos7.8怎么更新openssl?Centos7.8系統(tǒng)想要升級(jí)OpenSSL,該怎么升級(jí)呢?詳細(xì)請(qǐng)看下文介紹2023-09-02- centos7沒(méi)有圖形化操作可能對(duì)很多人來(lái)說(shuō)都不太習(xí)慣,下面我們來(lái)為centos7安裝圖形化界面,本文以安裝 GNOME 圖形化為例,需要的朋友可以參考下2023-06-29
- 今天小編在安裝RHEL7的時(shí)候,一步留神沒(méi)有安裝圖形化桌面,下面分享一下安裝圖形化桌面的過(guò)程,需要的朋友可以參考下2023-06-29
CentOS7各個(gè)版本鏡像下載地址及版本說(shuō)明(包括Everything版)
下載CentOS-7.0-1406的時(shí)候,有很多可選則的版本,對(duì)于普通用戶來(lái)說(shuō),不知道選擇哪個(gè)好,下面做一下簡(jiǎn)單介紹,需要的朋友可以參考下2023-06-01Centos 7怎么手動(dòng)配置ip地址? Centos7配置IP地址的技巧
Centos 7怎么手動(dòng)配置ip地址?Centos 7系統(tǒng)想要自己配置ip地址,該怎么操作呢?下面我們就來(lái)看看Centos7配置IP地址的技巧2023-05-17- 這篇文章主要介紹了Centos 7 壓縮與解壓縮命令小結(jié),需要的朋友可以參考下2023-03-28
CentOS8使用阿里云yum源異常問(wèn)題及解決方法
由于centos8 在2022年停止服務(wù),后繼版本為8-steam。在使用阿里云的 centos8 的 yum 時(shí)報(bào)錯(cuò),這篇文章主要介紹了CentOS8使用阿里云yum源異常的解決方法,需要的朋友可以參考2022-04-19