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

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

 

最近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.dostor.com/article/2013-01-08/97518.shtml

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

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。