分享

双端口NVMe SSD?没有想象中美好

 pterodactyl2007 2022-03-06

最近OCZ等SSD公司宣布了Dual-Port NVMe SSD,其实就是一个SSD有两个PCIe接口。一个SSD可以让两台机器使用?一个盘怎么插到两台机器?阿呆带你来看看这货到底怎么用。



背景介绍



一般我们的硬盘都是只有一个端口,要么组成阵列放到磁盘阵列里面,要么就接到一台机器上的硬盘槽位。如果接到硬盘槽位,就有个问题,如果用户到服务器到硬盘的通路任何一环挂了,这个盘的数据也就没办法访问了。只能拔下来,重新插到一台新的机器上,这段时间里,用户放在里面的数据访问不到。



那怎么办呢?在SAS时代,就发明了双端口硬盘,一个硬盘通过SAS线缆连到两台机器上,任何一个服务器挂掉,另一台依然可以读数据出来。而现在冒出来的双端口PCIe SSD也是继承了这个用法,连到两台机器的PCIe接口上。那么问题来了:两台机器能同时读写SSD吗?写冲突了怎么办?阿呆后面为你解惑。



两种HA



高可用性有两种情况:



  • 整个data path从服务器,到网络,存储都是双份的,防止出错。这个成本比较高,一般是金融,OLAP,OLTP,高性能计算等领域才用的起。

  • 只是存储有多个备份,挂了一个,就用备份的数据恢复。一般云服务分布式存储采用这种方案。



双端口NVMe SSD应用场景



最简单的系统如下图,一个服务器的PCIe RC到NVMe SSD之间只有一条数据通路,这样做的风险很大,整个环节任何一个组件挂掉,SSD的数据就不能访问了。





所以有了第二种方案,服务器有两个HBA,通过PCIe Switch连到SSD,这样一个HBA挂掉,另一个可以接手。但是,仍不完美,如果Switch挂掉,盘还是不能访问。




所以,又有了第三种方案,Server,Switch,SSD都是双份的。谁都可以被替换。





在这种情况下,两台server就有可能共享同一个NVMe SSD的同一个namespace,如下图





NVMe的Reservation锁



遇到数据冲突怎么办?NVMe模仿了SCSI,采用了reservation锁。来一段SCSI Reservation的解释:”在一个共享存储的环境下,多台前端主机可能会同时访问同一台存储设备,如果此时多台主机在同一时点上对一个LUN进行写操作,那么可想而知这个LUN将不知道哪个数据先写,哪个数据后写。为了防止这种情况发生而导致的数据损坏,所以就有了SCSI锁的概念。通过SCSI Reservation机制来进行SCSI锁的操作,目前绝大多数的磁盘都支持SCSI reservvation命令。如果一台主机给磁盘传输了一条SCSI Reservation命令,则这个磁盘对于其他的主机就处于锁定状态。如果有其他的主机给已经被锁定的磁盘发送读写请求,则会收到’reservation conflict’报错信息。如果保留SCSI锁的主机崩溃,或者其他主机给磁盘发送’break reservation或者reset target’命令,用来解除SCSI锁。然后,第二个主机发送I/O请求之前需要重新发送SCSI Reservation命令给磁盘。”



从原理看起来,这种机制效率不是很高。所以最好不要同时写一个盘。最佳的场景还是只有一个server写,另一个只是在这个server挂掉之后来接手它的活。





PCIe Switch是个什么东东?



如下图,OCZ推荐的使用场景是在JBOF(Just a Bunch of Flash)里面,每个NVMe SSD通过PCIe  Switch连到两台服务器上。了解PCIe协议的人知道,一个Host的HBA出来的PCI树是一个PCI地址域,这个域的各种设备可以互相通信,但是跨域怎么通信呢?比如Host A要访问PCI地址域B里面的某个设备,该怎么办?这就需要PCIe Switch来帮忙了,目前有非透明桥,MR-IOV等技术来实现。





样品



看完了框图很美,我们再来看一张实物图。如下,再也不美丽了。图中间黑色底座上是一个双端口U.2 NVMe SSD,接了一个转接卡转出来两个PCIe线缆插口,有绿色头的就是PCIe线缆,按照前面的原理图,分别连到两个PCIe Switch上,每个Server主板上也插了PCIe转接卡,连出两个PCIe线缆插口。看起来乱糟糟的,还用了这么多转接卡,相当不方便啊。要搭这一套系统,需要每个盘一个PCIe转接卡,每个服务器多个PCIe转接卡,还要有PCIe  Switch板卡,同时有很多PCIe线缆。希望管理员能理清楚,不要把线插错了。







引用


http://www./article/2013-01-08/97518.shtml


Z-Drive 6000 PCIe NVMe™ SSD Series Dual Port Capability | V 1.0 | © 2015 OCZ Storage Solutions


    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多