重啟後帶有 LVM 的裸機 raid 陣列消失
tl;博士:
RAID 陣列 + LVM 重新啟動後消失。
細節
我想根據這個 SO設置一個加密的 raid 陣列。
我設置了一個 RAID 陣列*“裸機”*(即在磁碟上而不是在分區上)。建構數組後,我沒有對其進行格式化並執行
pvcreate
. 然後我以通常的方式設置 LVM 和加密。(參見關於 RAID 的數字海洋指南,關於 RAID上的 LVM 的拱形指南。設置加密後,我執行
mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
並update-initramfs -u
重新啟動。/dev/md0
然後消失了。我哪裡做錯了?調試步驟。
有很多類似的問題,這是我迄今為止根據我的閱讀所嘗試的。
- 的輸出
mdadm --examine --scan
為空白。/etc/mdadm/mdadm.conf
:HOMEHOST <system>
,MAILADDR root
,的未註釋內容ARRAY /dev/md0 metadata=1.2 name=server:0 UUID=xxxxx
沒有一些 SO 答案中建議的重複條目。- 發行
service mdadm status
收益率Loaded: masked (Reason: Unit mdadm.service is masked.)
- 發行
cat /proc/mdstat
收益Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] \n unused devices: <none>
- 我嘗試執行
dpkg-reconfigure mdadm
並按照此處update-initramfs -u
的建議執行,但沒有啟用“全部”的選項。在此之後我嘗試重新啟動,這也不起作用。作為最後的手段,我嘗試了
mdadm --assemble --scan
。奇怪的是,該類型
TYPE="linux_raid_member"
與我對此 SO的預期不同root@server:/home/user# blkid /dev/sda1: UUID="xx" TYPE="ext2" PARTUUID="xx-xx" /dev/sda5: UUID="xx" TYPE="LVM2_member" PARTUUID="xx-xx" /dev/mapper/server--vg-root: UUID="xx" TYPE="ext4" /dev/mapper/server--vg-swap_1: UUID="xx" TYPE="swap" /dev/sdb: PTUUID="xx" PTTYPE="gpt" /dev/sdc: PTUUID="xx" PTTYPE="gpt" /dev/sdd: PTUUID="xx" PTTYPE="gpt"
數組超過 sd
$$ bcd $$/dev/sda 保存根文件系統。該陣列驅動器用於數據。 重新創建的步驟。
為了完整性,以防萬一它有用。
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
創建數組pvcreate /dev/md0
製作物理卷vgcreate data_group /dev/md0
創建卷組lvcreate -n secure data_group -L +900G
創建卷cryptsetup -v luksFormat /dev/data_group/secure
設置加密cryptsetup luksOpen /dev/data_group/secure cryptvault
打開加密卷mkfs.ext4 /dev/mapper/cryptvault
分割mkdir /mnt/vault
製作掛載點mount /dev/mapper/cryptvault /mnt/vault
山mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
保存陣列佈局update-initramfs -u
使用新配置更新 initreboot
這只是一個理論: mdadm 元數據版本 1.2 從設備啟動開始是 4K,並且當您創建未被 mdadm 刪除的陣列時,磁碟上已經有現有的 GPT 分區表(我希望 mdadm 刪除所有現有的簽名,但這是 GPT 簽名存在的唯一解釋)。該陣列現在沒有組裝,因為對於所有工具(包括 mdadm),這看起來就像是帶有 GPT 分區表的空磁碟(blkid 也可能檢測到磁碟末尾附近的標頭備份)而不是 mdmember,所以磁碟被忽略。
您可以嘗試使用
wipefs
– 首先只是簡單wipefs /dev/sdb
地檢測和列印所有簽名,然後wipefs -o <offset>
使用上一個命令列印的 GPT 簽名的偏移量來刪除分區表。這可能有助於系統將磁碟檢測為 mdmeber 設備。如果這沒有幫助,我建議重新開始並選擇元數據版本 1.1(
--metadata=1.1
mdadm 的選項,1.1 將元數據放在設備的開頭)或在分區頂部創建陣列(使用磁碟沒有任何好處沒有分區表恕我直言)。或者,您當然可以等待其他人提出更好的建議 :-)順便提一句。我認為這是一個全新的設置,因此設備上沒有有價值的數據,但在進行任何不可逆轉的更改之前備份磁碟的前幾個 MiB 可能會很有用。