What information is found in the following excerpt from the file /proc/mdstat? (Choose two.)



Personalities: [raid6] [raid5] [raid4]
md0 : active raid5 sdb1[3] (S) sdc1[7] sda1[4] (S) sdd1[6] sde1[5]
      1046528 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.......] recovery = 15.9 % (83808/523264) finish=0.1min
speed=71770K/sec
unused devices: <none>

A. One of the disks in /dev/md0 has failed and a spare disk is used to recreate full redundancy
B. The spare disk /dev/sda1 is used to restore full redundancy after the current recovery
C. The information [UU_] means, that the raid is missing one disk and is not fully redundant
D. The device is using version 1.2 metadata to allow LILO and GRUB Legacy to use /dev/md0 as the boot partition. This would not have been necessary with GRUB2
E. The information [3/2] means that 3 RAID disks belong to the array and 2 disks are spare. Together they equal the number of available disks

題解

「/proc/mdstat」檔案存放著Linux核心正在使用的RAID資訊。

md0 : active raid5 sdb1[3] (S) sdc1[7] sda1[4] (S) sdd1[6] sde1[5]這個是在表示md0這個軟體模擬的RAID5裝置目前正在使用「sdb1」、「sdc1」、「sda1」、「sdd1」和「sde1」這幾個分割區,當作其組成結構的硬碟。中括號「[]」中的數字表示該分割區在這個結構中的硬碟順序,如果主要硬碟的數量有N,則順序號碼大於或等於N的硬碟皆屬於備援硬碟,備援硬碟是在主要硬碟出問題後才會被系統自動換上。

接著先跳來看[3/2] [UU_],「[3/2]」的「3」表示用來組成RAID的主要磁碟數量,「2」是表示其中正在啟用的硬碟數量,所以「[3/2]」代表著目前有一個硬碟是不啟用的狀態,「[UU_]」則代表著是第三個位置的硬碟為不啟用的狀態。所以此時要有一個備援硬碟要被拿來替換原先第三個位置的硬碟,不然這個RAID5就會出問題了。

再回頭看md0 : active raid5 sdb1[3] (S) sdc1[7] sda1[4] (S) sdd1[6] sde1[5],因為所有的硬碟順序號碼都在「3」以上,所以目前我們已經可以得知,這個RAID5原先設定的主要硬碟都出問題了,且已經有兩個備援硬碟被替換上去,正在啟用當中。「(S)」表示「(S)」左邊的那個硬碟為目前已被替換上,正在使用的備援硬碟,所以目前已被替換上去正在使用的硬碟為「sdb1」和「sda1」。然而,此RAID5的第三個位置的硬碟也需要找一個空閒的備援硬碟來替換,原則上會按照硬碟順序來選擇,也就是說,下一個替換上去的硬碟將會是「sde1」。

選項A,正確,不過更正確的描述應該是:「3個硬碟已經失效,且有3個備援硬碟被用來重新建立full redundancy」。

選項B,錯誤,下一個被替換上去的硬碟應為「/dev/sde1」。

選項C,正確。

選項D,錯誤,LILO和GRUB Legacy貌似只能使用版本<1.0的元數據,GRUB2則貌似可以支援版本>=0.9的元數據。

選項E,錯誤,「[3/2]」的「2」是表示正在啟用的硬碟數量,不是備援硬碟的數量。