999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Docker的Open Stack云平臺卷存儲模塊的設計

2015-05-11 05:40:12吳哲夫鄔新東WuZhefuWuXindongZhangTong
互聯網天地 2015年11期
關鍵詞:服務

吳哲夫,鄔新東,張 彤/Wu Zhefu,Wu Xindong,Zhang Tong

(浙江工業大學信息工程學院 杭州310023)

1 引言

近年來,隨著科技的快速發展,尤其是網絡技術的發展,云計算逐漸從概念變為現實。目前有4種主流的開源云平臺管理軟件[1]:OpenStack[2]、OpenNebula[3]、Eucalyptus[4]和 CloudStack[5]。 其 中 ,OpenStack憑借松耦合的系統架構、免費的商業模式及活躍的社區贏得了眾多廠商的大力支持。在Havana版本中,OpenStack提供了對Docker[6]的支持。通過使用Nova-Docker項目,將OpenStack中用于構建虛擬機的Nova-Compute組件中的Hypervisor替換為Docker,以提供更輕量級、更高效的服務。但是Docker構建的容器并不支持OpenStack中的Cinder組件,基于此,本文設計了一個卷存儲模塊vol-manager,增加本地文件系統和Docker容器的映射功能,使本地卷存儲能夠直接掛載到容器中,以實現持久性存儲。

2 基于Docker的OpenStack云平臺的構建

2.1 OpenStack云平臺整體部署架構

OpenStack采用模塊化設計,松耦合的系統框架能集成老、舊、第三方的技術,從而滿足業務需要,也使得開發者能夠更容易地對OpenStack進行二次開發[7]。本文所要構建的云平臺只需要使用以下幾個組件。

認證服務:Keystone。Keystone為整個云平臺提供統一的、完整的身份認證、服務目錄、令牌、訪問策略服務。

鏡像服務:Glance。Glance為虛擬磁盤鏡像提供目錄和資源庫,并保存鏡像文件的元數據。

計算服務:Nova。Nova是整個OpenStack中最核心的組件,提供按需創建虛擬機的服務。

網絡管理服務:Neutron。Neutron為Nova創建的各個虛擬機實例提供網絡功能。

可視化組件:Horizon。Horizon為 OpenStack中的實例、服務提供圖形化的界面。

其他組件:如Cinder、Swift等并不需要部署,詳細信息可參見官方文檔[8]。

具體的架構如圖1所示。

2.2 Nova-Docker項目的部署

OpenStack云平臺的默認虛擬化方案是KVM。在OpenStack Havana版本中,Nova-Docker作為插件被引入,以提供更輕量級的服務。之后為了加快整個項目的迭代開發,又將Nova-Docker作為孵化項目移出。在github上,適用于OpenStack Juno版本的Nova-Docker[9]已經相對成熟,可以提供較穩定的服務。Nova-Docker的架構如圖2所示。

在整個云平臺中,Docker作為一種新的Hypervisor,將取代默認的KVM。Docker創建的容器實例就是輕量級的虛擬機實例。Docker鏡像通過Docker Save保存成TAR包,放置在Glance上管理。創建容器時,從Glance上下載容器鏡像,利用Docker Load加載并啟動容器鏡像。

3 OpenStack構建虛擬機的流程

vol-manager模塊依托于虛擬機實例的創建,掌握OpenStack構建虛擬機的整個流程對于模塊的編寫具有重要意義。在2.1節所介紹的組件中,Nova主要負責這一部分,它也是整個OpenStack中最核心的組件。從根本上來說,OpenStack中的其他組件都是為Nova服務。Nova由眾多子服務組成,在構建虛擬機實例過程中,比較重要的是以下3個服務,見表1。創建虛擬機請求的處理流程如圖3所示。

表1 Nova相關子服務

4 vol-manager模塊的設計

4.1 整體架構設計

由于Docker并不支持Cinder共享存儲,因此,Nova-Docker源代碼中并沒有在創建虛擬機的函數中增加存儲功能。vol-manager的核心思想是通過配置文件中定義的相關參數,選擇是否開啟該模塊,并在本地文件系統中創建目錄,將該目錄映射到Docker容器中,整體的架構如圖4所示。

