史寶鵬 段 迅 孔廣黔 吳 云
(貴州大學計算機科學與技術學院 貴州 貴陽 550025)
醫療云平臺的部署設計與實現
史寶鵬 段 迅*孔廣黔 吳 云
(貴州大學計算機科學與技術學院 貴州 貴陽 550025)
目前我國醫療信息化已進入瓶頸期,據調查我國80%的醫療機構采用購買或自主研發的醫療信息化系統。由于醫療機構業務繁雜,因此醫療機構的信息管理系統種類繁多、異構性強,不僅建設和維護強度大,而且各醫療機構間存在著相似系統的重復開發,存儲大量冗余數據,占用了大量的IT資源。為了提高醫療機構中的IT資源利用率,該研究將云計算可快速提供彈性資源的思想應用到醫療信息化建設中,旨在基于OpenStack開源云平臺設計一套醫療開發平臺,將醫療機構中信息管理系統和IT資源(主機、路由器、交換機、硬盤、IP地址等)完整地搬到云端,以軟件的方式實現,以服務的方式提供給用戶。 最后該研究在云平臺上部署患者一卡通服務系統、醫生工作站系統和數據分析系統作為云平臺搭建測試。
OpenStack 醫療 云平臺
云計算是當下一種熱門的服務模式,它通過互聯網訪問應用和服務,并快速提供彈性可擴展的計算資源,從而提高物理硬件資源利用率。隨著醫療機構日益增長的用戶需求,云計算技術應用能夠有效地解決現代醫療信息化所面臨的問題。
1.1 醫療信息化及云計算的發展
我國醫療信息化經過幾十年的發展,大致分為以下幾個階段:單機單用戶系統應用階段、部門級系統應用階段、院級系統應用階段和區域醫療探索階段[1]。據調查,目前我國80%以上的醫療機構正處在院級系統應用階段,即醫療機構購買或自主研發的醫療信息系統。
20世紀60年代,麥卡錫提出了把計算能力作為像水和電一樣的公用事業提供給用戶的理念,這成為云計算的思想起源[2];20世紀80年代,Sun提出“網絡即電腦”,是云計算的雛形[3];2006年3月,亞馬遜推出了彈性計算云EC2,按照用戶使用資源量進行收費,開啟了云計算商業化的新紀元[4]。
1.2 醫療云平臺部署的意義
目前,我國各級醫療機構信息系統種類繁多、業務復雜,傳統的醫療信息系統已經嚴重阻礙了我國醫療信息化建設,與此同時,各級醫療機構也都儲存著大量的患者數據,造成嚴重的數據冗余及計算機資源的浪費。在分布式計算、并行計算、網絡存儲和虛擬化技術不斷成熟的今天,建設一個可快速擴展、收縮的醫療云平臺有助于醫療機信息化的集成,將傳統的HIS系統、LIS系統、PACS系統統一規劃建設,將操作系統與應用軟件結合制作成自有映像,用戶可根據映像快速啟動新的虛擬主機,這樣可以有效地避免醫療信息系統的重復建設與開發。將醫療機構中的計算資源、存儲資源、網絡資源等IT資源整合形成資源池,使用醫療云平臺進行彈性管理及分配,使得計算機資源能夠合理的使用,節省醫療機構的開銷。醫療云平臺可滿足各個醫療機構的差異需求,實現醫療資源、信息服務的共享,提高我國醫療服務水平。
1.3 目前醫療云平臺建設中面臨的問題
目前醫療云平臺的建設面臨如下幾個問題:1) 安全問題是所有新興技術所共同面臨的問題,由于云端數據是用戶共享的資源,而患者病歷屬于隱私信息,因此需要考慮為每個用戶授權的問題。2) 除了權限,數據的可安全性、可靠性也是醫療云平臺建設面臨的另一個大問題,因為一旦數據丟失,將會給醫療機構和患者帶來難以彌補的損失。3) 醫療云平臺能否不間斷地為各醫療機構提供服務、響應用戶請求是衡量醫療云平臺的重要指標,也是各醫療機構的關注所在。
2.1 云平臺及操作系統的選取
本研究對OpenStack、OpenNebula、Eucalyptus和CloudStack四款當下較為流行的開源云平臺的社區活躍程度及云平臺的特征進行了比較。
討論主題數以及得到的回復數越多,在一定程度上表明該軟件越受使用者和廠家的歡迎。一個論壇如果沒有討論帖或回復較少,說明這個軟件的使用者較少。在一定意義上,“討論帖子數/討論主題數”反映了一個社區及軟件的受歡迎程度。本研究基于此,對OpenStack、OpenNebula、Eucalyptus和CloudStack四個項目的社區活躍度進行比較分析。對2009年至2015年之間的數據進行統計,結果顯示如圖1所示。

