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利用率。