1.88TB的M2 PM983直接给ESXi装上。但是!ESXi居然看不到分区
可以看到有两个NVMe SSD,但是点进去之后什么都没有。
不过在硬件的地方,两个盘还是能看到的。
这个什么情况?心里有一股不详的预感,难道帆船了么?卖家还是信得过的,买过好多次了。
好吧,我只好拿出来FreeBSD14.的安装U盘,居然顺利就安装上了FreeBSD系统。盘应该是没问题。这到底是什么鬼?
好吧,我们在FreeBSD来看一下这两个盘有什么不同。
root@esxi:~ # nvmecontrol devlist
nvme0: SAMSUNG MZ1LB1T9HALS-000FB
nvme0ns1 (1793265MB)
nvme1: SAMSUNG MZ1LB1T9HALS-000FB
nvme1ns1 (1793265MB)
root@esxi:~ # nvmecontrol ns identify nda0
Size: 459076086 blocks
Capacity: 459076086 blocks
Utilization: 146925 blocks
Thin Provisioning: Not Supported
Number of LBA Formats: 2
Current LBA Format: LBA Format #00
Metadata Capabilities
Extended: Not Supported
Separate: Not Supported
Data Protection Caps: Not Supported
Data Protection Settings: Not Enabled
Multi-Path I/O Capabilities: Not Supported
Reservation Capabilities: Not Supported
Format Progress Indicator: 0% remains
Deallocate Logical Block: Read Not Reported
Optimal I/O Boundary: 0 blocks
NVM Capacity: 1880375648256 bytes
Globally Unique Identifier: 344a54304dc503830025384100000001
IEEE EUI64: 0000000000000000
LBA Format #00: Data Size: 4096 Metadata Size: 0 Performance: Best
LBA Format #01: Data Size: 512 Metadata Size: 0 Performance: Best
devlist显示出来两个盘,通过ns子命令看了一下,就发现的不同之处:那就是这个盘是一个4k扇区的盘。
Number of LBA Formats有两个,#00是4096,#01是512。而当前的格式是#00,也就是4k扇区。
有了线索之后,开始谷歌一下看看是不是这个原因
哈哈,WD的blog给了一个如何将4Kn(4K native) NVMe格式成512的教程,看来ESXi不支持4Kn NMVe盘,是实锤了。
知道问题就好办了。接下来我们就要如何将这两个个PM983格式化成512扇区格式的硬盘。
干这个,厂家肯定有工具可以干。不过由于NVMe是标准,格式化扇区这种操作,其实大家都是按照标准实现的,所以用FreeBSD内置的nvmecontrol命令也是可以进行格式操作的,不需要额外的工具。
接下来我们一步一步来执行命令,重新格式化。
由于我刚才安装FreeBSD14的时候使用了ZFS mirror的配置,所以第一步先把第一个NVMe从zpool中移除。
root@esxi:~ # zpool status
pool: zroot
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nda0p4 ONLINE 0 0 0
nda1p4 ONLINE 0 0 0
errors: No known data errors
root@esxi:~ # zpool detach zroot nda0p4
显示完状态之后,把nda0p4从zroot中detach掉。
root@esxi:~ # nvmecontrol ns detach -n 1 nvme0
namespace 1 detached
root@esxi:~ # nvmecontrol ns delete -n 1 nvme0
namespace 1 deleted
接下来我们把原来的ns(namespace的缩写)删除掉。
root@esxi:~ # nvmecontrol ns create -s 3672608688 -L 1 nvme0
namespace 1 created
然后就是创建新的namespace。其中参数的-s 之后的值是512字节单位的容量 。这个刚identify时候可以算出来。你不仅仅可以创建一个namespace,多个也是OK的。类似分区的感觉,但是是物理的分区。
创建完成之后,把namespace给attach到NVMe控制器就可以。
root@esxi:~ # nvmecontrol ns attach -n 1 nvme0
namespace 1 attached
最后再看一下namespace的情况
root@esxi:~ # nvmecontrol ns identify -n 1 nvme0
Size: 3672608688 blocks
Capacity: 3672608688 blocks
Utilization: 0 blocks
Thin Provisioning: Not Supported
Number of LBA Formats: 2
Current LBA Format: LBA Format #01
Metadata Capabilities
Extended: Not Supported
Separate: Not Supported
Data Protection Caps: Not Supported
Data Protection Settings: Not Enabled
Multi-Path I/O Capabilities: Not Supported
Reservation Capabilities: Not Supported
Format Progress Indicator: 0% remains
Deallocate Logical Block: Read Not Reported
Optimal I/O Boundary: 0 blocks
NVM Capacity: 1880375648256 bytes
Globally Unique Identifier: 344a54304dc503830025384100000002
IEEE EUI64: 0000000000000000
LBA Format #00: Data Size: 4096 Metadata Size: 0 Performance: Best
LBA Format #01: Data Size: 512 Metadata Size: 0 Performance: Best
root@esxi:~ #
分区格式已经变成了 #01,也就是512字节的格式了。
我们先改一个看看,重启动进去ESXi。
已经可以显示出来一个盘了,另一个盘由于还没改格式,还是不行。
创建了一个datastore,也能正常完成。
如果你玩ESXi,碰到不识别NVMe硬盘的情况,可以看看是不是格式化成了4k扇区。然后重新格式化来解决问题。