分布式存儲運維疑難故障
分布式存儲是一種數(shù)據(jù)存儲技術(shù),通過網(wǎng)絡(luò)使用企業(yè)中的每臺機器上的磁盤空間,并將這些分散的存儲資源構(gòu)成一個虛擬的存儲設(shè)備,數(shù)據(jù)分散的存儲在企業(yè)的各個角落。

Ceph是一個統(tǒng)一的分布式存儲系統(tǒng),其具有高性能、高可用性、高可擴展性等特點。其主要提供以下三個存儲服務(wù):
1、塊存儲 (適合單客戶端使用):作為塊設(shè)備像硬盤一樣直接掛載。
典型設(shè)備:磁盤陣列,硬盤。
使用場景:
a. docker容器、虛擬機遠程掛載磁盤存儲分配。
b. 日志存儲。
2、文件存儲 (適合多客戶端有目錄結(jié)構(gòu)):如同網(wǎng)絡(luò)文件系統(tǒng)一樣掛載,兼容POSIX接口。
典型設(shè)備:FTP、NFS服務(wù)器。
使用場景:
a. 日志存儲。
b. 多個用戶有目錄結(jié)構(gòu)的文件存儲共享。
3、對象存儲 (適合更新變動較少的數(shù)據(jù),沒有目錄結(jié)構(gòu),不能直接打開/修改文件):既可以通過使用Ceph的庫,利用C, C++, Java, Python, PHP代碼,也可以通過Restful網(wǎng)關(guān)以對象的形式訪問或存儲數(shù)據(jù),兼容的S3和OpenStack的Swift。
典型設(shè)備:s3, swift。
使用場景:
a. 圖片存儲。
b. 視頻存儲。
c. 文件。
d. 軟件安裝包。
e. 歸檔數(shù)據(jù)。
運維技術(shù)難度: io的讀寫,集中存儲中數(shù)據(jù)只要寫入一個磁陣就算成功了,分布式存儲中是寫入大部分的節(jié)點才算成功,如果寫入全部節(jié)點IO性能有影響,寫入少量節(jié)點即是寫入失敗。
運維困難:監(jiān)控上,要采用分布式prometheus來采集各個節(jié)點的數(shù)據(jù),節(jié)點多的時候,監(jiān)控范圍較大。出現(xiàn)故障時, 要判斷節(jié)點與節(jié)點間的相互作用,診斷難度加大。
對不同類型的數(shù)據(jù)應(yīng)采用不同的遷移方式:
(1)對渠道類數(shù)據(jù)通常是多而散,通常分批遷移;
(2)對于賬務(wù)類數(shù)據(jù),通常是實時數(shù)據(jù),需要保證其關(guān)聯(lián)性和事務(wù)性,需要擇業(yè)務(wù)運維窗口遷移,同時做好新老數(shù)據(jù)同步工作;
(3)對于數(shù)據(jù)報送類數(shù)據(jù),通常是交易歷史數(shù)據(jù)等,可以擇時一次性遷移。在遷移前期,會有數(shù)據(jù)不同步的現(xiàn)象,需要新老系統(tǒng)并存;在中期,需要進行必要的數(shù)據(jù)校驗和壓力測試(分布式存儲讀寫性能很重要),后期在校驗同步基礎(chǔ)上,進行遷移(轉(zhuǎn)型)的演練,將少量應(yīng)用的數(shù)據(jù)源切換到分布式存儲,進行預生產(chǎn)發(fā)布。