亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的方法及系統(tǒng)與流程

文檔序號:12597431閱讀:459來源:國知局
一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的方法及系統(tǒng)與流程
本發(fā)明涉及云計(jì)算領(lǐng)域,具體來說,涉及一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的方法及系統(tǒng)。
背景技術(shù)
:公有云的云平臺服務(wù)提供商一般都提供關(guān)系型數(shù)據(jù)庫服務(wù)(英文全稱RelationalDatabaseService,簡稱RDS),使用其RDS的用戶希望數(shù)據(jù)庫服務(wù)能快速啟動(dòng)、配置以便快速對外提供服務(wù)。RDS需要在啟動(dòng)后進(jìn)行公有云IP配置、網(wǎng)絡(luò)管理、路由管理并掛載特定的服務(wù)和存儲(chǔ)資源,并進(jìn)行高可用(英文全稱HighAvailable,簡稱HA)配置后才能提供對外服務(wù)。由于公有云的用戶可能來自互聯(lián)網(wǎng)的各處,客戶請求的RDS服務(wù)壓力無法預(yù)估且波動(dòng)性很大。如果系統(tǒng)預(yù)先啟動(dòng)一大批RDS虛擬機(jī)待命,無疑會(huì)造成很大的資源浪費(fèi)。而接到用戶的請求后再啟動(dòng)虛擬機(jī)則啟動(dòng)速度慢,消耗資源多,用戶體驗(yàn)差。因此在云計(jì)算環(huán)境中存在快速啟動(dòng)RDS的需求。Docker是2014年6月發(fā)布的一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。它的性能開銷比起虛擬機(jī)來很小, 因此可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行,并且不依賴于任何語言、框架或包括系統(tǒng)。基于Docker方式啟動(dòng)RDS實(shí)例,比起現(xiàn)有的虛擬機(jī)啟動(dòng)方式,它具有啟動(dòng)速度快,消耗資源少的特點(diǎn)。但是Docker也有缺點(diǎn),它的網(wǎng)絡(luò)功能還不是很強(qiáng)大,缺乏公有云環(huán)境中發(fā)布高可用數(shù)據(jù)庫服務(wù)所必需的網(wǎng)絡(luò)管理、路由管理和IP管理,因此限制了它在公有云環(huán)境的使用。技術(shù)實(shí)現(xiàn)要素:技術(shù)問題:本發(fā)明實(shí)施例所要解決的技術(shù)問題是:利用Docker技術(shù)快速啟動(dòng)高可用數(shù)據(jù)庫,且實(shí)現(xiàn)網(wǎng)絡(luò)、路由和ip管理,彌補(bǔ)了Docker現(xiàn)有功能的不足。為解決上述技術(shù)問題,一方面,本發(fā)明實(shí)施例提供一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的方法,該方法包括:S10容器管理模塊接收用戶創(chuàng)建RDS實(shí)例信息,并創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò);S20容器管理模塊根據(jù)私有網(wǎng)絡(luò),在容器主機(jī)中創(chuàng)建網(wǎng)橋、邏輯卷和容器,掛載邏輯卷到容器,并根據(jù)網(wǎng)橋分配容器的IP地址;其中邏輯卷包括RDS實(shí)例配置數(shù)據(jù)文件;S30容器管理模塊向RDS服務(wù)器發(fā)送報(bào)文,該報(bào)文用于RDS服務(wù)器初始化容器,完成RDS啟動(dòng)。作為一種優(yōu)選例,所述的S10中,RDS實(shí)例信息至少包括內(nèi)存、存儲(chǔ)空間、cpu和網(wǎng)絡(luò)路由信息。作為一種優(yōu)選例,所述的S10中,創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò)具體包括:容器管理模塊根據(jù)網(wǎng)絡(luò)路由信息,到資源池中獲取分配的數(shù)據(jù)虛擬路由子網(wǎng)和控制虛擬路由子網(wǎng)。作為一種優(yōu)選例,所述的S20中,創(chuàng)建網(wǎng)橋具體包括:根據(jù)私有網(wǎng)絡(luò),產(chǎn)生對應(yīng)的虛擬局域網(wǎng)段,在虛擬局域網(wǎng)段到對應(yīng)的容器主機(jī)之間創(chuàng)建對應(yīng)網(wǎng)橋。作為一種優(yōu)選例,所述的S20中,創(chuàng)建邏輯卷,進(jìn)一步包括:將RDS實(shí)例配置數(shù)據(jù)文件拷貝到邏輯卷目錄中,邏輯卷腳本掛載的目錄名稱與RDS實(shí)例的id一一對應(yīng);RDS實(shí)例的id為RDS創(chuàng)建時(shí)產(chǎn)生的RDS實(shí)例名稱;邏輯卷腳本大小根據(jù)頁面參數(shù)指定,邏輯卷腳本用于存放RDS的mysql配置數(shù)據(jù)和運(yùn)行產(chǎn)生數(shù)據(jù)信息。作為一種優(yōu)選例,所述的步驟S20中,分配容器IP地址的過程為:根據(jù)容器所處的網(wǎng)橋?qū)?yīng)的虛擬局域網(wǎng)段的子網(wǎng)段地址,對容器進(jìn)行IP地址分配。作為一種優(yōu)選例,所述的步驟S20中,每個(gè)RDS實(shí)例分配6個(gè)IP地址,其中,2個(gè)IP地址綁定到eth0網(wǎng)絡(luò)接口,用于RDS數(shù)據(jù)口,1個(gè)IP地址綁定eth1的網(wǎng)絡(luò)接口,用于控制口,其余3個(gè)IP地址空閑備份,用于RDSHA方案。作為一種優(yōu)選例,所述的容器管理模塊向RDS服務(wù)器發(fā)送報(bào)文具體包括:RDS服務(wù)器接收容器管理模塊發(fā)送的報(bào)文,登錄到容器進(jìn)行初始化操作,啟動(dòng)集群控制操作,并掛載nfs存儲(chǔ)文件系統(tǒng)。另一方面,本發(fā)明實(shí)施例提供一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的系 統(tǒng),包括:容器管理模塊:用于接收用戶創(chuàng)建RDS實(shí)例信息,并創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò);在容器主機(jī)中創(chuàng)建網(wǎng)橋、邏輯卷、容器,并掛載邏輯卷到容器,根據(jù)網(wǎng)橋分配容器的IP地址;發(fā)送報(bào)文;容器服務(wù)端:用于生成容器并存放容器的shell腳本;RDS服務(wù)器:用于RDS實(shí)例與RDS容器通信,負(fù)責(zé)RDS的集群管理;RDS客戶端:用于頁面客戶端訪問RDS容器實(shí)例。作為一種優(yōu)選例,所述的容器管理模塊進(jìn)一步用于:根據(jù)私有網(wǎng)絡(luò),產(chǎn)生對應(yīng)的虛擬局域網(wǎng)段,在虛擬局域網(wǎng)段到對應(yīng)的容器主機(jī)之間創(chuàng)建對應(yīng)網(wǎng)橋。作為一種優(yōu)選例,所述的容器管理模塊進(jìn)一步用于:將RDS實(shí)例配置數(shù)據(jù)文件拷貝到邏輯卷目錄中,邏輯卷腳本掛載的目錄名稱與RDS實(shí)例的id一一對應(yīng);RDS實(shí)例的id為RDS創(chuàng)建時(shí)產(chǎn)生的RDS實(shí)例名稱;邏輯卷腳本大小根據(jù)頁面參數(shù)指定,邏輯卷腳本用于存放RDS的mysql配置數(shù)據(jù)和運(yùn)行產(chǎn)生數(shù)據(jù)信息。有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供了Dockermanager模塊,通過該Dockermanager模塊實(shí)現(xiàn)了公有云環(huán)境中發(fā)布高可用數(shù)據(jù)庫服務(wù)所必需的網(wǎng)絡(luò)管理、路由管理和IP管理功能,使得Docker技術(shù)能夠應(yīng)用于公有云環(huán)境中。同時(shí),與現(xiàn)有的虛擬機(jī)啟動(dòng)方式相比,Docker啟動(dòng)具有啟動(dòng)速度快,消耗資源少的優(yōu)點(diǎn)。附圖說明圖1是本發(fā)明實(shí)施例的一種流程框圖;圖2是本發(fā)明實(shí)施例的一種系統(tǒng)時(shí)序圖;圖3是本發(fā)明實(shí)施例的一種結(jié)構(gòu)框圖;圖4是本發(fā)明實(shí)施例的一種系統(tǒng)架構(gòu)圖;圖5是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)靜態(tài)部署圖。具體實(shí)施方式為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例的技術(shù)方案,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。如圖1所示,本發(fā)明實(shí)施例提供一種公有云上啟動(dòng)數(shù)據(jù)庫服務(wù)的方法,該方法包括:S10容器管理模塊接收用戶創(chuàng)建RDS(對應(yīng)中文:關(guān)系型數(shù)據(jù)庫服務(wù),對應(yīng)英文:RelationalDatabaseService,文中簡稱:RDS)實(shí)例信息,并創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò);S20容器管理模塊根據(jù)私有網(wǎng)絡(luò),在容器主機(jī)中創(chuàng)建網(wǎng)橋、邏輯卷和容器,掛載邏輯卷到容器,并根據(jù)網(wǎng)橋分配容器的IP地址;其中邏輯卷包括RDS實(shí)例配置數(shù)據(jù)文件;S30容器管理模塊向RDS服務(wù)器發(fā)送報(bào)文,該報(bào)文用于RDS服務(wù)器初始化容器,完成RDS啟動(dòng)。上述方法中,S10在公有云平臺創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò),S20在容器主機(jī)中創(chuàng)建網(wǎng)橋、邏輯卷和容器,掛載邏輯卷到容器,并根據(jù)網(wǎng)橋 分配容器的IP地址。這樣,該方法實(shí)現(xiàn)了Docker(對應(yīng)中文:應(yīng)用容器引擎)技術(shù)在公有云環(huán)境中網(wǎng)絡(luò)管理、路由管理和IP管理功能,使得Docker技術(shù)可以應(yīng)用在公有云環(huán)境中,達(dá)到快速啟動(dòng)高可用數(shù)據(jù)庫的目的。上述實(shí)施例中,不包括必要的錯(cuò)誤處理和非正常流程。作為一種優(yōu)選方案,在S10中,用戶在界面上輸入創(chuàng)建公有云RDS產(chǎn)品信息。該產(chǎn)品信息至少包括創(chuàng)建公有云RDS的內(nèi)存、存儲(chǔ)空間、cpu和網(wǎng)絡(luò)路由信息。當(dāng)用戶輸入上述產(chǎn)品信息后,需要?jiǎng)?chuàng)建私有網(wǎng)絡(luò)。作為一種優(yōu)選方案,在S10中,Dockermanager(對應(yīng)中文為容器管理)模塊根據(jù)產(chǎn)品信息中的網(wǎng)絡(luò)路由信息,到資源池中獲取分配的數(shù)據(jù)虛擬路由子網(wǎng)和控制虛擬路由子網(wǎng),從而在公有云平臺創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò),并產(chǎn)生對應(yīng)的虛擬局域網(wǎng)段。該虛擬局域網(wǎng)段到對應(yīng)的docker主機(jī)之間創(chuàng)建對應(yīng)網(wǎng)橋。通過此步驟,可以實(shí)現(xiàn)網(wǎng)絡(luò)管理功能。作為一種優(yōu)選方案,所述的S20中,創(chuàng)建邏輯卷,進(jìn)一步包括:將RDS實(shí)例配置數(shù)據(jù)文件拷貝到邏輯卷目錄中,邏輯卷腳本掛載的目錄名稱與RDS實(shí)例的id一一對應(yīng);RDS實(shí)例的id為RDS創(chuàng)建時(shí)產(chǎn)生的RDS實(shí)例名稱,邏輯卷腳本大小根據(jù)頁面參數(shù)指定,用于存放RDS的mysql配置數(shù)據(jù)和運(yùn)行產(chǎn)生數(shù)據(jù)信息。該邏輯卷是可擴(kuò)容的邏輯卷。Dockermanager模塊向兩臺或多臺Docker主機(jī)發(fā)起api(對應(yīng)中文:應(yīng)用程序編程接口,對應(yīng)英文:ApplicationProgrammingInterface,文中簡稱:api);請求。請求包括:創(chuàng)建容器,綁定邏輯卷,啟動(dòng)RDS容器實(shí)例功能,并修改RDS的文件主屬性為mysql(一 種關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng))用戶。啟動(dòng)RDS容器實(shí)例包括啟動(dòng)2個(gè)RDS實(shí)例,分別為一個(gè)RDSmaster和一個(gè)RDSslave。作為一種優(yōu)選方案,所述的S20中,分配容器IP地址的過程為:根據(jù)容器所處的網(wǎng)橋?qū)?yīng)的虛擬局域網(wǎng)段的子網(wǎng)段地址,對容器進(jìn)行IP地址分配。調(diào)用Docker主機(jī)中的已經(jīng)開發(fā)好的ip添加腳本,用于綁定ip到RDS實(shí)例。每個(gè)RDS實(shí)例分配6個(gè)ip,其中,2個(gè)ip綁定到eth0網(wǎng)絡(luò)接口,用于RDS數(shù)據(jù)口,1個(gè)ip綁定eth1的網(wǎng)絡(luò)接口,用于控制口,其余3個(gè)ip空閑備份,用于RDSHA方案。由此,Dockermanager模塊實(shí)現(xiàn)了IP管理功能。作為一種優(yōu)選方案,所述的S30中,所述的容器管理模塊向RDS服務(wù)器發(fā)送報(bào)文具體包括:RDS服務(wù)器接收容器管理模塊發(fā)送的報(bào)文,登錄到容器進(jìn)行初始化操作,啟動(dòng)集群控制操作,并掛載nfs存儲(chǔ)文件系統(tǒng)。該報(bào)文用于RDS服務(wù)器初始化容器,完成RDS啟動(dòng)。本實(shí)施例方法中,公有云平臺接收用戶創(chuàng)建RDS實(shí)例的請求,創(chuàng)建用戶對應(yīng)的私有網(wǎng)絡(luò);公有云平臺中的容器管理模塊(Dockermanager模塊)根據(jù)私有網(wǎng)絡(luò)的虛擬路由(虛擬路由文中簡稱vlan)段在容器主機(jī)上建立對應(yīng)網(wǎng)橋,以及網(wǎng)橋與RDS實(shí)例UID的對應(yīng)關(guān)系;Dockermanager模塊執(zhí)行邏輯卷腳本,邏輯卷腳本掛載的目錄名稱與RDS實(shí)例UID一一對應(yīng);向容器主機(jī)請求創(chuàng)建容器并綁定邏輯卷;Docker啟動(dòng)RDS實(shí)例。如圖2所示,為上述實(shí)施例的一具體實(shí)施方案。該方案中高可用數(shù)據(jù)庫,以mysql數(shù)據(jù)庫為例。對于本領(lǐng)域的技術(shù)人員應(yīng)該能理解,本發(fā)明并不只限定于mysql數(shù)據(jù)庫。方法如下:步驟1:用戶按要求填寫參數(shù),向DockerManager模塊申請RDS實(shí)例。步驟2:DockerManager模塊根據(jù)網(wǎng)絡(luò)路由信息到CloudStack資源池獲取分配的數(shù)據(jù)vlan子網(wǎng)和控制vlan子網(wǎng)。步驟3:CloudStack資源池將獲取信息發(fā)送給Dockermanager模塊。步驟4:Dockermanager模塊獲取vlan后,到Docker主機(jī)1創(chuàng)建vlan網(wǎng)絡(luò),并生成對應(yīng)的網(wǎng)橋,網(wǎng)橋名與vlan一致,br1對應(yīng)數(shù)據(jù)口的網(wǎng)橋,br2對應(yīng)控制口的網(wǎng)橋。步驟5:Docker主機(jī)1返回成功。步驟6:Dockermanager模塊獲取vlan后,到Docker主機(jī)2創(chuàng)建vlan網(wǎng)絡(luò),并生成對應(yīng)的網(wǎng)橋,網(wǎng)橋名與vlan一致,br1對應(yīng)數(shù)據(jù)口的網(wǎng)橋,br2對應(yīng)控制口的網(wǎng)橋。步驟7:Docker主機(jī)2返回成功。步驟8:Dockermanager模塊在Docker1主機(jī)上,初始化mysqldata邏輯卷并將RDS配置數(shù)據(jù)文件拷貝到邏輯卷目錄中。Dockermanager模塊遠(yuǎn)端執(zhí)行Docker1主機(jī)shell命令,創(chuàng)建mysql數(shù)據(jù)邏輯卷,初始化mysql基本配置目錄用于RDS后期配置信息和部分?jǐn)?shù)據(jù)存儲(chǔ)。步驟9:Docker1主機(jī)返回成功響應(yīng)給Dockermanager模塊。步驟10:Dockermanager在Docker2主機(jī)上,初始化mysqldata邏輯卷并將RDS配置數(shù)據(jù)文件拷貝到邏輯卷目錄中。Dockermanager遠(yuǎn)端執(zhí)行Docker2主機(jī)shell命令,創(chuàng)建mysql數(shù)據(jù)邏輯卷,初始化mysql基本配置目錄用于RDS后期配置信息和部分?jǐn)?shù)據(jù)存儲(chǔ)。步驟11:Docker2主機(jī)返回成功響應(yīng)給Dockermanager。步驟12:Dockermanager模塊調(diào)用Docker1主機(jī)api創(chuàng)建容器,掛載邏輯卷到容器,啟動(dòng)RDS容器實(shí)例功能,并修改RDS的文件主屬性為mysql用戶,啟動(dòng)一個(gè)容器,并作為master。步驟13:Docker1主機(jī)返回調(diào)用api成功響應(yīng)。步驟14:Dockermanager模塊調(diào)用Docker2主機(jī)api創(chuàng)建容器,掛載邏輯卷到容器,啟動(dòng)RDS容器實(shí)例功能,并修改RDS的文件主屬性為mysql用戶,啟動(dòng)一個(gè)容器,作為slave。步驟15:Docker2主機(jī)返回調(diào)用api成功響應(yīng)。步驟16:Dockermanager模塊通過獲取的網(wǎng)絡(luò)資源,根據(jù)上述介紹的網(wǎng)絡(luò)分配方案分配ip到Docker1,2個(gè)ip作為數(shù)據(jù)口綁定到網(wǎng)卡1,1個(gè)ip作為控制口綁定到網(wǎng)卡2。步驟17:Docker1向Dockermanager模塊返回腳本執(zhí)行成功響應(yīng)。步驟18:Dockermanager模塊通過獲取的網(wǎng)絡(luò)資源,根據(jù)上述介紹的網(wǎng)絡(luò)分配方案分配ip到Docker2,2個(gè)ip作為數(shù)據(jù)口綁定到網(wǎng)卡1,1個(gè)ip作為控制口綁定到網(wǎng)卡2。步驟19:Docker2向Dockermanager模塊返回腳本執(zhí)行成功響應(yīng)。步驟20:Dockermanager模塊與Docker主機(jī)間操作完成后,發(fā)送報(bào)文到RDS服務(wù)器。步驟21:RDS服務(wù)器獲取報(bào)文后,登錄到master和slave容器進(jìn)行初始化操作,啟動(dòng)集群控制操作,掛載nfs存儲(chǔ)文件系統(tǒng),用于定期存儲(chǔ)RDS備份。步驟22:RDSserver返回給Dockermanager模塊集群是否成功完成報(bào)文。步驟23:上述操作都完成后,Dockermanager模塊返回給用戶創(chuàng)建成功。如圖3所示,本實(shí)施例為一種基于在公有云上利用Docker啟動(dòng)數(shù)據(jù)庫服務(wù)的系統(tǒng),包括:容器管理模塊:用于接收用戶創(chuàng)建RDS實(shí)例信息,并創(chuàng)建對應(yīng)的私有網(wǎng)絡(luò);在容器主機(jī)中創(chuàng)建網(wǎng)橋、邏輯卷、容器,并掛載邏輯卷到容器,根據(jù)網(wǎng)橋分配容器的IP地址;發(fā)送報(bào)文;容器服務(wù)端:用于生成容器并存放容器的shell腳本;RDS服務(wù)器:用于RDS實(shí)例與RDS容器通信,負(fù)責(zé)RDS的集群管理;RDS客戶端:用于頁面客戶端訪問RDS容器實(shí)例。上述系統(tǒng)中,所述的容器管理模塊進(jìn)一步用于:根據(jù)私有網(wǎng)絡(luò),產(chǎn)生對應(yīng)的虛擬局域網(wǎng)段,在虛擬局域網(wǎng)段到對應(yīng)的容器主機(jī)之間創(chuàng)建對應(yīng)網(wǎng)橋。容器管理模塊還進(jìn)一步用于:將RDS實(shí)例配置數(shù)據(jù)文件拷貝到邏輯卷目錄中,邏輯卷腳本掛載的目錄名稱與RDS實(shí)例的id一 一對應(yīng);RDS實(shí)例的id為RDS創(chuàng)建時(shí)產(chǎn)生的RDS實(shí)例名稱;邏輯卷腳本大小根據(jù)頁面參數(shù)指定,邏輯卷腳本用于存放RDS的mysql配置數(shù)據(jù)和運(yùn)行產(chǎn)生數(shù)據(jù)信息。上述系統(tǒng)中,由RDS服務(wù)器,Docker服務(wù)端和Dockermanager模塊打通組成一個(gè)cs私有網(wǎng)絡(luò)。該cs私有網(wǎng)絡(luò)是通過虛擬路由組成,每個(gè)用戶對應(yīng)一個(gè)或者多個(gè)虛擬路由,每個(gè)虛擬路由對應(yīng)一個(gè)vlan,此vlan作為與外部的app端通信。另外,所有RDS容器都由一個(gè)控制口vlan來進(jìn)行控制,此網(wǎng)絡(luò)vlan主要是與RDSserver連通,用于RDSserver與各個(gè)容器通信。由此,實(shí)現(xiàn)了Dockermanager模塊的路由管理功能。DockerServer端以及Client端,用于生成Docker容器并存放對應(yīng)Docker的shell腳本。圖4所示為一種系統(tǒng)架構(gòu)圖。在圖4中,DockerServer1和DockerServer2是兩個(gè)獨(dú)立的物理服務(wù)器。DockerServer1用于存放RDS實(shí)例的主機(jī)(master)。DockerServer2用于存放RDS實(shí)例的從機(jī)(slave)。2個(gè)RDS實(shí)例一個(gè)是RDSmaster,另一個(gè)是RDSslave。以圖4為例,啟動(dòng)了8個(gè)RDS實(shí)例,4個(gè)主機(jī)(masterC1到masterC4)位于DockerServer1,4個(gè)從機(jī)(slaveC1到slaveC4)位于DockerServer2。網(wǎng)橋bridge主要是在交換機(jī)間通過vlan透傳,將Docker主機(jī)間的網(wǎng)絡(luò)打通,然后容器之間的網(wǎng)絡(luò)可以通過網(wǎng)橋進(jìn)行通信。monitor主要是通過開源監(jiān)控軟件對cgroup的信息進(jìn)行采集監(jiān)控,比如cpu,memory,io等。如圖4所示,網(wǎng)絡(luò)連通關(guān)系為:Dockermanager《--》Docker server《--》RDSServer。DockerServer是Dockerdaemon的守護(hù)進(jìn)程,主要是用于Docker管理。通過Dockermanager模塊實(shí)現(xiàn)網(wǎng)絡(luò)路由管理和ip管理,彌補(bǔ)Docker現(xiàn)有功能的不足。Dockermanager模塊的網(wǎng)絡(luò)管理功能,將ip資源進(jìn)行獨(dú)立管理,并由公有云自動(dòng)完成私有網(wǎng)絡(luò)搭建并給出對應(yīng)的vlan段,在啟動(dòng)容器前在每臺Docker主機(jī)上面進(jìn)行網(wǎng)橋搭建,同時(shí)根據(jù)當(dāng)前RDSHA方案,通過修改Docker網(wǎng)絡(luò)命名空間方式對Docker容器ip進(jìn)行分配。Docker中啟動(dòng)數(shù)據(jù)庫后,其ip的管理,是由Dockermanager模塊進(jìn)行管理。每分配一個(gè)vlan,根據(jù)vlan網(wǎng)絡(luò)建立完成、容器啟動(dòng)后,將從vlan的每個(gè)分配的子網(wǎng)2-253網(wǎng)段進(jìn)行ip輪詢分配。這些被分配的ip都會(huì)被記錄起來,并與對應(yīng)的RDS實(shí)例UID進(jìn)行綁定記錄。每次分配ip前,要找到一個(gè)可用ip。本實(shí)施例中提供的Dockermanager模塊,解決了Docker在公有云環(huán)境中啟動(dòng)高可用數(shù)據(jù)庫的適用問題。具體來說,Dockermanager模塊解決了以下幾個(gè)問題:(1)網(wǎng)絡(luò)問題:系統(tǒng)中將ip資源進(jìn)行獨(dú)立管理,并由公有云自動(dòng)完成私有網(wǎng)絡(luò)搭建并給出對應(yīng)的vlan段,并在啟動(dòng)容器前在每臺Docker主機(jī)上面進(jìn)行網(wǎng)橋搭建,并根據(jù)當(dāng)前RDSHA方案,將通過修改Docker網(wǎng)絡(luò)命名空間方式對Docker容器ip進(jìn)行分配。具體流程包括(a)和(b):(a)當(dāng)用戶創(chuàng)建RDS實(shí)例時(shí),根據(jù)其提交的網(wǎng)絡(luò)信息比如路由名稱, 在公有云端后臺建立私有網(wǎng)絡(luò),然后通過得到vlan信息在對應(yīng)的Docker主機(jī)上建立網(wǎng)絡(luò)連接,一個(gè)vlan對應(yīng)一個(gè)網(wǎng)橋。(b)將2個(gè)ip綁定到容器eth0接口作為數(shù)據(jù)口,將1個(gè)ip綁定容器eth1接口作為控制口,并再準(zhǔn)備3個(gè)ip作為HA備份使用。(2)網(wǎng)絡(luò)分配算法問題:Docker中啟動(dòng)數(shù)據(jù)庫后,其ip的管理,是由Dockermanager模塊進(jìn)行管理。每分配一個(gè)vlan,根據(jù)vlan網(wǎng)絡(luò)建立完成、容器啟動(dòng)后,將從vlan的每個(gè)分配的子網(wǎng)2-253網(wǎng)段進(jìn)行ip輪詢分配。這些被分配的ip都會(huì)被記錄起來,并與對應(yīng)的RDS實(shí)例UID進(jìn)行綁定記錄。每次分配ip前,先會(huì)查詢待分配的ip是否已經(jīng)被占用。如果被占用就會(huì)加1,再判斷,直到找到一個(gè)可用ip。(3)網(wǎng)絡(luò)靜態(tài)部署分配問題:如圖5示意,私有網(wǎng)絡(luò)(PrivateNetwork)對每個(gè)RDS實(shí)例分配6個(gè)ip,其中,2個(gè)ip綁定到eth0網(wǎng)絡(luò)接口,用于RDS數(shù)據(jù)口;1個(gè)ip綁定eth1的網(wǎng)絡(luò)接口,用于控制口;其余3個(gè)ip(圖中未示出)空閑備份,用于RDSHA方案。例如,RDS的Master實(shí)例eth0會(huì)分配192.168.1.2,192.168.1.3,eth1分配192.168.253.2,當(dāng)某臺集群宕機(jī)以后,RDSHA機(jī)制會(huì)幫助把這些master的eth0口的ip漂移到選取的slaveeth0口上面作為新的master。RDS的Slave實(shí)例eth0會(huì)分配192.168.1.4,192.168.1.5,eth1分配192.168.253.3。該RDS的Master和Slave實(shí)例對,構(gòu)成HA方案,互為備份。同樣,另一個(gè)RDS的Master實(shí)例eth0會(huì)分配192.168.1.6,192.168.1.7,eth1分配192.168.253.4。圖中該Master 實(shí)例對應(yīng)的Slave實(shí)例從略。4)存儲(chǔ)擴(kuò)容問題:采用devicemapper存儲(chǔ)技術(shù),通過開發(fā)對應(yīng)的擴(kuò)容腳本進(jìn)行對應(yīng)的存儲(chǔ)擴(kuò)容。5)資源擴(kuò)容問題:主要是針對cgroup參數(shù)進(jìn)行修改,進(jìn)行資源限制以及擴(kuò)容。和現(xiàn)有基于KVM虛擬機(jī)啟動(dòng)RDS的方法相比,本發(fā)明實(shí)施例很好的解決了公有云RDS啟動(dòng)慢的特點(diǎn),并通過自動(dòng)化管理實(shí)現(xiàn)了網(wǎng)絡(luò)IP和路由功能的配置,彌補(bǔ)了現(xiàn)有Docker功能的不足,并可節(jié)約很多資源消耗。本發(fā)明實(shí)施例可大大提高啟動(dòng)和配置RDS的性能。原有虛擬機(jī)方式RDS啟動(dòng)成功大概需要4-5分鐘的時(shí)間,而采用本發(fā)明實(shí)施例的方法和系統(tǒng),在相同硬件環(huán)境下,只要1分鐘左右即可完成RDS創(chuàng)建,啟動(dòng)時(shí)間提高3倍以上。下表是性能測試的對比結(jié)果。RDS(基于KVM方式)RDS(基于Docker方式)啟動(dòng)時(shí)間4-5分鐘1分鐘本發(fā)明實(shí)施例在公用云環(huán)境,基于開源軟件Docker,通過用戶交互的管理平臺,快速啟動(dòng)和配置高可用數(shù)據(jù)庫服務(wù)器實(shí)例。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明。對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化,例如將軟件部分固化在硬件中,或者使用除mysql以外的其它關(guān)系數(shù)據(jù)庫等。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1