PCIe SSD最早是Fusion-IO推出來的,以快閃記憶體卡的形式被網際網路公司和數據中心廣泛使用。快閃記憶體卡一般作為數據緩存來使用,如果要在伺服器中集成更多PCIe SSD,快閃記憶體卡的形式就有局限了。快閃記憶體卡有以下缺點:
l 插在伺服器主板的PCIe插槽上,數量有限;
l 通過PCIe插槽供電,單卡容量受到限制;
l 在PCIe插槽上,容易出現散熱不良導致宕機的問題;
l 不能熱插拔。如果發現PCIe快閃記憶體卡有故障,必須要停止服務,關閉伺服器,打開機箱,拔出快閃記憶體卡。這對有成百上千臺伺服器的數據中心來說,管理成本非常高。
所以,如圖所示,PCIe SSD推出了新的硬體形式:SFF-8639,又稱U.2。U.2 PCIe SSD類似於傳統的盤位式SATA、SAS硬碟,可以直接從伺服器前面板熱插拔。
圖1-1 熱插拔示意圖(本圖來源於Oracle NVMe SSD熱插拔說明)
當伺服器有很多個可以熱插拔的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需要幾方面的支持:
l PCIe SSD:一方面需要硬體支持,SSD在插盤過程中產生電流波峰導致器件損壞。另一方面,控制器要能自動檢測到拔盤操作,避免數據因掉電而丟失。
l 伺服器背板PCIe SSD插槽:需要通過伺服器廠家了解是否支持U.2 SSD熱插拔。
l 作業系統:要確定熱插拔是作業系統還是BIOS處理的,也是需要諮詢伺服器主板廠家來確定。
l PCIe SSD驅動:不管是Linux內核自帶的NVMe驅動,還是廠家提供的驅動,都需要在各種使用環境中做過大量熱插拔穩定性測試,避免在實際操作中因為驅動問題導致系統崩潰。
拔出PCIe SSD的基本流程如下:
查看更多內容,掃描下圖二維碼,閱讀原著和以上大圖。