PCIE SSD 热插拔
PCIe SSD最早是 Fusion-IO 推出来的, 以闪存卡的形式被互联网公司和数据中心广发议使用。闪存卡一般作为数据缓存来使用,如果要在服务器中集成更多的 PCle SSD. 内存卡
的形式就有局限了。闪存卡有以下缺点:
1、插在服务器主板的 PCle 插槽上,数量有限。
2、通过PCIe 插槽供电,单卡容量受到限制。
3、在PCIe 插槽上,容易出现由于散热不良导致宕机的问题。
4、不能热插拔。如果发现PCIe 闪存卡有故障、必须要停止服务,关闭服务器,打开机箱,拔出闪存卡。这对有成百上千台服务器的数据中心来说,管理成本非常高。
所以,如下图所示,PCIe SSD推出了新的硬件形式SFF-8639, 又称U. 2 。U.2 PCIE SSD类似于传统的盘位式 SATA、SAS硬盘,可以直接从服务器前面板热插拔。
当服务器有很多个可以热插拔的U. 2 SSD之后,存储密度大为提升,更重要的是U.2 SSD不只可以用作数据缓存,关键数据也可以放在其中。通过多个U. 2 SSD组成RAID列,当某个U. 2 SSD故障之后,可以通过前面板显示灯确定改障SSD 盘位,予以更换,同时,不会造成服务器停止服务或者数据丢失。
目前有很多服务器厂商都发布了有很多 U. 2 SSD 盘位的服务器,有的是少数U.2 SSD
和多数SATA HDD混合,有的甚至是24个纯U. 2 SSD 盘位。配备了高密度SSD的服务器对数据中心来说,可以大幅减少传统服务器的数量,因为很多企业应用对存储容量要求并不高,传统机械硬盘阵列的容量很大,却处于浪费状态。企业对硬盘带宽的要求更高,一台SSD阵列服务器能够支持的用户数是 HDD阵列服务器的好几倍,功耗和制冷成本却少了好几倍。目前,房租和土地成本越来越高,能够在有限的数据中心空间中为大量用户供服务,对电信、视频网站、互联网公司等企业来说非常重要。所以可以预期,随着闪在价格的逐年下降,配备 SSD阵列的服务器会越来越普及。
我们来看看PCIe SSD热插拔的技术实现。传统SATA、SAS硬盘通过HBA和主机通信,所以也是通过HBA 来管理热插拔。但是,PCIe SSD 直接连到CPU的 PCIe 控制器,热插拔需要驱动直接管理。根据Memblaze公司公众号的介绍,一般热插拔PCIe SSD需要几方面的支持:
1、PCIe SSD: 一方需要硬件支持,避免SSD在插盘过程中产生电流波峰导致器件损坏;另一方面,控制器要能自动检测到拔盘操作,避免数据因掉电而丢失。
2、服务器背板 PCIe SSD插槽:需要通过服务器厂家了解是否支持U. 2 SSD热插拔。
3、操作系统:要确定热插拔是操作系统还是BIOS处理的,也需要咨询服务器主板厂家
来确定。
4、PCIe SSD驱动:不管是Linux 内核自带的 NVMe 驱动,还是厂家提供的驱动,都需要在各种使用环境中做过大量热插拔稳定性测试,避免在实际操作中因为驱动问题
导致系统崩渍。
拨出 PCIe SSD 的基本流程如下:
1) 配置应用程序,停止所有对目标SSD的访问。如果某个程序打开了该SSD中的某
个目录,也需要退出;
2) umount 目标SSD上的所有文件系统;
3) 有些SSD厂家会要求卸载SSD驱动程序,从系统中删除已注册的块设备和disk;
4) 拔出 SSD.
由此我们可以看到pcie SSD热插拔给很多服务器企业和数据中心带来很便利,既然解决了成本问题,又提高了对SSD利用率。