Raid
新的 md 數組是自動只讀的,並且具有 resync=PENDING
我使用以下命令創建了一個新的 md 數組:
mdadm --create /dev/md1 -l 1 -n 2 /dev/sd[ed]1
但現在
/proc/mdstat
將數組顯示為“自動只讀”,resync=PENDING:~ # cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sde1[1] sdd1[0] 976630336 blocks super 1.2 [2/2] [UU] resync=PENDING md0 : active raid1 sdb1[0] sdc1[1] 1953511936 blocks [2/2] [UU] unused devices: <none>
根據這個網站,我可以解決這個問題:
mdadm --readwrite /dev/md1
這確實有效:
~ # mdadm --readwrite /dev/md1 ~ # cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sde1[1] sdd1[0] 976630336 blocks super 1.2 [2/2] [UU] [>....................] resync = 0.0% (54400/976630336) finish=598.2min speed=27200K/sec md0 : active raid1 sdb1[0] sdc1[1] 1953511936 blocks [2/2] [UU] unused devices: <none>
但我仍然想知道這裡發生了什麼,但我找不到任何關於此的真實資訊。有誰知道為什麼數組預設為這種狀態?
編輯:添加 dmesg 輸出:
~ # grep kernel /var/log/syslog.1 Nov 13 10:03:44 iserv kernel: [160446.860113] e1000: eth1 NIC Link is Down Nov 13 10:04:48 iserv kernel: [160511.017666] e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX Nov 13 20:12:40 iserv kernel: [196982.775186] sda: sda1 Nov 13 20:12:59 iserv kernel: [197001.598187] sdd: sdd1 Nov 13 20:13:13 iserv kernel: [197016.344939] sde: sde1 Nov 13 20:14:05 iserv kernel: [197067.520825] md: bind<sdd1> Nov 13 20:14:05 iserv kernel: [197067.521263] md: bind<sde1> Nov 13 20:14:05 iserv kernel: [197067.670215] md/raid1:md1: not clean -- starting background reconstruction Nov 13 20:14:05 iserv kernel: [197067.670219] md/raid1:md1: active with 2 out of 2 mirrors Nov 13 20:14:05 iserv kernel: [197067.670246] md1: detected capacity change from 0 to 1000069464064 Nov 13 20:14:05 iserv kernel: [197067.675101] md1: unknown partition table Nov 13 20:24:10 iserv kernel: [197672.572128] md: md1 switched to read-write mode. Nov 13 20:24:10 iserv kernel: [197672.572269] md: resync of RAID array md1 Nov 13 20:24:10 iserv kernel: [197672.572273] md: minimum _guaranteed_ speed: 1000 KB/sec/disk. Nov 13 20:24:10 iserv kernel: [197672.572275] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync. Nov 13 20:24:10 iserv kernel: [197672.572280] md: using 128k window, over a total of 976630336k.
最初組裝數組時,它被置於“自動只讀”模式。我用我的核心 (3.10.x) 和 mdadm (3.3) 快速進行了測試,創建時不會發生這種情況——但您必須執行不同的版本。
但是,自動只讀不是錯誤,也無需擔心。它背後的基本思想是使
--assemble
(現在顯然甚至--create
)更安全:在陣列變為可讀寫之前,不會將任何內容寫入磁碟。(我不確定元數據是否仍然寫在創建時。)當收到第一次寫入時,陣列將自動從自動只讀切換到讀寫。所以,如果你繼續在設備上創建一個文件系統,或者一個 LVM 物理卷,或者其他什麼,它會切換到讀寫,並開始同步。
您需要在其上執行的唯一原因
mdadm --readwrite
是您希望它在執行任何寫入之前同步。