在spawn函數中,讀取nova.conf配置文件中相關選項,判斷是否開啟卷模塊,配置文件設置格式說明在4.2節。當確定模塊開啟時,調用_start_storage_container函數;當確定模塊未開啟時,調用_start_container函數。核心函數_start_storage_container的設計方案在4.3節。最后調用Docker本身的start方法創建容器實例。

4.2 配置文件的設定

由于OpenStack的配置文件采用分節的形式,本方案將vol-manager模塊的配置單獨作為一節添加到nova.conf中。

[vol-manager]

volume=true

container_dir=/data

local_dir=/mnt/docker_volume

volume選項決定是否開啟卷服務:true為開啟,false為關閉。local_dir為本地文件系統中卷目錄地址,container_dir為映射到容器中的地址。

4.3 模塊核心函數的設計

整個模塊的核心函數為_start_storage_container函數,圖5為該函數的設計流程。

函數首先要獲取container_id,在編寫代碼過程中發現,在最新版本的Nova-Docker中,container_id可以作為一個參數直接傳遞給函數;在低版本的Nova-Docker中,需要調用_find_container_by_name函數來獲取container_id。之后通過調用OpenStack的oslo.config庫來讀取nova.conf配置文件,來得到container_dir和local_dir,創建不存在的目錄,并將兩個參數綁定。傳遞給Docker類的start函數,等到容器創建完成,再為容器創建網絡,并將網絡附加到容器上。

在編寫整個函數的過程中,要將相關步驟輸出到日志中,這樣有利于程序的編寫及后期的調試。同時,需要對異常進行捕獲,增強程序的頑健性。

以下為該核心函數中的關鍵源代碼。

LOG.warning('_container_id__:%s'%container_id)

local_dir=self.get_localdir()

local_dir+=container_id.get('id','rand')

self.create_local_dir()

docker_dir=self.get_container_dir()

dir_param={local_dir:docker_dir}

self.docker.start(container_id,binds=dir_param)

if notnetwork_info:

return

try:

self.plug_vifs(instance,network_info)

self._attach_vifs(instance,network_info)

except Exception as e:

LOG.warning(('Cannot setup network:%s'),e,instance=instance,exc_info=True)

msg=_('Cannot setup network:{0}')

self.docker.kill(container_id)

self.docker.remove_container(container_id,force=True)

5 模塊測試效果

由于OpenStack的版本更新速度較快,且每個版本之間可能會有較大的差異,因此,模塊的設計在不同版本中可能會有所不同。本文所構建的云平臺基于OpenStack Juno版本,具體主機配置見表2。

表2 主機配置

構建Ubunutu實例,分配浮動IP,如圖6所示,其中的test4實例就是這次需要測試的實例。

進行功能性驗證,具體的驗證步驟如圖7所示,圖7為正向驗證步驟,還可以反向驗證,即在宿主機中創建文件,在test4實例中驗證該文件是否存在。

實驗結果表明:vol-manager模塊能夠有效解決容器實例中部分數據的持久性存儲問題。同時,在容器與宿主機之間構建了通道,在宿主機上修改文件,能夠實時映射到容器中。利用這種特性,將容器中部分軟件的配置目錄放在/data中,那么,在宿主機上就可以直接修改其中的文件,來改變容器中相關服務的特性。

以在test4實例中構建HTTP服務為例,說明vol-manager模塊的作用。整個過程如圖8所示。

在test4中,HTTP服務將/data目錄作為網站的根目錄。由于vol-manager模塊將/data與宿主機中的local_dir關聯在一起,因此,在宿主機的目錄中建立網頁文件,通過HTTP服務能夠實時地訪問。vol-manager模塊不僅使容器中有關數據可以持久性存儲,還為改變容器中某些服務屬性提供了途徑。

6 結束語

本文設計的vol-manager模塊通過增加配置文件選項、修改驅動源代碼實現了本地文件系統到Docker容器的映射,使容器中的數據能夠保存到本地文件系統中。由于Nova-Docker項目正處于開發階段,OpenStack對于Docker的支持并不完善,例如,不支持容器的遷移,這些都是未來的研究方向。

[1] 楊紹光,張云勇,陳清金等.基于OpenStack的云計算IaaS管理平臺研究[J].互聯網天地,2013,(3).

