關于Ceph產品化的一些感悟

關于Ceph產品化的一些感悟

Ceph作為一款十年歷史的開源分布式產品,其穩定性、可用性確實得到業界的普遍認可 。2014年我們基于Ceph給用戶提供的一個管理系統,到目前為止僅出現了兩次問題,其中一次是硬件問題,一次是使用方式不當的問題 。作為一個開源產品,能夠有如此高的穩定性和可用性,這應該就是Ceph能夠獲得今天的成績的首要原因 。
關于Ceph的優勢,這里簡單概括如下:
對各種異??紤]的比較完善 , 比如網絡抖動、去中心化的心跳機制、恢復機制對復雜異常的考慮;
很少因為代碼問題導致程序coredump,也沒有出現過內存泄漏問題,說明代碼質量還是不錯的;
高級功能比較全面,支持塊、對象、文件,同時支持副本、EC、tier、scrub等高級特性
不過,好的的產品家家相似,不好的產品各各不同,所以今天,我重點和大家講講不好的 。隨著我們服務的企業客戶的不斷增加, Ceph真正應用于企業客戶不同場景中所遇到的各種問題也逐步開始暴露 。
采用Ceph替代傳統SAN的煩惱
在2014年到2015年上半年的時候,杉巖利用Ceph主要給客戶提供一些替代IP SAN的解決方案,客戶希望利用Ceph的高擴展性、高可靠性提供一個相對規模較大,性價比較好的通用存儲池,降低一些數據量較大、低價值數據的存儲成本 。這時,就遇到了各種問題:

不支持標準的塊接口
Ceph稱提供塊接口,但其實它的塊接口之支持Qemu-KVM,并不是一個傳統的SCSI標準塊接口,是無法直接應用于VMware、Windows和Solaris等系統的 。這些系統對接的塊存儲都是類似于FC SAN或者IP SAN這種提供標準SCSI接口的設備 。將Ceph推向這些傳統的企業應用是無法實現對接的 。
運維管理手段和工具缺乏
這個問題是Ceph目前直接應用于企業客戶最大的問題,易用性和易維護性,SageWeil在今年也提出易用性是未來Ceph的重要改進方向 。杉巖在應用與企業客戶中遇到各種問題,然后不斷完善產品,其中最典型的問題就是各種硬件備件的更換 。
在使用傳統存儲時,當硬件部件出現問題時,企業的IT運維人員希望盡快更換配件,避免出現更加嚴重的問題,為此一些企業都有的備件庫,當硬件配件出現問題時,運維人員通過更換配置做簡單的操作就可以完成配件的更換 。而如果直接使用Ceph,則可能要面臨敲一堆的命令才能完成更換的操作,這是Ceph直接作為企業產品無法接受的 。
無法實現數據卷的安全隔離需求

傳統的企業存儲是一個公共資源,上面運行著多種業務應用,為了防止不同業務應用讀取或者破壞非自身業務應用的數據,傳統企業存儲通過LUN MASKING/CHAP 協議等,實現存儲卷的安全隔離 。
而Ceph設計用于云平臺 , 所有的RBD對于云平臺的每個主機都是可見可操作的,從而實現虛擬機在整個集群的遷移 。所以需要一套在Ceph之上實現一套類似于LUN MASKING的機制,保證不同業務只能看到和訪問分配給自己的存儲卷 。
混合盤性能無法發揮
另外,我們發現,目前在云數據中心,客戶更多的還是采用SSD HDD的混合模式,有部分對性能無要求的客戶采用了純HDD的模式,采用全SSD的客戶目前還沒有實際遇到(有部分客戶做過測試) 。
在SSD HDD混合模式下,Ceph遇到的煩惱是對SSD寫帶寬消耗過大 。大家都知道SSD性能很高,這是對于隨機小IO來說,但SATA SSD的順序寫MBPS其實并不高,如下圖是Intel DC S3520的順序寫性能,最大也就380MBPS 。一個好一些的SAS盤,寫帶寬都可以到300MBPS,SATA盤至少也有150MBPS的性能 。
一般來說客戶的一個存儲節點采用1-2個SSD作為緩存盤,對外提供的帶寬其實也就300MBPS到600MBPS , 而Ceph的journal兩副本的方式 , 消耗了4倍寫帶寬,最終實際一個服務器能提供的寫帶寬只有75MBPS~150MPBS,遠遠小于多個機械盤的順序寫能力,嚴重制約著Ceph的順序寫性能 。

Ceph應用在VMware超融合的煩惱
隨著應用客戶的不斷增加,我們發現,Ceph主要的應用場景是虛擬化場景,占80%以上 , 其中VMware又占到了50%以上,而且應用VMware的大部分都是超融合環境 。
而此時遇到的主要問題包括:
對更好的iSCSI并發能力的需求
在替代IP SAN模式下,不同應用主機之間一般使用LUN比較獨立 ??梢酝ㄟ^LUN歸屬的方式 , 不同的LUN通過不同的單個iSCSI Target提供出來,即可實現較好的并發 。
但在VMware環境下 , 一般只劃分很少的LUN(一般1-2個大LUN),供整個VMWare集群共享使用 。如果此時依然采用LUN歸屬的方式,單個iSCSI Target將成為整個集群的瓶頸點 。
在這種場景下,iSCSI必須實現的是一個全Active的架構,保證LUN在所有的target上可以同時訪問,從而保證任何一個iSCSI Target不會成為性能的瓶頸點 。
必須支持VAAI
VMWare實現VAAI接口,在虛擬機批量創建、克隆,讀寫性能上影響非常大 。比如在不支持VAAI的XCOPY時 , SandStone跟FC SAN的克隆性能相差10倍 。企業客戶一對比,就覺得存儲性能太差 。在企業私有云環境,批量克隆虛擬機確實是一個常見的運維操作,過慢確實也影響到客戶的使用效率 。
CPU消耗過大嚴重影響性能發揮
Ceph的CPU消耗較高是眾所周知的 , 當分離部署時這個問題還不明顯,一旦應用于VMware超融合場景,問題就暴露的比較明顯了 。因為在超融合環境下,虛擬機需要占用大量的CPU資源 , 而CPU的核心在一定范圍內價格是可控的,但超過一定核心數價格會變得非常高 。下圖是E5-2600系列CPU的核心數(邏輯核)與價格的對應曲線(價格數據取自中關村在線),一般客戶主要選擇2路E5-2650 ?C E5-2680的CPU,最大邏輯核心也就24個 , 往往能分配給存儲的CPU基本只有8-12個邏輯核 。
杉巖最初的優化版本必須在16個核心才能返回出兩個Intel DC 3500 SSD的能力,經過一段時間的優化,最終能夠在8-10個邏輯CPU核把兩個SSD的能力發揮出來 。
一些進展
我們正在同每一個致力于Ceph的企業和個人一道將Ceph打磨成一款可以適應于企業客戶的多種場景的企業級產品 。Ceph不僅僅是一行行看上去很美麗的開源代碼 。
未來,我們將秉承“來源社區、貢獻社區”的態度,逐步將在CEPH上取得的一些成績回饋給社區,和大家一起功能促進分布式存儲的健康發展 , 并為企業客戶提供更靈活、高效、穩定的存儲解決方案 。
【關于Ceph產品化的一些感悟】

經驗總結擴展閱讀