圖1 各項目社區活躍度比較圖
從圖1可以明顯看出OpenStack相關的討論表現出強烈的(接近線性)增長;CloudStack項目相關的討論正快速下降;OpenNebula、Eucalyptus的討論量仍然很小,且表現出明顯的下降趨勢。
CloudStack界面友好,安裝部署簡易,但是耦合度較高、不易定制;Eucalyptus界面較為簡易,但提供了豐富的命令行,安裝部署較為簡易;OpenStack各個組件耦合度底,二次開發較為容易,部署靈活,兼容性很好,安全性較高,存儲的集群可以通過添加服務器完成橫向擴展,較為簡易。綜合考慮本研究選用OpenStack進行實驗。
由于Ubuntu不但永久免費,而且有長期技術支持的LTS版。除此之外許多云運營商對Ubuntu也是青睞有加,這使得Ubuntu對OpenStack的支持比較好。因此本研究采用Ubuntu操作系統。
2.2 實驗環境
由于沒有足夠的物理機,因此本實驗采用Vmware Workstation 10版作為虛擬化平臺,模擬相應的物理網絡和物理服務器,虛擬機操作系統采用的是Ubuntu 14.04版本,OpenStack軟件采用的是Kilo版本,連接虛擬的軟件采用的是Xshell5;除了軟件外還需要一臺支持虛擬化、4核CPU、8 GB內存和500 GB硬盤的物理機。
在Vmware中創建5臺虛擬機,分別命名為controller、network、compute、cinder和swift。其中controller具有一塊網卡eth0,ip地址為10.20.0.10;network具有三塊網卡eth0、eth1和eth2,ip地址分別為10.20.0.20、172.16.0.10、192.168.4.20;compute具有兩塊網卡eth0、eth1,ip地址分別為10.20.0.30、192.168.4.30;cinder具有兩塊網卡eth0、eth1,ip地址分別為10.20.0.40、192.168.4.40;swift具有兩塊網卡eth0、eth1,ip地址分別為10.20.0.50、192.168.4.50。
除此之外分別在5臺虛擬機作如下操作:安裝OpenStack源并更新所有RPM包;修改hosts文件;禁用selinux;安裝NTP服務并進行時間同步;安裝OpenStack-utils工具,方便通過命令行方式修改配置文件;清空防火墻規則。
3.1 醫療云平臺的部署
醫療云平臺的部署架構見圖2所示。