[2]SEFRAOUI O,AISSAOU M,ELEULDJ M.OpenStack:toward an open-source solution for cloud computing[J].International Journal of Computer Applications,2012,55(3):38-42.

[3]MILOJICIC D,LLORENTE I M,MONTERO R S.Opennebula:a cloud management tool[J].IEEE Internet Computing,2011,(2):11-14.

[4]NURMID,WOLSKIR,GRZEGORCZYK C,et al.The eucalyptus open-sourcecloud-computingsystem[A].9th IEEE,ACM International Symposium on Cluster Computing and the Grid[C].2009.

[5]KUMARR,JAINK,MAHARWALH,etal.Apache CloudStack:open source infrastructure as a service cloud computing platform[A].International Journal of Advancement in Engineering Technology,Management and Applied Science[C].2014.

[6]FINK J.Docker:a software as a service,operating system-level virtualization framework[J].Code4Lib Journal,2014,(25).

[7] 李小寧,李磊,金連文等.基于Open Stack構建私有云計算平臺[J].電信科學,2012,28(9):1-8.

[8]OpenStack document[EB/OL].http://docs.openstack.org,2015.

[9]Nova-Docker[EB/OL].https://github.com/stackforge/nova-docker/tree/stable/juno,2015.

猜你喜歡
服務
自助取卡服務
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年11期)2019-08-13 00:49:08
服務在身邊 健康每一天
今日農業(2019年13期)2019-08-12 07:59:04
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
高等教育為誰服務:演變與啟示
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 97se亚洲| 亚洲日本中文字幕天堂网| 亚洲电影天堂在线国语对白| 国产精品va| 午夜限制老子影院888| 色婷婷色丁香| 在线不卡免费视频| 中文字幕在线永久在线视频2020| 91小视频在线观看免费版高清| 91麻豆精品国产91久久久久| 精品1区2区3区| 国产精品蜜臀| 福利姬国产精品一区在线| 久久婷婷五月综合色一区二区| 亚洲欧洲日产国码无码av喷潮| 美美女高清毛片视频免费观看| 伊人网址在线| 国产资源免费观看| 亚洲一区第一页| 国产黑丝视频在线观看| 久久久久九九精品影院| 国产91av在线| 国产人成在线观看| 国产超碰在线观看| 国产二级毛片| 久久久噜噜噜久久中文字幕色伊伊 | 婷婷六月色| 国产自在线拍| 亚洲国产精品无码AV| 亚洲欧美在线看片AI| 999精品在线视频| 国产白浆视频| 在线日韩日本国产亚洲| 精品欧美日韩国产日漫一区不卡| 九九这里只有精品视频| 爆乳熟妇一区二区三区| 日韩欧美综合在线制服| 国产精品天干天干在线观看| 精品一區二區久久久久久久網站| 亚洲欧美日韩另类在线一| 99热这里只有精品在线播放| 国产精品综合久久久| 亚洲一区免费看| 亚洲第一极品精品无码| 日韩无码黄色| 欧美色综合网站| 午夜影院a级片| www.亚洲色图.com| 国产va欧美va在线观看| 婷婷伊人久久| 亚洲第一黄色网| 欧美啪啪网| 蜜臀AV在线播放| 夜夜拍夜夜爽| 2021国产精品自产拍在线| 成人午夜视频网站| 亚洲欧美国产五月天综合| 国产69囗曝护士吞精在线视频| 青草视频免费在线观看| 第一区免费在线观看| 日韩最新中文字幕| 免费国产黄线在线观看| 日韩国产一区二区三区无码| 国产后式a一视频| 91伊人国产| 日韩一二三区视频精品| 亚洲一区网站| 久久综合成人| 国产97区一区二区三区无码| 97超碰精品成人国产| 国产视频一二三区| 国产精品hd在线播放| 成人免费视频一区二区三区| 亚洲男人天堂2018| 在线观看热码亚洲av每日更新| 国产在线小视频| 国产乱子伦视频在线播放| 亚洲色图狠狠干| 国产精品黑色丝袜的老师| 国产乱子伦视频在线播放| 国产成人高清精品免费软件 | 欧美一区中文字幕|