Linux
MDADM 創建額外的塊設備
使用mdadm創建 RAID 陣列時,我注意到一個奇怪的問題。據我所知,它創建了其他
md
類型的設備。根據kernel.org文件,md
設備類型是 Metadisk (RAID) 設備。元磁碟驅動程序用於跨越多個物理磁碟的文件系統。
但是,今天開始在同一台主機上發生這種情況。(我正在使用配置管理工具來創建 RAID 陣列,但是當我手動發出mdadm命令時也會發生同樣的情況。
lsblk輸出如下所示:
user@host:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 1.7T 0 disk └─md0 9:0 0 3.5T 0 raid0 └─md0p2 259:2 0 1.8T 0 md xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 20G 0 part / xvdf 202:80 0 20G 0 disk nvme1n1 259:1 0 1.7T 0 disk └─md0 9:0 0 3.5T 0 raid0 └─md0p2 259:2 0 1.8T 0 md
有人可以闡明一下嗎?這是預期的嗎?我第一次看到這個。
主機是Ubuntu 16.04.6 LTS
澄清
為什麼創建這些:
└─md0p2 259:2 0 1.8T 0 md
當一個塊設備被添加到系統中時,核心會嘗試解析任何可能存在於該設備上的分區表,如果成功,就會為它認為存在的分區添加塊設備,因為它在分區表中讀取了內容。請注意,可以將對許多分區表類型的支持配置到核心中,因此也可以辨識來自例如 Solaris 和 BSD 的分區表。
隨機數據可能會以某種方式與核心期望的分區表相匹配,從而導致創建錯誤的分區設備。
lsblk
輸出有一個“TYPE”列,但這可能正確也可能不正確;這也可能是一個盡力而為的猜測。主要設備編號可以更好地指示它是什麼類型的設備;參考/proc/devices
看看哪些數字對應什麼核心驅動。這里至少md0p2
主設備號與md0
主設備號不同,所以不是md
驅動程序創建了該設備。將第一個塊清零有助於防止將數據誤解為分區表:
# dd if=/dev/zero of=/dev/md0 count=1
仔細檢查您正在寫入的設備!