■ 中國航空結算有限責任公司 高紅巖
編者按:伴隨著新一代信息技術的快速發展,未來的信息化建設的方向將是在保障信息安全的前提下,優化資源與架構,達到降本增效。IT 運維部門,作為企業重要的成本部門,也應該主動探尋降低IT 成本的新方法,助力企業穩步發展。
傳統模式下的集中式SAN 存 儲,隨著企業數據的急劇增加及對存儲類型的多樣化要求,已經無法適應企業發展的需要。集中式存儲通常采用 Scale-UP 的擴展方式,存儲擴容受到物理槽位數量、容量License 等因素的限制,并且擴容后只能獲得容量的擴展,無法獲得性能的提升,甚至有時還出現性能下降的情況。
集中式存儲所有的數據訪問都要通過磁盤控制器,這使得磁盤控制器成為了整個磁盤訪問的瓶頸。
同時,不同廠商的存儲設備之間的數據遷移非常困難,需要依賴額外的軟硬件,導致集中式存儲的性能孤島和數據孤島的現象出現。
此外,集中式存儲多是軟硬件一體機,采購成本很高,不同廠商的存儲設備其管理方式也不盡相同,加大了管理復雜度,造成管理成本和維護成本非常高。隨著云計算、大數據技術的發展,傳統集中式存儲在對新技術的支持上就更顯乏力。
Ceph 是一款開源軟件定義的分布式存儲解決方案,很多商業分布式存儲解決方案都是基于Ceph 發展而來的,如Bigtera的VirtualStor 系列產品,Hope Bay 的ArkFlex 云端大規模數據存儲平臺產品。
作為一款統一存儲解決方案,Ceph 可以為用戶提供塊存儲、對象存儲和文件存儲,Ceph 采用多副本方式保證數據可用性,無中心架構避免中心節點性能瓶頸,整個分布式存儲架構采用高可用架構,支持故障域隔離。與集中式存儲Scale-UP 的擴展方式不同,Ceph 分布式存儲系統采用Scale-Out 橫向擴展方式,集群規模可擴展到上千臺,擴展時實現性能與容量的同時提升,有效提高基礎架構的敏捷性,并采用通用X86 服務器,實現與硬件的解耦,從而可獲得成本上的優勢。

圖2 磁盤分區
搭建POC 驗證環境對Ceph 分布式存儲進行性能方面的驗證。服務器配置如表1 所示。
(1)集群采用3 節點架構,三個節點均為OSD、MGR的角色,選擇其中一個節點作為監控節點MON。
(2)磁盤設計:每個節點配 有6 塊SATA 硬 盤 和1 塊SSD 盤。使用其中2塊SATA 盤作為系統盤,剩 余4 塊SATA盤作為數據盤,設置為JBOD 模式,每個數據盤運行一個OSD進程。Ceph 使用日志卷保證數據強一致性,每個OSD 對應一個日志卷。因日志卷使用空間很小,為了提升Ceph 集群性能,SSD 剩余容量作為OSD 緩存使用。使用Parted 命令將SSD 使用劃分4 個分區,并保證4KB 分區對齊。
磁盤分區如圖2 所示,sda 為SSD 盤,sda1、sda2、sda3 和sda4 這4 個 分 區 分別4 個OSD 的日志卷,sda5、sda6、sda7 和sda8 分別作為4 個OSD 的緩存來使用。
集群包括3 節點,每個節點 包 括4 塊1.8 TB SATA盤作為數據盤,整個集群的裸存儲容量為1.8 TB×4×3=21.6 TB,采用三副本保護,整個集群可用容量為7.2 TB。

表1 服務器配置
(3)網絡設計:
每個節點都有三組網絡:內部數據交換網絡、對外數據訪問網絡和集群節點管理網絡。每個節點具有2 塊雙口萬兆網卡,每塊網卡的第1 口和第2 口分別做綁定,采用mode4 雙活模式,在擴大網絡帶寬的情況下實現網絡冗余保護。
綁定后的一組網卡作為內部數據交換,另一組網卡作為對外提供數據訪問。每個節點的千兆網卡作為集群節點的管理網。因為Ceph采用多副本方式存放數據,節點之間會進行數據交換,所以集群內部的數據交換網絡要采用萬兆網絡或者更高速的網絡。
對外提供數據訪問的網絡可以使用千兆網絡,也可以使用萬兆網絡,這主要依據業務數據流量以及業務性能要求,推薦使用萬兆網。節點管理網只是用于節點管理,數據量很小,可以使用千兆網絡也可以和對外數據網絡共用。網絡拓撲圖如圖3 所示。

