


摘 要:本文將云計算和數據庫技術相結合,針對目前企事業單位對云數據庫的需求,使用OpenStack、ansible等開源技術設計了一款私有云數據庫系統,同時針對云數據庫系統安全問題設計了與之適應的云數據庫平臺的安全架構,為企事業單位搭建私有云數據庫平臺提供了一種解決方案,經測試云數據庫功能正常、性能良好。
關鍵詞:云數據庫;云計算;數據庫;OpenStack
中圖分類號:TP392 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2021.02.050
本文著錄格式:張家勇.基于OpenStack的云數據庫平臺設計[J].軟件,2021,42(02):163-166
Design of Cloud Database Platform Based on Openstack
ZHANG Jiayong
(Dalian Big Data Center, Dalian? Liaoning? 116012)
【Abstract】:This paper combines cloud computing and database technology, aiming at the current needs of enterprises and institutions for cloud database, uses openstack, ansible and other open source technologies to design a private cloud database system, and designs the security architecture of the corresponding cloud database platform for the security problems of cloud database system, which provides a way for enterprises and institutions to build private cloud database platform After testing, the cloud database function is normal and the performance is good.
【Key words】:cloud database;cloud computing;database;OpenStack
0 引言
隨著信息技術的不斷發展云計算的技術的逐漸成熟,信息系統建立越來越依賴數據庫支持[1]。相對于傳統數據庫來說,云數據庫的高可用、高性能、易擴展、低成本等優勢非常明顯,越來越多的用戶傾向于使用云數據庫搭建信息系統[2]。近幾年市場上先后涌現出SQL Azure、HBase等產品[3],這些產品多為運行于公有云環境下的商用產品,并且成本較高,而運行于私有云環境下的面向中小企事業單位使用的云數據庫產品少之又少。本文就是針對目前企事業單位對云數據庫的需求,研究設計了一款基于OpenStack、ansible等開源技術的私有云數據庫平臺,并針對云數據庫平臺的特點設計了與之對應的云數據庫安全架構,經測試能夠較好的滿足需求。
1 系統需求分析
1.1 功能需求
目前國內大部分企事業單位希望能夠使用云數據庫支撐其信息系統建設,而其對云數據庫需求主要包括用戶管理、虛擬機管理、鏡像管理、部署配置、數據庫實例管理、監控、數據備份、計費及申請需求收集等需求。(1)用戶管理。云數據庫管理平臺用戶需要區分用戶角色權限管理,普通用戶只有云數據庫本用戶的使用權限或者視需求情況增加用戶的管理權限,而管理用戶可以管理用戶及云數據庫及其宿主虛擬機等。(2)物理機管理。用戶能夠通過云數據庫平臺實現底層物理機設備管理,支持靈活的將物理機其納入或移除云數據平臺及修改物理機配置等。(3)虛擬機管理。系統支持管理云數據庫的宿主虛擬機,主要包括:創建(刪除)虛擬機、虛擬機備份及虛擬機開啟關閉等功能(4)鏡像管理。系統能夠支持類似創建的方式快速部署云數據庫,即基于云計算虛擬化鏡像的技術對相同配置需求的云數據庫的進行類似創建和部署,并支持不同類型的鏡像和模板的分類存儲、上傳以及查看。(5)自動部署。為實現系統方便快捷系統的部署,系統需要支持基于腳本技術的自動化部署功能,系統中預置安裝配置參數以腳本,通過命令調用執行腳本實現按照參數配置進行自動化安裝。(6)實例管理。系統支持管理員權限用戶管理數據庫實例,主要包括:創建實例、刪除或銷毀實例、啟動和關閉實例、備份和恢復實例數據以及實例的優化升級等。(7)性能監控及報警。系統需要支持性能監控功能,以保障云數據庫的安全穩定運行,主要包括CPU、內存、IOPS、存儲空間等指標監控,同時支持根據經驗值設置報警值,當相關指標超過報警值的時候自動報警。
1.2 非功能需求
目前很多應用系統依賴數據庫建設,其所用數據庫是否安全、可靠、易用及方便擴展將直接決定應用系統使用效果。數據庫采用云模式后性能及安全性等方面更是面臨巨大的挑戰,能否經受眾多用戶并發連接考驗展現高性能,能否方便地擴展資源以及能否在運行過程中安全穩定運行成為系統重要評價指標[4]。(1)兼容性。系統需要能夠兼容Oracle、SQL Server、MySQL等主流數據庫,保證各種應用系統能夠方便平滑的遷移至云數據庫平臺。(2)可靠性。系統需具有一定的容錯能力,避免出現單個節點故障導致系統整體系統崩潰和多用戶同時操作一個數據庫節點時出現差異。(3)易用性。系統整體需屏蔽虛擬化平臺、消息中間件、自動部署等功能的具體繁瑣的技術細節,用戶能夠通過接口方便的使用云數據庫,系統整體應該簡單易用,使用過程中不應有具體繁瑣技術細節[5]。(4)擴展性。系統應有較好可擴展性,能夠靈活的響應用戶的需求。已經在運行維護期內的系統發生需求變更時,例如需要增加、修改、刪除某些功能組件時,能夠快速響應并交付,盡量避免因部分功能變化降低系統整體性能的情況[6]。(5)安全性。云數據庫基于云計算虛擬化技術實現,各用戶之間需要做到數據共享與隔離。各用戶之間應支持依照訪問權限只能訪問到各自數據,不能訪問到其他用戶所述數據。同時要考慮到用戶刪除后其所屬歷史數據的保護等。
2 系統設計
2.1 總體架構設計
云數據庫平臺整體采用B/S架構,總體功能架構抽象為:業務展示層、業務邏輯層、虛擬化層以及物理層以及標準規范與管理體系和信息安全防護體系幾部分,最終用戶通過PC、移動端使用,整體結構如圖1所示。(1)業務展示層:業務展示層主要作用是從使用用戶的角度將云數據庫的經常使用的用戶管理、虛擬機管理、鏡像管理、實例管理、物理機管理以及監控報警等操作進行封裝后展示給用戶使用,這樣將屏蔽業務展示層以下的業務邏輯技術細節,提高系統的易用性,提高系統整體性、可擴展性和邏輯性。(2)業務邏輯層:業務邏輯層主要是通過J2EE,消息中間件ActiveMQ等技術工具實現虛擬機、鏡像文件、數據庫實例管理、監控及自動化部署封裝技術細節,從功能實現的角度出發對業務展示層每個功能具體實現后通過業務展示層提供用戶使用。(3)虛擬化層:使用OpenStack技術實現CPU、內存、硬盤、網絡等物理設備虛擬,將計算、存儲、網絡等物理資源轉化為邏輯資源,為業務邏輯層提供基礎支撐。(4)物理層:主要由支撐系統所需的硬件設備構成,主要包括計算資源、存儲資源、網絡資源以及安全資源等等物理資源組成。這些設備組成基礎物理資源為系統提供基礎設備支撐。(5)標準規范與管理體系:平臺良好運營需要管理規范和技術標準體系進行保障,平臺管理規范涉及到對基礎設施的維護、對數據的管理、對應用系統開發的監管、對運維體系的管理、對應用系統效果的評價等方面;而技術標準體系包括了基礎設施、數據和應用的標準規范。(6)信息安全防護體系:平臺的信息安全防護體系為業務展示層、業務邏輯層、虛擬化層、物理層及數據庫資源、數據庫服務等提供全方位的安全防護,包括漏洞掃描、主機防御、租戶隔離、認證與審計、數據安全等模塊,體系整體涵蓋東西向、南北向的全方位防護,滿足國家有關云安全標準的要求。
2.2 功能模塊設計
根據需求分析和系統架構設計,云數據庫平臺的主要模塊包括:用戶管理、數據庫實例管理、虛擬機管理、物理機管理、鏡像管理以及云數據庫的監控報警,功能結構如圖2所示。
2.3 安全架構設計
云數據庫安全架構主要包括云數據庫的基本安全和云環境安全兩部分。整體架構如圖3所示。
(1)租戶安全:云環境中各數據庫租戶應做到網絡隔離,租戶在私有云中購買數據庫服務資源以及在上面部署的應用系統則安全責任的主體是租戶自身,云數據系統提供必要的安全技術和安全服務,主要包括:租戶身份認證、租戶隔離、云應用交付等[7]。(2)應用安全:應用安全即通過使用安全工具和增加安全策略等方式,避免應用程序或工具在使用過程中產生的數據泄露,從而消除安全隱患。主要包括:基于流量的旁路審計、防火墻、抗DOS攻擊、訪問安全以及應用業務監控等手段。(3)數據安全:通過使用數據庫加固、防泄漏、數據備份及密鑰管理等多種技術和管理措施保障系統數據,確保數據可用、完整和保密。(4)虛擬化安全:云數據庫系統基于云計算技術實現,因此一定要做好系統虛擬化層面安全措施,主要包括:虛擬機監視器強制訪問控制、云數據庫宿主機加固、虛擬機可信、資源隔離等。(5)系統安全:云數據庫系統安全包括虛擬主機加固、病毒防護(殺毒)等技術手段。(6)物理安全:云數據庫物理支撐的安全措施。包括:機房監控、可信計算及服務監控等。
2.4 自動化部署設計
云數據庫的部署可以使用靜態和動態部署兩種方式。具有相應權限的用戶將所應用的軟件和工具部署在虛擬機上,然后制作虛擬機鏡像模板并上傳至系統,用戶基于系統的鏡像模板調整優化云數據庫節點后使用。此種部署方式優點是用戶無需了解更多的技術細節,更加方便部署并節省時間,缺點是后期所有的調整都要基于鏡像文件進行,需要重新制作并上傳鏡像文件,這樣軟件升級、變更比較麻煩。動態部署即管理員只上傳云數據庫宿主虛擬機的操作系統鏡像文件,管理員根據需求編寫軟件部署腳本完成部署安裝,當軟件升級或變更的時候修改配置文件或腳本及可完成升級或變更操作,相對靜態部署解決了,升級、變更難的問題,但是動態部署過程中由于部分軟件安裝時間較長,所以用戶等待的時間較長,用戶體驗較差。
本文綜合靜態和動態兩種部署方式的優點,充分了解常用云數據庫節點技術需求,選擇常用的云數據庫軟件及部署環境制作鏡像文件(如表1所示),做到常用云數據庫節點鏡像模板的精細化管理,通過Ansible實現云數據庫節點自動化部署,提高工作效率,減少失誤。
3 系統測試
3.1 測試環境
計算設備:CPU 14核,2.0GHz;內存512GB頻率2666MT/s;硬盤 3塊*1.2TB SAS; 2塊雙端口16G HBA卡,4個千兆網口,4個萬兆光口。操作系統:CentOS 7;
部署模式:ALL in One模式;壓力測試工具:sysbench 1.0.17。
3.2 測試結果
(1)功能測試。表2所示:
(2)性能測試。使用云數據庫平臺創建一個MySQL節點,版本MySQL 8.0.23,操作系統:Centos 7內存:16GB,數據存儲空間:100GB。使用sysbench進行壓力測試,執行模式oltp-test-mode選擇complex測試內容包含對數據庫的插入、刪除、修改、查詢并使用事務,并發連接數threads設置為100,執行時間設置為120s,生成報告的時間間隔report-interval設置為5s。測試過程共進行了15次反復測試,并選擇每秒執行事務數量(TPS,單位:次/秒)作為衡量數據庫性能的指標,結果如圖4所示。
從測試結果可以總結出,單次測試云數據庫中每秒執行事務數量在8000次至12000次之間,性能正常,能夠滿足用戶需求。
4 結語
本文在充分分析了目前國內大部分企事業單位對于云數據庫使用需求的基礎上,將云計算和數據庫技術相結合,使用OpenStack、Ansible等開源技術設計了一款私有云數據庫系統和與之對應的安全機構。同時綜合考慮靜態和動態部署的優缺點,梳理了常用云數據庫節點技術需求,建立常用云數據庫節點鏡像模板庫后對其進行精細化管理,在一定程度上提高部署效率。最后搭建了測試環境對云數據系統進行測試,經測試此款云數據庫功能正常,性能良好,能夠滿足用戶需求。
參考文獻
[1] 李慧.云計算技術現狀與發展趨勢分析[J].科技經濟導刊,2019(29):30.
[2] 梅雅鑫.阿里云面向5G,云數據庫勢在必行[J].通信世界,2019(19):31.
[3] 青欣,胥光輝,戢瑤,等.云數據庫應用研究[J].計算機技術與發展,2013,23(5):37-41+46.
[4] 龐大崴,符浩,郭奎良.企業私有云分級存儲架構設計[J].信息與電腦(理論版),2018(9):5-7.
[5] 馬靜.虛擬化技術的發展與分類[J].電子技術與軟件工程,
2016(19):14.
[6] 萬宏鳳.基于Openstack的云端自動化部署機制研究與實現[D].鄭州:鄭州大學,2016.
[7] 徐浩.云數據庫數據安全保護技術研究[J].計算機產品與流通,2020(6):127.