史寶鵬 段 迅 孔廣黔 吳 云
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴州 貴陽(yáng) 550025)
醫(yī)療云平臺(tái)的部署設(shè)計(jì)與實(shí)現(xiàn)
史寶鵬 段 迅*孔廣黔 吳 云
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴州 貴陽(yáng) 550025)
目前我國(guó)醫(yī)療信息化已進(jìn)入瓶頸期,據(jù)調(diào)查我國(guó)80%的醫(yī)療機(jī)構(gòu)采用購(gòu)買(mǎi)或自主研發(fā)的醫(yī)療信息化系統(tǒng)。由于醫(yī)療機(jī)構(gòu)業(yè)務(wù)繁雜,因此醫(yī)療機(jī)構(gòu)的信息管理系統(tǒng)種類(lèi)繁多、異構(gòu)性強(qiáng),不僅建設(shè)和維護(hù)強(qiáng)度大,而且各醫(yī)療機(jī)構(gòu)間存在著相似系統(tǒng)的重復(fù)開(kāi)發(fā),存儲(chǔ)大量冗余數(shù)據(jù),占用了大量的IT資源。為了提高醫(yī)療機(jī)構(gòu)中的IT資源利用率,該研究將云計(jì)算可快速提供彈性資源的思想應(yīng)用到醫(yī)療信息化建設(shè)中,旨在基于OpenStack開(kāi)源云平臺(tái)設(shè)計(jì)一套醫(yī)療開(kāi)發(fā)平臺(tái),將醫(yī)療機(jī)構(gòu)中信息管理系統(tǒng)和IT資源(主機(jī)、路由器、交換機(jī)、硬盤(pán)、IP地址等)完整地搬到云端,以軟件的方式實(shí)現(xiàn),以服務(wù)的方式提供給用戶(hù)。 最后該研究在云平臺(tái)上部署患者一卡通服務(wù)系統(tǒng)、醫(yī)生工作站系統(tǒng)和數(shù)據(jù)分析系統(tǒng)作為云平臺(tái)搭建測(cè)試。
OpenStack 醫(yī)療 云平臺(tái)
云計(jì)算是當(dāng)下一種熱門(mén)的服務(wù)模式,它通過(guò)互聯(lián)網(wǎng)訪(fǎng)問(wèn)應(yīng)用和服務(wù),并快速提供彈性可擴(kuò)展的計(jì)算資源,從而提高物理硬件資源利用率。隨著醫(yī)療機(jī)構(gòu)日益增長(zhǎng)的用戶(hù)需求,云計(jì)算技術(shù)應(yīng)用能夠有效地解決現(xiàn)代醫(yī)療信息化所面臨的問(wèn)題。
1.1 醫(yī)療信息化及云計(jì)算的發(fā)展
我國(guó)醫(yī)療信息化經(jīng)過(guò)幾十年的發(fā)展,大致分為以下幾個(gè)階段:?jiǎn)螜C(jī)單用戶(hù)系統(tǒng)應(yīng)用階段、部門(mén)級(jí)系統(tǒng)應(yīng)用階段、院級(jí)系統(tǒng)應(yīng)用階段和區(qū)域醫(yī)療探索階段[1]。據(jù)調(diào)查,目前我國(guó)80%以上的醫(yī)療機(jī)構(gòu)正處在院級(jí)系統(tǒng)應(yīng)用階段,即醫(yī)療機(jī)構(gòu)購(gòu)買(mǎi)或自主研發(fā)的醫(yī)療信息系統(tǒng)。
20世紀(jì)60年代,麥卡錫提出了把計(jì)算能力作為像水和電一樣的公用事業(yè)提供給用戶(hù)的理念,這成為云計(jì)算的思想起源[2];20世紀(jì)80年代,Sun提出“網(wǎng)絡(luò)即電腦”,是云計(jì)算的雛形[3];2006年3月,亞馬遜推出了彈性計(jì)算云EC2,按照用戶(hù)使用資源量進(jìn)行收費(fèi),開(kāi)啟了云計(jì)算商業(yè)化的新紀(jì)元[4]。
1.2 醫(yī)療云平臺(tái)部署的意義
目前,我國(guó)各級(jí)醫(yī)療機(jī)構(gòu)信息系統(tǒng)種類(lèi)繁多、業(yè)務(wù)復(fù)雜,傳統(tǒng)的醫(yī)療信息系統(tǒng)已經(jīng)嚴(yán)重阻礙了我國(guó)醫(yī)療信息化建設(shè),與此同時(shí),各級(jí)醫(yī)療機(jī)構(gòu)也都儲(chǔ)存著大量的患者數(shù)據(jù),造成嚴(yán)重的數(shù)據(jù)冗余及計(jì)算機(jī)資源的浪費(fèi)。在分布式計(jì)算、并行計(jì)算、網(wǎng)絡(luò)存儲(chǔ)和虛擬化技術(shù)不斷成熟的今天,建設(shè)一個(gè)可快速擴(kuò)展、收縮的醫(yī)療云平臺(tái)有助于醫(yī)療機(jī)信息化的集成,將傳統(tǒng)的HIS系統(tǒng)、LIS系統(tǒng)、PACS系統(tǒng)統(tǒng)一規(guī)劃建設(shè),將操作系統(tǒng)與應(yīng)用軟件結(jié)合制作成自有映像,用戶(hù)可根據(jù)映像快速啟動(dòng)新的虛擬主機(jī),這樣可以有效地避免醫(yī)療信息系統(tǒng)的重復(fù)建設(shè)與開(kāi)發(fā)。將醫(yī)療機(jī)構(gòu)中的計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源等IT資源整合形成資源池,使用醫(yī)療云平臺(tái)進(jìn)行彈性管理及分配,使得計(jì)算機(jī)資源能夠合理的使用,節(jié)省醫(yī)療機(jī)構(gòu)的開(kāi)銷(xiāo)。醫(yī)療云平臺(tái)可滿(mǎn)足各個(gè)醫(yī)療機(jī)構(gòu)的差異需求,實(shí)現(xiàn)醫(yī)療資源、信息服務(wù)的共享,提高我國(guó)醫(yī)療服務(wù)水平。
1.3 目前醫(yī)療云平臺(tái)建設(shè)中面臨的問(wèn)題
目前醫(yī)療云平臺(tái)的建設(shè)面臨如下幾個(gè)問(wèn)題:1) 安全問(wèn)題是所有新興技術(shù)所共同面臨的問(wèn)題,由于云端數(shù)據(jù)是用戶(hù)共享的資源,而患者病歷屬于隱私信息,因此需要考慮為每個(gè)用戶(hù)授權(quán)的問(wèn)題。2) 除了權(quán)限,數(shù)據(jù)的可安全性、可靠性也是醫(yī)療云平臺(tái)建設(shè)面臨的另一個(gè)大問(wèn)題,因?yàn)橐坏?shù)據(jù)丟失,將會(huì)給醫(yī)療機(jī)構(gòu)和患者帶來(lái)難以彌補(bǔ)的損失。3) 醫(yī)療云平臺(tái)能否不間斷地為各醫(yī)療機(jī)構(gòu)提供服務(wù)、響應(yīng)用戶(hù)請(qǐng)求是衡量醫(yī)療云平臺(tái)的重要指標(biāo),也是各醫(yī)療機(jī)構(gòu)的關(guān)注所在。
2.1 云平臺(tái)及操作系統(tǒng)的選取
本研究對(duì)OpenStack、OpenNebula、Eucalyptus和CloudStack四款當(dāng)下較為流行的開(kāi)源云平臺(tái)的社區(qū)活躍程度及云平臺(tái)的特征進(jìn)行了比較。
討論主題數(shù)以及得到的回復(fù)數(shù)越多,在一定程度上表明該軟件越受使用者和廠(chǎng)家的歡迎。一個(gè)論壇如果沒(méi)有討論帖或回復(fù)較少,說(shuō)明這個(gè)軟件的使用者較少。在一定意義上,“討論帖子數(shù)/討論主題數(shù)”反映了一個(gè)社區(qū)及軟件的受歡迎程度。本研究基于此,對(duì)OpenStack、OpenNebula、Eucalyptus和CloudStack四個(gè)項(xiàng)目的社區(qū)活躍度進(jìn)行比較分析。對(duì)2009年至2015年之間的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),結(jié)果顯示如圖1所示。
圖1 各項(xiàng)目社區(qū)活躍度比較圖
從圖1可以明顯看出OpenStack相關(guān)的討論表現(xiàn)出強(qiáng)烈的(接近線(xiàn)性)增長(zhǎng);CloudStack項(xiàng)目相關(guān)的討論正快速下降;OpenNebula、Eucalyptus的討論量仍然很小,且表現(xiàn)出明顯的下降趨勢(shì)。
CloudStack界面友好,安裝部署簡(jiǎn)易,但是耦合度較高、不易定制;Eucalyptus界面較為簡(jiǎn)易,但提供了豐富的命令行,安裝部署較為簡(jiǎn)易;OpenStack各個(gè)組件耦合度底,二次開(kāi)發(fā)較為容易,部署靈活,兼容性很好,安全性較高,存儲(chǔ)的集群可以通過(guò)添加服務(wù)器完成橫向擴(kuò)展,較為簡(jiǎn)易。綜合考慮本研究選用OpenStack進(jìn)行實(shí)驗(yàn)。
由于Ubuntu不但永久免費(fèi),而且有長(zhǎng)期技術(shù)支持的LTS版。除此之外許多云運(yùn)營(yíng)商對(duì)Ubuntu也是青睞有加,這使得Ubuntu對(duì)OpenStack的支持比較好。因此本研究采用Ubuntu操作系統(tǒng)。
2.2 實(shí)驗(yàn)環(huán)境
由于沒(méi)有足夠的物理機(jī),因此本實(shí)驗(yàn)采用Vmware Workstation 10版作為虛擬化平臺(tái),模擬相應(yīng)的物理網(wǎng)絡(luò)和物理服務(wù)器,虛擬機(jī)操作系統(tǒng)采用的是Ubuntu 14.04版本,OpenStack軟件采用的是Kilo版本,連接虛擬的軟件采用的是Xshell5;除了軟件外還需要一臺(tái)支持虛擬化、4核CPU、8 GB內(nèi)存和500 GB硬盤(pán)的物理機(jī)。
在Vmware中創(chuàng)建5臺(tái)虛擬機(jī),分別命名為controller、network、compute、cinder和swift。其中controller具有一塊網(wǎng)卡eth0,ip地址為10.20.0.10;network具有三塊網(wǎng)卡eth0、eth1和eth2,ip地址分別為10.20.0.20、172.16.0.10、192.168.4.20;compute具有兩塊網(wǎng)卡eth0、eth1,ip地址分別為10.20.0.30、192.168.4.30;cinder具有兩塊網(wǎng)卡eth0、eth1,ip地址分別為10.20.0.40、192.168.4.40;swift具有兩塊網(wǎng)卡eth0、eth1,ip地址分別為10.20.0.50、192.168.4.50。
除此之外分別在5臺(tái)虛擬機(jī)作如下操作:安裝OpenStack源并更新所有RPM包;修改hosts文件;禁用selinux;安裝NTP服務(wù)并進(jìn)行時(shí)間同步;安裝OpenStack-utils工具,方便通過(guò)命令行方式修改配置文件;清空防火墻規(guī)則。
3.1 醫(yī)療云平臺(tái)的部署
醫(yī)療云平臺(tái)的部署架構(gòu)見(jiàn)圖2所示。
圖2 醫(yī)療云平臺(tái)的部署架構(gòu)
3.2 功能分析
本平臺(tái)可為以醫(yī)療應(yīng)用和研究為向?qū)У尼t(yī)療機(jī)構(gòu)提供服務(wù)的云平臺(tái),具有低成本、高資源利用率的特點(diǎn)。本平臺(tái)不僅具有豐富的服務(wù)和功能,還面向用戶(hù)、管理員和開(kāi)發(fā)人員等多種角色,與云計(jì)算的需求具有良好的對(duì)應(yīng)。本平臺(tái)主要分為如下幾個(gè)邏輯單元:
1) 控制服務(wù)邏輯單元
考慮到快速、不間斷地響應(yīng)各醫(yī)療機(jī)構(gòu)的請(qǐng)求、為各醫(yī)療機(jī)構(gòu)提供服務(wù),醫(yī)療云平臺(tái)需避免單點(diǎn)故障。為每個(gè)計(jì)算節(jié)點(diǎn)配置備份代價(jià)太大,因此該平臺(tái)僅考慮了控制節(jié)點(diǎn)的單點(diǎn)故障問(wèn)題?;谝陨峡紤]該平臺(tái)部署為主備模式的雙控制節(jié)點(diǎn),使用心跳機(jī)制的方法進(jìn)行備份,通過(guò)故障轉(zhuǎn)移來(lái)實(shí)現(xiàn)高可用性。在云端主控制器上部署全部的控制服務(wù)進(jìn)程,提供用戶(hù)訪(fǎng)問(wèn)的入口和云環(huán)境中其他服務(wù)訪(fǎng)問(wèn)的API服務(wù)。使用Pacemaker和HAProxy來(lái)運(yùn)行多個(gè)服務(wù),使用virtual IP提供負(fù)載均衡的調(diào)度,使用QPID和MYSQL把各種服務(wù)關(guān)聯(lián)起來(lái);在網(wǎng)絡(luò)節(jié)點(diǎn)上部署neutron-dhcp-agent、neutron-13-agent、neutron-LbaaS和neutron-FwaaS等服務(wù),上層則是VLAN網(wǎng)絡(luò),網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)責(zé)內(nèi)、外部虛擬網(wǎng)絡(luò)的創(chuàng)建與維護(hù),并連接虛擬機(jī)到外部網(wǎng)絡(luò),是所有虛擬機(jī)的入口和出口;在API/CLI節(jié)點(diǎn)上部署nova-api、nova-scheduler、glance-api、Keystone和cinder-api等控制服務(wù),API/CLI節(jié)點(diǎn)為云用戶(hù)調(diào)用云API接口提供服務(wù),是管理員進(jìn)行命令操作的節(jié)點(diǎn),常與GUI節(jié)點(diǎn)一起使用;在GUI節(jié)點(diǎn)上部署Dashboard,它為云用戶(hù)和管理員提供一個(gè)Web可視化管理界面;在認(rèn)證節(jié)點(diǎn)上部署Keystone,將醫(yī)療機(jī)構(gòu)的用戶(hù)和權(quán)限認(rèn)證系統(tǒng)與Keystone集成到一起;在調(diào)度節(jié)點(diǎn)上使用OpenStack的所提供的默認(rèn)調(diào)度機(jī)制,nova-scheduler用于選擇合適的節(jié)點(diǎn)來(lái)啟動(dòng)和運(yùn)行主機(jī),cinder-scheduler用于選擇合適的存儲(chǔ)節(jié)點(diǎn)來(lái)申請(qǐng)卷;在鏡像節(jié)點(diǎn)上部署Glance,它提供了鏡像模板的注冊(cè),查找、存儲(chǔ)和檢索功能。
2) 計(jì)算服務(wù)邏輯單元
在計(jì)算節(jié)點(diǎn)上運(yùn)行KVM Hypervisor,部署Nova的nova-computer、Neutron的neutron-agent等服務(wù)。該節(jié)點(diǎn)提供創(chuàng)建、運(yùn)行用戶(hù)虛擬機(jī)的功能,同時(shí)為虛擬機(jī)提供虛擬網(wǎng)絡(luò),可以用本地空間為虛擬機(jī)提供臨時(shí)性存儲(chǔ),但此時(shí)虛擬機(jī)不能遷移或恢復(fù)。
3) 存儲(chǔ)服務(wù)邏輯單元
在存儲(chǔ)節(jié)點(diǎn)上部署Cinder和Swift等服務(wù),安裝存儲(chǔ)的驅(qū)動(dòng)程序,為計(jì)算節(jié)點(diǎn)中的虛擬機(jī)提供卷服務(wù)。將存儲(chǔ)環(huán)境所需的全部數(shù)據(jù)存放到存儲(chǔ)節(jié)點(diǎn)上,包括虛擬機(jī)持久性卷和磁盤(pán)鏡像等。為提高可靠性與可擴(kuò)展性,存儲(chǔ)節(jié)點(diǎn)采用的是GlusterFS系統(tǒng)管理。
4) 物理設(shè)備邏輯單元
在該邏輯單元中部署醫(yī)療機(jī)構(gòu)的物理設(shè)施,主要由物理主機(jī)、存儲(chǔ)服務(wù)器和各種網(wǎng)絡(luò)設(shè)備組成。
在Networks面板中創(chuàng)建三個(gè)網(wǎng)絡(luò),分別命名為net06、net07和net08。在Routers面板中創(chuàng)建三臺(tái)路由器,分別命名為route06、route07和route08。將三臺(tái)路由器一端與外網(wǎng)相連接,另一端分別與net06、net07和net08三個(gè)子網(wǎng)絡(luò)相連接。
在myhospital面板中創(chuàng)建三臺(tái)虛擬機(jī),分別命名為hospital01、hospital02和hospital03,配置全部為雙核CPU、2 GB內(nèi)存、磁盤(pán)容量為30 GB,操作系統(tǒng)模板分別加載自制映像VM01、VM02和VM03,在映像VM01、VM02和VM03中分別部署了患者一卡通服務(wù)系統(tǒng)、醫(yī)生工作站系統(tǒng)和數(shù)據(jù)分析系統(tǒng)作。用戶(hù)可根據(jù)不同權(quán)限、不同需求選擇加載不同映像啟動(dòng)虛擬機(jī),以獲得不同的服務(wù)。再將hospital01、hospital02和hospital03三臺(tái)虛擬機(jī)分別連接到子網(wǎng)net06、net07和net08上。最后為三臺(tái)虛擬機(jī)分配浮動(dòng)IP,以便用戶(hù)訪(fǎng)問(wèn)。操作界面如圖3所示。
圖3 醫(yī)療云虛擬機(jī)管理
基于患者隱私信息的考慮,不允許未經(jīng)授權(quán)的用戶(hù)訪(fǎng)問(wèn)、修改患者信息,該實(shí)驗(yàn)在Keystone中創(chuàng)建租戶(hù)、用戶(hù),將用戶(hù)添加到相應(yīng)租戶(hù)中,設(shè)置用戶(hù)名、密碼。創(chuàng)建角色,然后將角色分配給制定用戶(hù)。圖4為本研究的用戶(hù)-角色-服務(wù)交互圖。
圖4 用戶(hù)-角色-服務(wù)交互圖
本研究中除OpenStack自帶的超級(jí)管理員外還設(shè)有患者、醫(yī)生和行政人員角色,患者可以根據(jù)VM01映像創(chuàng)建虛擬機(jī)進(jìn)行查詢(xún)本人就醫(yī)信息;醫(yī)生可根據(jù)VM01、VM02映像創(chuàng)建虛擬機(jī)進(jìn)行患者信息查詢(xún)和患者就診等工作,也可以根據(jù)需求申請(qǐng)存儲(chǔ)、釋放存儲(chǔ)空間;行政人員可以根據(jù)VM03映像創(chuàng)建虛擬機(jī),進(jìn)入數(shù)據(jù)分析系統(tǒng),對(duì)患者就診信息進(jìn)行分析、預(yù)測(cè)。
本文基于開(kāi)源云平臺(tái)OpenStack設(shè)計(jì)一套醫(yī)療云平臺(tái),本平臺(tái)能夠?yàn)橐葬t(yī)療和研究為導(dǎo)向的醫(yī)療機(jī)構(gòu)部署所需的應(yīng)用和開(kāi)發(fā)環(huán)境,并且能高效地管理云資源,達(dá)到按需分配和彈性計(jì)算的期望。作為以研究為導(dǎo)向的醫(yī)療機(jī)構(gòu)的云平臺(tái)還需考慮實(shí)際環(huán)境的多樣性、資源的利用率,這是以后的研究方向。
[1] 李豐森.云計(jì)算與區(qū)域醫(yī)療信息化建設(shè)[EB/OL].2012-02-20.(2016-03-25).http://www.gsei.com.cn/html/gsjjyxx/gsjjyxx/868_145593.html.
[2] 李英壯.基于OpenStack開(kāi)發(fā)云平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào),2012(S1):58-60.
[3] 鄧倩妮.云計(jì)算及其關(guān)鍵技術(shù)[J].計(jì)算機(jī)應(yīng)用,2009,29(9):2562-2567.
[4] 云計(jì)算.百度百科[EB/OL].[2013-05-24].http//baike.baidu.com/view/1316082.html.
[5] 張子凡.OpenStack部署實(shí)踐[M].北京:人民郵電出版社,2014.
[6] 張小斌.OpenStack企業(yè)云平臺(tái)架構(gòu)與實(shí)踐[M].北京:電子工業(yè)出版社,2015.
[7] 陳伯龍.云計(jì)算與OpenStack[M].北京:電子工業(yè)出版社,2014.
[8] 祁偉.云計(jì)算:從基礎(chǔ)架構(gòu)到最佳實(shí)踐[M].北京:清華大學(xué)出版社,2013.
[9] 馬鳴,童振.云計(jì)算模式區(qū)域醫(yī)療衛(wèi)生信息化平臺(tái)建設(shè)探索[J].醫(yī)學(xué)信息學(xué)雜志,2013,34(1):19-24.
DEPLOYMENT DESIGN AND IMPLEMENTATION OF MEDICAL CLOUD PLATFORM
Shi Baopeng Duan Xun*Kong Guangqian Wu Yun
(CollegeofComputerScienceandTechnology,GuizhouUniversity,Guiyang550025,Guizhou,China)
At present, China’s medical information has entered a bottleneck period. According to the survey, 80% of China’s medical institutions to purchase or self-developed medical information system. Because of the complexity of the medical institutions, the information management system of medical institutions is diverse and heterogeneous, which not only has strong construction and maintenance intensity, but also has a similar system duplication between medical institutions to repeat the development, storage of large amounts of redundant data, take up a lot of IT resources. In order to improve the utilization rate of IT resources in medical institutions, this paper applies the idea of cloud computing providing flexible resources quickly to the construction of medical information. It aims to design a medical development platform based on OpenStack open source cloud platform, which can realize the information management system and IT resources (host, router, switch, hard disk, IP address, etc.) in the medical institution completely to move to the cloud to achieve the way the software to provide services to users. The study installs the patient one-card service system, the doctor workstation system and the data analysis system on the cloud platform as the cloud platform construction test.
OpenStack Medical Cloud platform
2016-07-05。國(guó)家自然科學(xué)基金項(xiàng)目(61370161)。史寶鵬,碩士生,主研領(lǐng)域:云平臺(tái)。段迅(通信作者),副教授??讖V黔,副教授。吳云,副教授。
TP3
A
10.3969/j.issn.1000-386x.2017.06.009