影像平臺的對象存儲改造優化之路
一、對象存儲基本知識
對象存儲,也稱為“面向對象的存儲”,英文是Object-based Storage。有時也直接稱之為“云存儲”。
對象存儲和傳統的存儲有著本質的區別。DAS和SAN是基于物理塊的存儲方式,操作對象是磁盤。存儲協議是SCSI、iSCSI、FC。以SCSI為例,主要接口命令有Read/Write/ReadCapacity/Inquiry等,而NAS是基于文件的存儲方式,操作對象是文件和文件夾。存儲協議是NFS、SAMBA(SMB)、POSIX等,文件相關的接口命令包括:READ/WRITE/CREATE/REMOVE/RENAME/LOOKUP/ACCESS等,文件夾相關的接口命令包括:MKDIR/RMDIR/READDIR等。對象存儲的底層硬件介質依然是硬盤,和塊存儲、文件存儲沒有區別,但它主要操作對象是對象(Object),存儲協議是S3、Swift等,主要接口命令有PUT/GET/DELETE等。
由于對象存儲操作的是對象,相對于傳統存儲來說并沒有完整的文件的概念,因此在對象存儲不支持直接打開/修改文件等操作,只能先下載、修改,再上傳文件。
圖1:對象存儲中文件的基本訪問方式
對象存儲呈現出來的是一個“桶”(bucket),文件以對象的形式存儲在對象存儲中。對象包括三個部分:Key、Data、Metadata。
圖2:對象存儲桶存儲示意圖
Key可以理解文件名,是該對象的全局唯一標識符(UID)。Data用戶數據本體。Metadata叫做元數據,類似數據的標簽,是對象的各種描述信息。在傳統的文件存儲里,這類信息屬于文件本身,和文件一起封裝存儲。而對象存儲中,元數據是獨立出來的,并不在數據內部封裝。元數據的好處非常明顯,可以大大加快對象的排序,還有分類和查找。
二、對象存儲優點
容量無限大
對象存儲的容量是EB級以上,硬盤普遍是TB級別,1EB約等于1TB的一百萬倍。對象存儲的所有業務、存儲節點采用分布式集群方式工作,各功能節點、集群都可以獨立擴容。
數據安全可靠
對象存儲采用了分布式架構,可支持多副本多設備冗余部署或糾刪碼方式多節點部署,實現異地容災和資源隔離。數據訪問方面,所有的桶和對象都有ACL等訪問控制策略,所有的連接都支持SSL加密,OBS系統會對訪問用戶進行身份鑒權。因為數據是分片存儲在不同硬盤上的,所以即使有壞人偷了硬盤,也無法還原出完整的對象數據。
使用方便
使用對象存儲數據的存取方法非常靈活多樣。除了可以使用網頁(基于http)直接訪問之外,大部分云服務提供商都有自己的圖形化界面客戶端工具,用戶存取數據就像用網盤一樣。
三、對象存儲特點
由于對象存儲的訪問特性,需要把整個文件取出來,修改完成再放回去,因此并不適合存儲需要頻繁擦寫的數據(比如聯機交易數據庫的數據),對象存儲主要應用在低頻訪問類型和歸檔類型應用上。由于分布式多節點部署,在各節點之間需要保持數據的一致性,因此也不太適用于存儲對一致性要求比較高的聯機交易數據。
四、影像平臺引入對象存儲的背景
G行影像業務平臺始建于2007年,系統最初的主要目標是為客戶證件影像圖片、客戶合同單據影像文件、網點單據縮微影像文件、各類業務報表文件等非結構化數據文件提供存儲和管理。但是隨著業務的高速發展,以及系統運行時間的增加,影像平臺面臨以下困難和挑戰:
01業務應用場景多樣化
業務需求已經從最初的圖片文件和報表文件,逐漸向音頻、視頻演進,對存儲的需求量急速增長,到目前為止,影像平臺存儲管理的非結構化數據已經達到600余T,預估還將以每年100T的數據快速增長,高速增長的海量數據正在給影像平臺造成越來越大的存儲和管理壓力,急需大容量存儲技術支持。
02系統升級難度大,容量風險高
為了管理海量數據,G行影像業務平臺基于某內容管理產品搭建。影像文件需要長期在線保存,文件管理規模隨著系統運行時間的增加而快速增長,當內容管理產品版本更新時,舊版本產品中的文件遷移難度太大,因此采用新建庫升級的模式,先后搭建了A類歷史庫、A類在線庫和C類在線庫,各個庫之前的產品版本無法保持一致,低版本產品無法及時進行更換,相應的服務器、操作系統、數據庫等均無法進行及時升級,升級難度較大,系統長期處于容量中風險。
圖3:影像平臺擴充建設示意圖
03維護和擴容成本高,風險大
影像平臺目前使用的SAN和NAS存儲、擴容能力受限,擴容成本高。隨著管理內容不斷增加,主機服務器上掛載的磁盤數量越來越多,在系統切換,服務器重啟過程中,需要對磁盤進行逐一掛載,耗時較長,無法滿足系統在應急情況下的快速災備切換要求。隨著新建內容庫的增多,系統體量逐漸變大,應用系統部署架構變得越來越復雜,維護難度大。
04產品支持存在風險
系統使用的內容管理產品幾經轉售,目前屬于某國外產品的子產品,產品的售后服務支持延續性缺乏穩定性,存在一定的風險。且隨著產品的升級換代,目前歷史庫使用版本老舊,該版本廠商的支持力度很有限,產品運行風險逐漸增加。
為了解決影像平臺系統面臨的上述問題,降低對特定產品的依賴,降低系統運行風險,簡化系統部署架構,降低運維難度,降低數據存儲成本,急需對我行影像平臺進行改造優化。綜合考慮影像文件存儲體量大,文件生成后修改和變動的概率較小,大部分處于靜態只讀狀態,需要長期保存的這些特點,與對象存儲的產品特性契合度較高,經過充分評估和測試,2019年我行決定在影像平臺引進某國產品牌分布式對象存儲,提供輕量級標準化存儲層訪問協議,解決目前非結構化數據的擴容能力瓶頸,并進行部分業務的試用。
五、改造優化現狀
為了順利完成平臺的改造優化,針對對象存儲的使用,影像平臺制定以下實施原則:
- 非關鍵業務先行試用
- 穩步推進,逐漸推廣
- 新舊并存,穩定為主
2019年以來,影像業務平臺對象存儲改造優化一共完成了以下3方面工作:
01產品引入:分布式對象存儲產品部署
推進硬件設備進場,完成相關功能、非功能測試后,正式在生產環境完成對象存儲部署。
影像平臺對象存儲的部署使用兩個機房互為主備,由應用程序通過配置決定主端。比如,應用程序配置以A機房為主節點,承擔影像文件的讀寫操作,則B機房為備節點。兩個機房之間進行數據的準實時同步。
圖4:影像平臺對象存儲部署示意圖
02應用試點:影像平臺現有報表相關業務
選用報表業務作為試點業務,在2020年完成影像平臺報表文件向對象存儲遷移,并將報表的導入、下載等日常訪問全部切換到對象存儲。
03數據遷移:影像業務平臺歷史數據遷移
在2020年底啟動影像平臺A類歷史庫影響文件向對象存儲遷移工作,經過近9個月的不斷調優,已經完成近200T數據的遷移,預計到22年年中完成全部A類歷史數據遷移。
圖5:影像平臺并行期部署架構
六、后續改造規劃
后續針對對象存儲的改造優化,影像平臺還將完成以下兩方面工作:
01推廣實施:自存量數據向批量數據遷移
A類歷史數據遷移完成后,將分階段切換現有業務至對象存儲中,對象存儲承擔A類歷史影像文件的查詢和下載功能,同時存儲體系為內容管理產品與分布式對象存儲并存,提供A類在線影像文件的存儲、查詢和下載功能。
02技術替換:逐步接替內容管理產品,搭建基于對象存儲的在線非結構化數據平臺
于對象存儲的在線非結構化數據平臺對象存儲在線業務穩定運行后,將數據遷移至對象存儲,對象存儲作為唯一的存儲體系承接影像所有業務。將內容管理產品從影像平臺全部剝離,徹底完成對影像平臺的輕量級改造,G行影像內容管理將邁上一個新臺階。
圖6:影像平臺最終部署架構
七、運維經驗總結
對象存儲與傳統存儲工作原理不一樣,使用方式和維護方式也不一樣,因此在引入對象存儲之前,需要在部署、監控、測試、維護等方面進行技術儲備,確保對象存儲引入后的平穩使用;
關注對象存儲的資源使用情況,以及節點間數據一致性。對象存儲自帶CPU和內存等資源,使用過程中需要關注該類資源使用情況,有異常時及時跟進優化;此外,對象存儲會存在各節點之間數據一致性不同步的問題,使用過程中需要重點關注,如出現不一致,需要及時進行干預保證數據一致性,避免在發生切換的時候存在數據使用上的錯誤。
技術維護人員需保持開放的思維意識,隨時關注新技術的發展與變化,隨時思考如何使用新技術解決運維過程中面臨的各種難題,切勿固步自封。與時俱進,方得始終。