
看來我能夠在原始區塊裝置之上成功執行 pvcreate,而無需執行建立分區表的步驟。然後,我可以創建卷組、邏輯卷,最後創建文件系統,安裝它並通過 dd 進行測試。
它似乎有效,但我需要進行健全性檢查。這是一個壞主意嗎?
如何在原始區塊裝置上建立 GPT 或 MBR 分割區表?
如何使用parted來顯示正在使用的分割表類型?我嘗試過這樣做:
分開,選擇 /dev/sdb,列印,我得到:
錯誤:/dev/sdb:無法辨識的磁碟標籤
但該驅動器目前正在使用中,我可以對其進行讀寫。這是在沒有分區表的原始區塊設備上執行 LVM 時的預期輸出嗎?有什麼想法嗎?
謝謝!
答案1
即使 LVM 本身並不關心是否有一個真正的分區,但創建它的原因之一是通知分區程式「那裡有東西」。一個噩夢般的場景是,新的系統管理員診斷伺服器上的啟動問題,啟動分區程序,查看未分割的磁碟,並得出驅動器已損壞的結論。
我認為建立 LVM 分割區沒有任何缺點。你?
答案2
雖然您可以從原始區塊裝置建立 pv,但我通常會嘗試避免它,因為它可能會導致區塊裝置用途的混亂。如果 LVM 缺少設定文件,它還可能會破壞 LVM 可以使用的一些自動發現例程。
以下是使用parted建立一個包含1個分割區(即整個磁碟機)的GPT並將分割區標誌設為lvm的範例。 mkpart 要求您指定檔案系統,但它不會建立檔案系統。似乎是parted中長期存在的錯誤。此外,1M 的起始偏移量是為了確保正確對齊。
parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
答案3
即使過去我使用 MS-DOS 磁碟標籤或 GPT 磁碟標籤進行 PV,我現在更喜歡在主區塊裝置上直接使用 LVM。沒有理由使用 2 個磁碟標籤,除非您有非常具體的用例(例如具有開機磁區和開機分割區的磁碟)。
直接擁有 LVM 的優點是:
- 簡單 - 您不需要使用 2 套工具
- 靈活性 - 您可以使用 pvmove 將資料從一個磁碟區移動到另一個磁碟區而無需停機,您可以使用快照和精簡配置
- 您不需要執行partprobe或kpartx來告訴核心您建立/調整大小/刪除了磁碟區。和partprobe/kpartx 可能會失敗如果分割區正在使用且您可能需要重新啟動
- 與在 MS-DOS 或 GPT 磁碟上使用 LVM 相比,效能可能更好
- 如果使用 fdisk 建立的分割區與底層磁碟區(例如 RAID 陣列)上的範圍不對齊,則可以避免潛在的錯位
答案4
根據 RedHat 的 LVM 指南,第 4.2.1 節 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/ological_volume_manager_administration/physvol_admin
他們說沒有必要有分割表,他們甚至建議我們如果我們使用整個磁碟作為VG(卷組)就銷毀它,除非我們只想包含其中的一部分(分割區)。