原文:
https://www.cnblogs.com/zengkefu/p/6363441.html
原创 2017-01-12 朱朋博 金笑雨 企事录2016年底,VMware终于宣布,从vSphere 6.5开始支持512e扇区格式了。
这当然是好事。不过,不黑不舒服斯基说:原来以前的版本连512e都不支持?现在也还不支持4Kn啊……
有图有真相,不黑不是你大叔则翻出2013年的一个合作伙伴文档作为黑历史,说:瞧,晚了整三年!间隔一个大版本啊……
Vmware曾宣称计划在2013年支持512e,在2015年支持4Kn
泥垢了,别站着说话不腰疼。作为公认业内第一的hypervisor,或者说虚拟化操作系统(OS),vSphere已经很努力了好么!样样都走在别人前面,让别人怎么活?
512e是什么鬼?
512e的重点在于e,即Emulation,是把4KB(4096字节)的物理扇区仿真为512字节的逻辑扇区。为什么要这么做呢?因为,为了能把硬盘的容量做得更大,硬盘行业正在从传统的512字节物理扇区,向空间利用率更高的4KB物理扇区过渡。
512n,512e,4Kn的扇区大小区别
物理扇区4KB,对操作系统展现的(逻辑扇区)也是4KB,叫做4Kn,n是Native的意思——也相对naive。4Kn是大方向,但步子迈太大,必须扯到操作系统。毕竟,还是有些操作系统,还不能直接访问4KB的物理扇区,必须拿512字节的逻辑扇区过渡一下。
好了,作为vSphere的忠实用户,我们真的不是搭砖机来黑VMWare的……但是,必须看到,像ESXi这么重要的操作系统还不支持4Kn,可见保持对512字节扇区的兼容是多么的重要。
可是,4KB扇区又势在必行,那就硬盘退一步,用512e“欺骗”一下操作系统;vSphere进一步,从6.5版开始配合这个欺骗,就构成了我们开头提到的那条“新闻”。
毫无疑问,vSphere最终会全面过渡到支持4Kn的,而512e还会存在相当一段时间。512e与vSphere 6.5及vSAN 6.5的配合,企事录正在准备专文来展示给大家。
今天要讨论的话题,核心是512字节扇区与NVMe SSD。
SSD是不存在512e这种格式的,但要面对类似的问题:要么,对操作系统一概表现为512字节的扇区格式;要么,在4KB的情况下,提供“回到”512字节的选择——或反之。
这么说你就晕了对不对?看来还得动手,我一动手,你就明白了。
既生512B,何生4K?
企事录实验室里对一块华为的NVMe SSD ES3600C V3进行了验证性测试,容量1.6TB,PCIe 3.0 x4接口。
上图为华为官方公布的ES3600C V3的性能指标。对同一块ES36000C V3 NVMe SSD分别在512B格式和4K格式下进行4K数据块读性能测试,相对于512B格式下获得的76万IOPS,4K格式获得了更高的80万IOPS。4Kn不仅能够提升硬盘的容量,更有助于性能的发挥
对官方性能数据进行验证,是企事录实验室拿到产品后要做的第一件事,下图是我们测试时的一个截图:
企事录将华为ES3600C V3 NVMe SSD的扇区格式(Logical Block Address,简称LBA)改为4K之后,通过基准测试工具获得的4K数据块随机读成绩,超过了75万IOPS,平均响应时间仅为0.34ms,最大时间不超过2ms,与华为官方公布的80万IOPS相差无几
华为针对ES3600 V3系列SSD提供的高级管理工具——Huawei NVMe Toolbox。值得注意的是,只有安装了华为提供的NVMe驱动之后,这个工具才能发挥作用
希望重复企事录实验室测试的童鞋,可以通过华为官网下载ES3600C V3的驱动,以及相应的SSD管理工具,即可实现ES3600C V3 NVMe SSD在512B和4Kn之间进行格式转换。
需要注意的是,目前主流操作系统已经对NVMe SSD提供支持,真正做到即插即用。但公版驱动中只使用了常用的API接口,而改变LBA格式等高级API接口并不在其中,所以这也是为何在本次测试中一定要使用华为NVMe驱动的原因。
LBA格式转换工具:嗯,这是个神器
在刚验证完华为ES3600C V3 NVMe SSD的性能之后,VMware就发布了vSphere 6.5,作为国内唯一的一家以技术为导向的第三方分析机构,最新的vSphere 6.5必然是我们的关注重点,在安装了ESXi之后,准备将华为ES3600C V3 SSD作为数据本地存储,但在添加硬盘的时候,这块ES3600C V3 SSD居然不……见……了!WTF!
在ESXi主机上添加ES3600C V3 SSD为本地存储时,ES3600C V3 SSD未能被ESXi主机正确识别到
但是在ESXi主机的高级管理里面(类似于Windows的设备管理器),却又能看到这个PCIe设备……
在ESXi主机的硬件管理页面,可以看到有一个PCIe设备,Non—Volatile memory controller的意思是非易失性存储控制器,表明ESXi主机上存在一个闪存存储设备。NVMe中的NVM也是Non-Volatile Memory的简写
What’s wrong?
经过长达15分钟的沉默,恍然大悟,这块ES3600C V3 SSD的扇区格式(LBA)被改为4K了,VMware现在还不支持4K,即使是vSphere 6.5支持了512e,但仍不支持4Kn。好吧,利用华为的NVMe Toolbox工具,将4K改为默认的512B,再添加硬盘(SSD)。
这块熟悉的SSD又回来了。
将ES3600C V3 SSD的LBA改为512B之后,ESXi主机可以将其添加为本地存储了
值得注意的一个细节是,无论这块华为的盘是在512B扇区格式下还是在4096扇区格式下,其容量都一样显示为1490.4GB(又是1024和1000的三次方关系)。也就是说,物理扇区不变的话,逻辑扇区不影响真实的容量。
这一切我们都看在眼里,只是在操作系统被蒙在鼓里,直到6.5版本vSphere操作系统的眼里都只有512B,对SSD来说,要么统一对操作系统暴露为512字节,要么像华为一样,提供512B和4KB之间的切换工具。vSphere 6.5增加了对512e的支持,对于大容量硬盘是一大进步,使得物理扇区为4KB的硬盘也能用于vSphere环境中,虽然仍要“仿真”成512B……。不管怎么说,还是期待vSphere尽早支持原生4K吧……
结语:
不过话说回来,固态存储真的是为存储争了一大口气,之前企事录在各种公开场合的演讲和推出的文章中都表达过类似的观点,比如说固态存储让存储摘掉了拖后腿的帽子。
今天我们也还要说固态存储为硬件争了一口气:软件别再嫌弃硬件进步慢了,硬件一变化你软件还是跟不上不是?
512e是硬盘的事儿,NVMe SSD也得支持512B才能兼容尚处于“4KB初级阶段”的vSphere,就说这么多吧。