0x00 背景

最近SSD价格暴跌,加上很多大船货来袭,曾经大容量的SSD基本都白菜价了。最近上车了一个西数SN640 7.68T U2 SSD,在Win和Ubuntu下都没问题,但在安装ESXi的时候发现不认,一开始以为和之前海康C2000 Pro的问题一样,但仔细分析了一下,不是驱动的问题,这个问题出在4K扇区上,一般SSD都是用的512扇区确保兼容性,但实际上4K扇区的性能更好,而SN640/SN750默认都是4K扇区,而ESXi默认是不认4K扇区的,所以解决方案就是将SSD设置为512扇区。

0x01 安装ESXi时设置

安装过程中,没有看到盘

安装时候看不到SN640

用快捷键Alt+F1切换到控制台
账号root密码为空

切换到控制台

看下nvme list

1
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.list

nvme list

可以看到有6块nvme的ssd,挨个看下找出西数的SN640

1
2
3
4
5
6
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba2 | egrep -A1 "Model|Serial"
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba3 | egrep -A1 "Model|Serial"
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba4 | egrep -A1 "Model|Serial"
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba1 | egrep -A1 "Model|Serial"
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba5 | egrep -A1 "Model|Serial"
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.get -A vmhba6 | egrep -A1 "Model|Serial"

看下具体信息,找到SN640硬盘

找到SN640

使用命令看下分区信息,可以看到LBA ID设置为0是4K,设置为1是512

1
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.namespace.get -A vmhba3 -n 1 | tail -40

看下硬盘分区信息

运行下面命令,格式化成512扇区,执行时候会卡住,等待30秒左右

1
/opt/vmware/nvme/esxcli-nvme-plugin --op nvme.device.namespace.format -A vmhba3 -f 1 -n 1 -m 0 -p 0 -l 0 -s 0

执行格式化命令
在用快捷键Alt+F2,切换回安装界面,按F5刷新下,就可以看到硬盘了

F5刷新

可以看到硬盘

0x02 已经安装好ESXi设置

如果已经安装好ESXi,只是新加了一块4K分区盘,解决方法差不多。
如果本机直接操作,可以使用快捷键Alt+F1切换到终端执行命令,也可以开始SSH后远程操作。

1
esxcli nvme device list

看下nvme list

和安装时候类似,再看下具体信息

1
2
3
esxcli nvme device get -A vmhba6 | egrep -A1 "Model|Serial"
esxcli nvme device get -A vmhba4 | egrep -A1 "Model|Serial"
esxcli nvme device get -A vmhba1 | egrep -A1 "Model|Serial"

nvme序列号信息

找到SN640硬盘,看看相关信息,可以看到和安装时候看到的一样,LBA ID设置为0是4K,设置为1是512

1
esxcli nvme device namespace get -A vmhba1 -n 1 | tail -30

详细信息

和前面类似,格式化即可

1
esxcli nvme device namespace format -A vmhba1 -f 1 -n 1 -m 0 -p 0 -l 0 -s 0

格式化完成后刷新下,就可以识别新安装的硬盘了

识别出SN640硬盘

0x03 结语

其实不止是SN640/SN750,很多新的SSD或者大容量SSD在ESXi下都有这个问题,参照本文的解决方案操作即可。