一、天河二號概況
在世界超算Top500排名中取得四連冠的天河二號已經于2014年初部署在國家超算廣州中心并對外提供服務。與已有超級計算機系統的一個重要區別是,天河二號不僅僅定位在高性能計算,而是通過異構多態的體系結構設計與實現,期望能夠為廣州市、廣東省甚至更大范圍的政府部門和企事業單位的信息化建設和大數據處理提供強有力的資源支撐。
天河二號的目標定位
目前,天河二號的目標定位為:滿足高性能計算、高吞吐率信息服務和海量數據處理等多領域復雜應用需求,具體信息如上圖所示。
與此同時,天河二號及輔助設施的整體投資是24個億,是屬于異構多態體系結構,系統有著近20000個節點:雙路12核E5-2600系列處理器,64GB內存、定制的內部高速互聯(224 Gbps)、2個GE、總存儲容量12.4 PB。
由于業務需求差異,以往的面向HPC的軟件棧已經不能滿足多種應用的需要,所以我們采用了云的方式來支持新的業務,將廣州超算中心打造成支撐智慧城市建設的公共基礎設施,服務于電子政務建設、企業資源租賃、海量信息處理等信息化建設發展的多個方面。這是與傳統科學計算完全不同的應用模式,主要的挑戰如下:
業務多樣:網站、信息管理系統、渲染、備份…
軟件平臺多樣:Linux/Windows、Oracle/MySQL/SQL Server、Apache/Nigix、Tomcat/Weblogic…
資源規模彈性伸縮:重大事件/重要時間節點的突發訪問
可靠性、可用性與安全性要求高
二、天河二號上OpenStack的部署及優化
我們支持的云業務,首先是黨政機關,提供私有云部署、云安全解決方案、應用遷移、培訓支持,提高辦公效率和降低能耗;其次是中小企業,提供資源租賃,私有云部署、混合云部署、安全增強,使用戶關注自身核心業務;最后是其他行業用戶,提供私有云部署、混合云部署、應用遷移、培訓支持,支撐用戶業務創新。
我們目前用于支撐業務的環境主要基于OpenStack的IceHouse和Juno兩個版本,后面會逐漸遷移到Juno版。需要注意的是,我們不是簡單的把原生的OpenStack拿過來部署,而是根據應用的需求以及實際的硬件環境,對OpenStack進行了大量的定制和優化,這些工作最終形成了我們的企業級解決方案KylinCloud云平臺。
天河二號對OpenStack的主要增強
主要的增強優化包括:重新定義了一套使用流程,全新改寫UI,擴展細粒度配額管理,支持端口轉發。因為有上萬臺機器及IP是擴展的,所以做了相應的映射。在調度方面,支持QoS保障以及擴展了多種調度策略。另外增加了計費功能,優化監測性能。
天河二號OpenStack集群網絡布局
我們規模確實比較大,所以選擇了這樣的網絡布局:50個機柜、6400個節點,兩個柜的控制節點設置在同一個WLAN,以Cell為調度單位,管理網絡/業務網絡分離和基于以太網(部分子云基于TH-NI)。在虛擬主機方面:提供基于KVM的全虛擬化、基于LXC/Docker的輕量級虛擬化。虛擬網絡是基于OpenvSwitch,支持多種虛擬網絡類型。我們也采用了分布式高性能全局塊存儲,基于Ceph構建,所有節點形成一個全局的分布式存儲池,基于TH-NI高速網,用作虛擬鏡像、邏輯卷和運行實例的統一存儲后端,裸容量6.4PB;IP-SAN存儲:裸容量1PB,萬兆接入云平臺,用于集中的文件存儲或備份;FC-SAN存儲:裸容量500TB,用于高I/O負載應用支持。
另外,在平臺參數方面我們是這樣優化的,主要是調整數據庫、消息隊列的參數閾值;KVM參數優化:VHostNet、KSM;物理機OS的虛存優化:swappiness;Nova、Neutron等關鍵服務的參數優化;開啟服務的多進程;Ceph OSD進程優化。
負載均衡和高可用優化
為了實現服務的負載均衡和高可用,主要做了這些部署與優化:控制服務采用LVS+Keeplived,MySQL集群,RabbitMQ集群,組件之間的數據庫、消息隊列的分離,單獨的Neutron集群及L3-Agent高可用,單獨的Cinder-Volume集群。在實現虛擬機高可用方面,以16個物理節點為單位構建高可用區域,通過監控物理節點和虛擬機的狀態,在狀態發生異常時及時啟動新的虛擬機支撐應用的運行,也定制了靈活的觸發策略。
軟件動態加載
另外我們是基于boot from volume和rbd clone做的軟件加載,方便用戶快速的使用需要的應用軟件,不必在啟動虛擬機后再安裝,我們提供了可加載的應用軟件列表,以及用戶啟動VM時,勾選需要加載的應用軟件,啟動虛擬機后即可使用軟件。比如你在上圖基礎上怎么做相應不同的軟件支持,如果每個軟件都要做一個Image,相對來說開銷比較大,我們就做一個Image的動態拼合加載,做一個干凈的Base Image,再加上一個增盤,當用戶在需要MySQL的時候,就加上一個增量Image,想用Oracle時加載另一個增量Image。
在開發的時候就在想,如果想要做成一個平臺或者對外提供服務的平臺的話,運維方面的工作不可少,那就需要一個大規模自動化的運維工具,實現對狀態的預見,對故障有一個收集和判斷。目前來說,我們的工具主要能夠實現虛擬網絡的帶寬控制,云平臺及支撐組建的健康狀態監測,基于日志分析的故障定位于分析,物理機與虛擬機的監控與告警,安全補丁與漏洞,Ceph的RBD離線恢復工具,特性功能Backport與小版本更新。
三、應用適配
電子政務類應用
主要目標是,基于天河二號主機系統的硬件資源,與廣州市電子政務中心及相關企事業合作,為各類電子政務應用提供彈性計算、存儲和網絡資源以及安全、可靠的服務平臺。首先就是電子政務類應用,目前廣東省省級教育數據中心已上線四個信息管理系統,今年年內上線14個系統,不久的未來,將成為廣州市電子政務的主要運載平臺。
在我們實施時需要做到:遷移已有多種系統和平臺軟件:Redhat/CentOS、Oracle/WebLogic等其他第三方公司開發的軟件,已有VMWare平臺上部署系統的遷移,數據的批量導入,物理/邏輯隔離,服務的穩定性、持續性,應對突發訪問,與其他服務提供商之間的容災備份。我們采取了這些措施與優化:P2V、V2V鏡像轉換,負載感知的虛擬機規模自動伸縮;此外,我們才采用了基于Ceph RBD卷的虛擬機和虛擬卷備份,做到每天一次增備,每周一次全備,同時完善虛擬機高可用機制,保證業務持續性。
渲染類應用
面向各文化科技公司和工作室的業務需求,基于天河二號為動漫渲染的復雜場景和特效提供強大的計算能力支撐,構建動漫渲染云,完成高質量的渲染任務和高分辨率的真實感渲染,縮短場景的渲染周期,提高動漫作品的制作效率。目前,某文化科技集團已進入其生產線,數量超過千節點規模,同時另外一個面向互聯網的渲染云平臺也開始提供互聯網服務。
這就使得單個虛擬機性能要求高;針對渲染任務集群的網絡優化,提供高帶寬、低延遲的網絡傳輸;渲染開始、結束時有大量的文件讀寫操作,需要對磁盤IO進行優化;滿足渲染中數據存取頻繁的要求;彈性的資源擴充機制,滿足不同渲染任務對計算能力的不同需求;廣泛的平臺支持,支持多種渲染平臺和軟件。所以,我們限制渲染集群的規模,減輕共享讀寫帶來的IO瓶頸;使用KSM,降低內存消耗;物理機超線(HT);根據實際效果調整內存超售比例;調整物理機的open file limit;在渲染過程中有大量的(小)文件讀寫;優化虛擬機的網絡參數,提高帶寬等。
對HPC類應用的支持
將云計算的優勢引入到傳統的高性能計算領域,使用目前成熟的容器技術為用戶提供可定制、隔離性強、可彈性伸縮、界面友好的HPC集群。目前,諸多HPC應用的CPU性能折損在1%以內。同時也支持了CPU/MIC異構并行,達到萬級計算核心。
為了做到這些,就要求:接近物理機的性能,充分利用天河節點的加速部件和高速網,拉通HPC軟件棧,實現全系統資源統一管理,更好的資源共享與隔離,可定制的軟件環境,滿足彈性的資源使用需求,在一定配額下用戶自助申請資源。所以,我們使用基于Docker的輕量級虛擬化:基于現有HPC環境制作鏡像,整合HPC軟件棧;虛擬機直接模式訪問MIC加速器和TH-NI高速網;虛擬機直接訪問主機掛載的Lustre共享存儲。另外就是全系統計算資源的混合調度:根據任務屬性判斷Host,以及計算節點角色的按需切換。
至于為什么我會想用Docker,從操作系統角度上看,說白了它只是虛擬化的進程空間,性能折損低。具體而言,我是用了Docker的Container功能,因為較底層的LXC相比,它具有一定的高層管理工具,把OpenStack和Container做了一個綁定,將數據庫和消息隊列本身的連接數和使用內存數放大,以及網絡和KVM開關都打開。
四、社區貢獻
在以上部署實踐的基礎上,天河二號的云平臺研發團隊深入到OpenStack源代碼內部,圍繞遇到的問題和需求開發了一系列新特性和大量的Bug修復,并積極反饋給社區。2012年以來團隊向社區貢獻了大量代碼,并在最新的Juno核心組件的代碼貢獻(commit數目)位居國內第二位。關于Ceph我們也做了一些工作,向Ceph社區提交100+commits,在最新的v0.93版本中,團隊代碼貢獻排名第2,個人排名第4。
五、基于OpenStack打造高效安全的企業云服務平臺
圍繞著充分發揮天河二號的性能優勢、為中小企業提供安全、高可用、彈性的高品質服務這一目標,團隊基于OpenStack進行了一系列深入的產品化定制與改造,形成了獨立的云服務解決方案KylinCloud─麒麟云平臺。麒麟云平臺采用互聯網自助服務的模式,面向企事業單位提供IaaS和PaaS層的IT服務,希望成為小微企業的IT服務的承載平臺,并基于此構建完善的IT服務生態環境。
KylinCloud云平臺架構
目前,麒麟云平臺已經穩定運行在天河二號上,在用戶單位的配合與支持下,多個成功應用已經驗證了其基于天河二號提供云服務的可用性、可靠性和可擴展性,為超級計算機系統的應用開拓了一條嶄新的途徑。
同時,研發團隊也在努力構建面向商用硬件的完整解決方案,面向不同用戶、不同應用的需求,提供深度定制、安全、可靠的云服務。此外,麒麟云平臺正在與國內著名安全系統解決方案提供商合作,對麒麟云平臺的系統安全、平臺安全和虛擬機安全進行全方位的定制與增強。(責編/周建丁)
作者簡介:譚郁松,博士,國防科學技術大學計算機學院/國家超級計算廣州中心研究員,天河系列超級計算機的骨干研究人員,一直從事操作系統和云計算等領域的研究工作,目前帶領團隊從事超大規模云平臺和大數據處理平臺的研發。