圖2 醫療云平臺的部署架構
3.2 功能分析
本平臺可為以醫療應用和研究為向導的醫療機構提供服務的云平臺,具有低成本、高資源利用率的特點。本平臺不僅具有豐富的服務和功能,還面向用戶、管理員和開發人員等多種角色,與云計算的需求具有良好的對應。本平臺主要分為如下幾個邏輯單元:
1) 控制服務邏輯單元
考慮到快速、不間斷地響應各醫療機構的請求、為各醫療機構提供服務,醫療云平臺需避免單點故障。為每個計算節點配置備份代價太大,因此該平臺僅考慮了控制節點的單點故障問題。基于以上考慮該平臺部署為主備模式的雙控制節點,使用心跳機制的方法進行備份,通過故障轉移來實現高可用性。在云端主控制器上部署全部的控制服務進程,提供用戶訪問的入口和云環境中其他服務訪問的API服務。使用Pacemaker和HAProxy來運行多個服務,使用virtual IP提供負載均衡的調度,使用QPID和MYSQL把各種服務關聯起來;在網絡節點上部署neutron-dhcp-agent、neutron-13-agent、neutron-LbaaS和neutron-FwaaS等服務,上層則是VLAN網絡,網絡節點負責內、外部虛擬網絡的創建與維護,并連接虛擬機到外部網絡,是所有虛擬機的入口和出口;在API/CLI節點上部署nova-api、nova-scheduler、glance-api、Keystone和cinder-api等控制服務,API/CLI節點為云用戶調用云API接口提供服務,是管理員進行命令操作的節點,常與GUI節點一起使用;在GUI節點上部署Dashboard,它為云用戶和管理員提供一個Web可視化管理界面;在認證節點上部署Keystone,將醫療機構的用戶和權限認證系統與Keystone集成到一起;在調度節點上使用OpenStack的所提供的默認調度機制,nova-scheduler用于選擇合適的節點來啟動和運行主機,cinder-scheduler用于選擇合適的存儲節點來申請卷;在鏡像節點上部署Glance,它提供了鏡像模板的注冊,查找、存儲和檢索功能。
2) 計算服務邏輯單元
在計算節點上運行KVM Hypervisor,部署Nova的nova-computer、Neutron的neutron-agent等服務。該節點提供創建、運行用戶虛擬機的功能,同時為虛擬機提供虛擬網絡,可以用本地空間為虛擬機提供臨時性存儲,但此時虛擬機不能遷移或恢復。
3) 存儲服務邏輯單元
在存儲節點上部署Cinder和Swift等服務,安裝存儲的驅動程序,為計算節點中的虛擬機提供卷服務。將存儲環境所需的全部數據存放到存儲節點上,包括虛擬機持久性卷和磁盤鏡像等。為提高可靠性與可擴展性,存儲節點采用的是GlusterFS系統管理。
4) 物理設備邏輯單元
在該邏輯單元中部署醫療機構的物理設施,主要由物理主機、存儲服務器和各種網絡設備組成。
在Networks面板中創建三個網絡,分別命名為net06、net07和net08。在Routers面板中創建三臺路由器,分別命名為route06、route07和route08。將三臺路由器一端與外網相連接,另一端分別與net06、net07和net08三個子網絡相連接。
在myhospital面板中創建三臺虛擬機,分別命名為hospital01、hospital02和hospital03,配置全部為雙核CPU、2 GB內存、磁盤容量為30 GB,操作系統模板分別加載自制映像VM01、VM02和VM03,在映像VM01、VM02和VM03中分別部署了患者一卡通服務系統、醫生工作站系統和數據分析系統作。用戶可根據不同權限、不同需求選擇加載不同映像啟動虛擬機,以獲得不同的服務。再將hospital01、hospital02和hospital03三臺虛擬機分別連接到子網net06、net07和net08上。最后為三臺虛擬機分配浮動IP,以便用戶訪問。操作界面如圖3所示。

圖3 醫療云虛擬機管理
基于患者隱私信息的考慮,不允許未經授權的用戶訪問、修改患者信息,該實驗在Keystone中創建租戶、用戶,將用戶添加到相應租戶中,設置用戶名、密碼。創建角色,然后將角色分配給制定用戶。圖4為本研究的用戶-角色-服務交互圖。

圖4 用戶-角色-服務交互圖
本研究中除OpenStack自帶的超級管理員外還設有患者、醫生和行政人員角色,患者可以根據VM01映像創建虛擬機進行查詢本人就醫信息;醫生可根據VM01、VM02映像創建虛擬機進行患者信息查詢和患者就診等工作,也可以根據需求申請存儲、釋放存儲空間;行政人員可以根據VM03映像創建虛擬機,進入數據分析系統,對患者就診信息進行分析、預測。
本文基于開源云平臺OpenStack設計一套醫療云平臺,本平臺能夠為以醫療和研究為導向的醫療機構部署所需的應用和開發環境,并且能高效地管理云資源,達到按需分配和彈性計算的期望。作為以研究為導向的醫療機構的云平臺還需考慮實際環境的多樣性、資源的利用率,這是以后的研究方向。
[1] 李豐森.云計算與區域醫療信息化建設[EB/OL].2012-02-20.(2016-03-25).http://www.gsei.com.cn/html/gsjjyxx/gsjjyxx/868_145593.html.
[2] 李英壯.基于OpenStack開發云平臺的設計與實現[J].武漢大學學報,2012(S1):58-60.
[3] 鄧倩妮.云計算及其關鍵技術[J].計算機應用,2009,29(9):2562-2567.
[4] 云計算.百度百科[EB/OL].[2013-05-24].http//baike.baidu.com/view/1316082.html.
[5] 張子凡.OpenStack部署實踐[M].北京:人民郵電出版社,2014.
[6] 張小斌.OpenStack企業云平臺架構與實踐[M].北京:電子工業出版社,2015.
[7] 陳伯龍.云計算與OpenStack[M].北京:電子工業出版社,2014.
[8] 祁偉.云計算:從基礎架構到最佳實踐[M].北京:清華大學出版社,2013.
[9] 馬鳴,童振.云計算模式區域醫療衛生信息化平臺建設探索[J].醫學信息學雜志,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。國家自然科學基金項目(61370161)。史寶鵬,碩士生,主研領域:云平臺。段迅(通信作者),副教授。孔廣黔,副教授。吳云,副教授。
TP3
A
10.3969/j.issn.1000-386x.2017.06.009