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