我在创建 RAID 阵列时注意到一个奇怪的问题米达德姆。据我所知,它创建了额外的设备md
类型。根据内核.org文档中,md
设备类型是 Metadisk (RAID) 设备。
Metadisk 驱动程序用于将文件系统跨多个物理磁盘。
然而,这种情况今天开始在同一台主机上发生。 (我正在使用配置管理工具来创建 RAID 阵列,但是当我发出米达德姆手动命令。
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
答案1
当将块设备添加到系统时,内核会尝试解析设备上可能存在的任何分区表,如果成功,则会根据分区表中读取的内容为其认为存在的分区添加块设备。请注意,可以在内核中配置对许多分区表类型的支持,因此也可以识别来自 Solaris 和 BSD 等的分区表。
随机数据可能以某种方式与内核期望的分区表相匹配,从而导致创建错误的分区设备。
lsblk
输出有一个“TYPE”列,但这可能正确也可能不正确;这也可能是一个尽力而为的猜测。主设备号可以更好地指示设备的类型;请参阅/proc/devices
查看哪些数字对应于哪些内核驱动程序。这里至少md0p2
主设备号与主设备号不同md0
,因此不是md
驱动程序创建了该设备。
将第一个块清零有助于防止将数据误解为分区表:
# dd if=/dev/zero of=/dev/md0 count=1
仔细检查您正在写入的设备!