PBData核心原力:初探爆炸式增長、指數級上升的卓越性能之NVMe
從最早的HDD機械硬盤到SSD固態硬盤,是一個物理科學上的更迭。隨后,SSD硬盤普遍出現在人們的視野里,常用來打游戲,做運算以及需要快速存儲大量數據的場景。嚴格來講,NVMe是一個接口規范,而SSD是物理科學產物。SSD支持包含NVMe、PCI-E等多種接口協議,以滿足不同用途目的。
存儲是現代企業IT硬件的核心基礎之一。存儲系統所采用的數據存儲方式大致可分為DAS,NAS和SAN這幾種。 隨著基于NAND Flash的SSD的發展,傳統的SCSI協議已經制約了SSD在高并發和低延時上的繼續發展。
為了應對這種軟件協議上的制約,NVMe應運而生,其硬件上直接使用PCIe總線代替專用存儲總線,軟件協議上設計了高達65535個I/O隊列,每個隊列上65536個并發命令,極大的提升了存儲協議性能上限。
NVMe傳輸模型所示,每個NVMe host上都會有N個NVMe core,其中一個為管理相關的core,其余為I/O core,為了性能考慮,一般I/O core數量和當前系統中CPU數量相同。
每個Core上都配置有發送隊列和完成隊列,其用于給controller發送消息和接收controller消息。根據系統資源配置和應用負載要求,可以配置多個發送和接收隊列,每個core上支持配置成發送、接收隊列配對的方式,也支持多個發送隊列共享一個接收隊列的方式。管理隊列僅支持發送和接收配對的方式。
應用了NVMe協議后,單個SSD可以達到十幾萬,甚至幾十萬的隨機讀寫IOPS,這在SCSI時代簡直是不可思議的事情。然而,幸福的煩惱又產生了,單機軟件基本上不能消耗完這些性能,如何讓這些高性能的NVMe SSD在多個服務器之間共享成為了核心問題?
傳統的SAN存儲網絡,大部分都是基于SCSI協議發展而來,無論基于TCP的iSCSI,還是基于RDMA技術的iSER, SRP,都無法滿足當前NVMe SSD的性能要求,那么為什么不把如此高性能的NVMe協議應用于存儲網絡呢?
答案當然是肯定的,NVMe協議1.3中就規定了NVMe over Fabric相關協議內容。
什么是NVMe over Fabric
NVM Express over Fabric定義了一個基于NVMe塊存儲的通用軟件架構,其可以支持各種存儲網絡結構。簡單來講,NVMe over Fabric定義了一組協議,可以支持Fibre Channel, Inifiband, RoCE, iWARP這些存儲網絡:
當前NVMe over fabric支持的網絡結構,從軟件的實現上可以分為以下幾類:
- RDMA(包括Infiniband, RoCE, iWARP)
- Fibre Channel
- PCIe
盡管軟件上多種實現方式,NVME在抽象層定義了統一的數據消息格式,當給NVMe設備發送消息的時候,各種瑣碎的消息都被封裝在capsule里面統一發送,這樣可以提高傳輸效率和降低消息的平均延時。
NVMe的實際效用
而采用了該技術的PBData一體機,不僅僅具備常規意義上的SSD高速,更具有數據傳輸意義上的高速。
為什么這么講,因為常規的SSD復制操作消耗CPU和內存,而企業級的數據中心,在新一代的技術下,是顛覆傳統,極少占用資源,直接傳入存儲空間。
PBData數據庫一體機的基本配置
該設備是某航空采購的天璣眾多產品的其中一臺基本型,具備眾多超凡的基本能力:
用于高性能計算、熱插拔閃存、Infiniband網絡、RDMA 遠程直接存取數據的數據庫解決方案,提供高可用、易擴展、高性能的數據庫服務,適用于 OLAP、 OLTP 以及混合負載等各種應用場景下的極限性能需求,支持 Oracle 等各種主流數據庫。
該航空公司采購的數十臺不同機型存儲矩陣,控制數千人在線延遲60ms內,其中TPM、TPS等提升性能3-4倍左右,高達傳統機型20多倍的IOPS將吞吐量連升3級,不僅滿足了現階段的業務需求,還極大的擴展了面向未來業務的處理能力