最近有很多朋友拿著一篇關(guān)于“ceph運維那些坑”的文章來找我,起初我并沒有在意,畢竟對于一個“新物種”來說,存在質(zhì)疑是再正常不過的。不過,陸續(xù)有更多的合作伙伴甚至圈內(nèi)同行來問我如何看待這篇文章時,我覺得做為一名Ceph開發(fā)和運維的技術(shù)者,理應站出來為Ceph說點什么。
首先,原作者分析Ceph運維中遇到的問題是真實存在的,甚至在實際的運維過程中還出現(xiàn)過其他更復雜的問題。因為最初的Ceph只是社區(qū)提供的一套開源版,因而想要實現(xiàn)產(chǎn)品化需要趟過很多次“坑”,就像最早的安卓系統(tǒng)一樣。我想任何產(chǎn)品在一開始都難以做到十全十美,因為技術(shù)本身就是在發(fā)現(xiàn)問題與解決問題的道路上不斷前進發(fā)展的。不過,在這里我想澄清的事實是:連初涉Ceph的運維人員都能發(fā)現(xiàn)的問題,研究Ceph多年的資深技術(shù)人員們肯定也早已發(fā)現(xiàn)。
接下來我就根據(jù)那篇文章中提到的坑,來說一說在實際產(chǎn)品化過程中我們是如何解決它們的。
一、擴容問題
Ceph本身基于Crush算法,具備了多種數(shù)據(jù)復制策略,可以選擇在磁盤、主機、機柜等等位置附著。例如:如果采取3副本的數(shù)據(jù)保護策略,就可以通過復制策略來決定這3個副本是否同時分布在不同的磁盤、不同的主機、不同的隔離域、不同的機柜等位置來保證部分硬件故障后數(shù)據(jù)安全性和服務運行不中斷。
Ceph底層是用資源池(POOL)來實現(xiàn)數(shù)據(jù)邏輯隔離,往往我們會出現(xiàn)因容量或性能不足需要對資源池進行擴容的問題,但是在容量擴容過程中,勢必會帶來進行數(shù)據(jù)重新平衡的要求。Ceph中數(shù)據(jù)以PG為單位進行組織,因此當數(shù)據(jù)池中加入新的存儲單元(OSD)時,通過調(diào)整OSDMAP會帶來數(shù)據(jù)重平衡。正如文章所提到的,如果涉及到多個OSD的擴容是可能導致可用PG中OSD小于min_size,從而發(fā)生PG不可用、IO阻塞的情況。為了盡量避免這種情況的出現(xiàn),只能將擴容粒度變小,比如每次只擴容一個OSD或者一個機器、一個機柜(主要取決于存儲隔離策略),但是這樣注定會帶來極大的運維工作量,甚至連擴容速度可能都趕不上數(shù)據(jù)增長速度。
正是針對這個問題,元核云分布式存儲產(chǎn)品在運維管理平臺層面進行了優(yōu)化。擴容發(fā)生時,運維人員只需要將待擴容的服務器信息以及策略加入到運維管理平臺中,后面的事情都由運維管理平臺進行自動化處理。簡單來說,運維平臺會根據(jù)PG的狀態(tài)和待擴容OSD資源,尋求一個最優(yōu)的擴容方式,即在不影響PG可用性的情況下,循序漸進地進行OSD擴容,直到擴容動作完全完成為止。例如:在三副本的場景下,當某一個PG加入兩個OSD后,運維平臺會通過算法把擴容分為兩次完成,每次僅擴容一個OSD,這樣就能保證PG的min_size始終大于1。而這整個過程完全由運維平臺自動完成,對運維管理員完全透明。
二、數(shù)據(jù)遷移過程中的IO爭用問題
文章中提到的第二個問題主要是講在頻繁數(shù)據(jù)遷移過程中帶來的IO爭用問題。當集群規(guī)模變大后,硬盤損壞、PG數(shù)量擴充可能會變得常態(tài)化。
以我們的運維經(jīng)驗來看,客戶大概每年都會有幾次的相關(guān)運維操作。在我們運維過的所有集群中,最大的超過了1000個存儲節(jié)點,而在這過程中會遭遇到每個月?lián)p壞1-2臺硬盤、3個月左右進行一次集中換盤的情況。這些運維操作都需要通過數(shù)據(jù)遷移來進行數(shù)據(jù)恢復,數(shù)據(jù)恢復過程中會對硬盤的IO進行爭用,如何有效、智能地控制并恢復IO,并做到使業(yè)務IO不受影響,是Ceph運維管理的核心工作。
在元核云自動化運維管理平臺中,會采用時間策略、流量策略來控制數(shù)據(jù)恢復的速率。我們會在業(yè)務的高峰期,8:00——18:00這一時間段內(nèi)使用某種流量恢復策略,在業(yè)務的低峰期,18:00——第二天8:00這一時間段使用另一種流量恢復策略。在流量恢復策略中,可以基于磁盤的IO利用率情況,來動態(tài)調(diào)整數(shù)據(jù)流量恢復速率,比如說設置恢復流量占用IO利用率閾值不能超過50%,則總會保證不因恢復流量導致IO的利用率超過50%,當業(yè)務IO占比越大,恢復IO占比就越小,當業(yè)務IO利用率超過50%時,則停止恢復IO。此種方式可以靈活有效地利用閑時IO,在不影響業(yè)務IO的情況下,快速完成數(shù)據(jù)遷移恢復。
三、PG數(shù)量調(diào)整問題
當解決了數(shù)據(jù)遷移過程中的PG可用性問題和IO爭用問題后,關(guān)于文章中提到的PG數(shù)量調(diào)整問題自然也就解決了。數(shù)據(jù)遷移本身是一個常態(tài)化的過程,當控制了數(shù)據(jù)在遷移過程中的不良影響,同時在OSDMap變化過程中,PG始終能夠保持可用狀態(tài),那么就并不會像那篇文章中所說的那樣,調(diào)整PG數(shù)量會帶來災難性的后果。況且,PG的調(diào)整確實也不是一個經(jīng)常性的動作。
四、集群利用率問題
文章中提到的存儲成本問題主要是講集群可用率問題,即Ceph集群規(guī)模增大后,偽隨機算法導致了存儲資源分布不均衡,磁盤利用率方差過大的問題。
其實要做到保證每塊盤的數(shù)據(jù)均衡,這是一個比較復雜的過程。因為首先要確保數(shù)據(jù)分布能夠遵循每個Pool的Rule-Set規(guī)則,同時又要保證每個Pool對應的PG較為合理的分布在每個OSD中(因為有些Pool是放元數(shù)據(jù)的,并不會承載大量的數(shù)據(jù)),同時還要保證當PG數(shù)量發(fā)生變化時不會發(fā)生災難性的數(shù)據(jù)遷移(stable_mod)。元核云在Ceph基礎上開發(fā)了智能數(shù)據(jù)分布管理特性,它能通過預先設定好的計算模型,反復迭代計算,預測出一個最優(yōu)的數(shù)據(jù)分布,在現(xiàn)實運維經(jīng)驗中,我們可以保證OSD之間的數(shù)據(jù)容量之差不超過2%,存儲集群空間可用率達到95%以上。此特性功能會對因集群初始化、擴容、硬件故障等原因?qū)е碌臄?shù)據(jù)遷移后的數(shù)據(jù)失衡進行管控,實現(xiàn)較優(yōu)的空間使用率。
五、運維復雜度問題
正如文章所提到的,Ceph本身是一個十分復雜的體系,要做到穩(wěn)定運維非??粗貓F隊的實力。元核云除了對Ceph核心進行了深度優(yōu)化,還提供了一套支持跨數(shù)據(jù)中心多Ceph集群的自動化運維管理平臺,能極大提高運維效率、降低Ceph存儲集群運維成本。目前我們通過這套運維平臺,做到了五個數(shù)據(jù)中心上千個節(jié)點的存儲集群,每年僅需一個運維人力的案例。
總而言之,對于那篇文章中提到的“坑”,其實我們早已做好了充分的預防策略。紙上談兵都是容易的,實際操作卻比之復雜千萬倍。怎樣才能跳出人云亦云的圈子,真正認識到事實的本來面目,還是需要有長久的實踐操作經(jīng)驗才能夠看清楚。元核云主導負責的某大型金融集團近50PB+的分布式存儲方案,屬于國內(nèi)金融行業(yè)最大的Ceph存儲案例,達到了4年的軟件存儲產(chǎn)品本身零故障記錄,期間也經(jīng)歷了各種網(wǎng)絡異常、服務器和硬盤故障、服務器擴容、操作系統(tǒng)打補丁和升級、存儲軟件打補丁和升級等運維問題,仍然完好地維護了存儲數(shù)據(jù)。軟件定義存儲軟件系統(tǒng)屬于工程型項目,需要大規(guī)模的生產(chǎn)實踐經(jīng)驗和時間積累,遇“坑”填“坑”,才能保證其產(chǎn)品的成熟度。存儲畢竟是底層核心的關(guān)鍵技術(shù)產(chǎn)品,數(shù)據(jù)的最后一道防線,如果要正式進行生產(chǎn)應用,還是建議大家使用成熟的商業(yè)化Ceph存儲產(chǎn)品。
- AI熱潮中的冷靜思考:Manus智能體引發(fā)炒作風波,警惕泡沫風險
- 聲網(wǎng)推出AI對話引擎,輕松兩行代碼,讓你的AI也能開口說話!
- 自智網(wǎng)絡新篇章:產(chǎn)業(yè)領(lǐng)袖共創(chuàng)'L4啟航',打造未來智能網(wǎng)絡
- 蘋果M4 Ultra芯片“難產(chǎn)”揭秘,比亞迪海獅07DM-i首發(fā)亮相震撼登場
- 聯(lián)發(fā)科新處理器震撼來襲:3nm制程天璣9400+,CPU主頻破紀錄,性能再創(chuàng)新高!
- Meta Quest 3S問鼎全球VR銷量王,揭秘2024年第四季度VRAR市場新格局
- 蘋果折疊iPhone震撼登場:售價破萬,顛覆你對高端的認知
- 通用AI代理引發(fā)熱議:付費邀請碼引發(fā)爭議,公司合伙人回應并探討未來前景
- 蘋果M4 Ultra芯片“難產(chǎn)”真相揭秘:別被“虛高性能”迷惑
- 通用Agent產(chǎn)品Manus內(nèi)測引關(guān)注:超越OpenAI,打破行業(yè)新格局
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。