圖3 網絡拓撲圖
在Ceph 集群中劃分兩個塊存儲卷,分別叫做vmw-600和vmw-500,在VMware 集 群中的每個主機上通過iSCSI Software Adapter 識別到這兩個卷。從VMware 虛擬化集群中選擇一臺磁盤空間為124 GB 的虛擬機,做下列存儲遷移測試。作,這個時間也會算作虛擬機遷移的時間。對于VMware 平臺的虛擬機存儲遷移,遷移的塊大小為63 KB, 可以計算出整個分布式集群的IOPS 約為(310×1024)÷64=4960。
測試一:將虛擬機從IBM DS 系列存儲遷移到分布式存儲上,查看磁盤性能情況。
在遷移過程中,從底層看到SSD 盤寫帶寬達到310MB/s 以上,SSD IO 繁忙率達到80%以上,SATA 數據盤沒有IO,這是因為SSD 盤作為數據緩存使用,所有數據是先寫入SSD 的。虛擬機存儲遷移共用610 s 完成,遷移速度為208 MB/s。
對于虛擬機實際遷移速度比分布式存儲底層看到的速度慢的原因,是因為虛擬化平臺在虛擬機遷移時會做一些預處理的工
測試二:將虛擬機從vmw-600 遷移到vmw-500 上。
此時SSD 盤寫帶寬在216 至239 MB/s,讀帶寬在50 至76 MB/s,IO 繁忙率達到87% 至91% 之間上,SATA數據盤沒有讀寫IO。
當虛擬機遷到61% 時,SATA 數據盤出現寫IO。此時SATA 數據盤寫帶寬17至31MB/s 之 間,IO 繁忙 率超 過25% 至41% 之 間。SSD盤讀帶寬為136 至149 MB/s,寫 帶 寬124 至127 MB/s,IO 繁 忙 率 超 過85%, 計算出集群的平均讀IOPS 為(134×1024)÷64=2 280,平 均 寫 I O P S 約 為(146×1024)÷64=2 008。整個虛擬機存儲遷移共用670 s 完成,遷移速度為189 MB/s。
當sdd、sdb、sde 和sdc磁盤出現寫IO 時可知,SSD盤緩存使用量已經達到向底層磁盤刷數據的條件,SSD盤正在向底層SATA 盤遷移數據。此時,SSD 盤既要作為寫緩存接收來自上層應用的寫數據,又要將自身數據讀取出來傳到SATA 盤上,所以對于上層應用來說,整個集群IOPS 相比測試下降了59.5%。
根據實際測試結果,對于實際生產環境中的分布式集群配置有以下幾條建議:
(1)不同類型接口的SSD盤對集群性能影響很大,如果預算允許,建議配置NVMe接口的SSD 盤。同時不同的SSD 盤有其不同的適用場景,如讀密集型場景或讀寫均衡型,可根據具體使用場景進行選擇。
(2)建議配置大容量SSD磁盤或多塊SSD 磁盤:因為SSD 作為緩存使用,容量較小會導致系統頻繁的從SSD 向底層數據盤刷數據,影響整個集群的IOPS。
(3)對于集群性能,既要關注IOPS 和帶寬,還要關注延遲。要根據業務的實際負載情況及性能要求對分布式集群的配置進行合理規劃。
(4)從安全性角度考慮,每個節點的數據盤數量不宜過多,避免單節點故障影響面過大,而且故障恢復后數據恢復時間會比較長。
根據分布式存儲的架構特點及測試的情況,對于分布式存儲的應用場景主要在以下幾個方面:
(1)基于應用服務的虛擬化平臺。
對于承載業務應用層的虛擬化平臺,對存儲帶寬和IOPS 要求相對較低,而且對延遲的容忍度較高,可以使用分布式存儲來滿足。
(2)下沉數據的保存。
使用分布式存儲,通過對數據的分級管理實現數據生命周期管理,即滿足了業務對歷史數據隨時在線可查的要求,也實現了數據低成本存儲。此外,因為客戶對數據安全性要求不斷地提高,有些客戶要求歷史數據要離線保存5 年甚至7 年時間,而且數據量也非常龐大。對于這樣的存儲需求,也可以采用分布式存儲來滿足。
具體可以采用兩種方式,一種是通過分布式存儲中的文件存儲,為業務系統劃分一個大容量的文件存儲空間。另一種是通過備份軟件將歷史數據備份到分布式存儲中,將分布式存儲作為備份空間使用。
(3)文件存儲及對象存儲。
使用分布式存儲的文件存儲,可以很好的滿足業務的NAS 空間需求,在實現成本降低的同時,采用多副本方式實現數據的保護。
隨著業務功能的不多豐富,業務的數據類型也開始多樣化,出現了圖片、音頻、視頻等非結構化數據,對于這些非結構化數據,對象存儲因其扁平化的獨特結構有著天然的優勢。而且,由于云計算的推廣,對象存儲也對企業云平臺提供了很好的支持,這些場景都非常適合使用分布式存儲的對象存儲方式來滿足。
企業業務場景是多樣的,了解業務的實際工作負載情況、性能要求、高可用要求以及存儲容量等要求,對于存儲規劃工作至關重要。針對不同類型的需求設計不同的存儲解決方案有助于實現性能和成本的平衡。