摘 要:容器作為物理資源的邏輯抽象,資源占用少、部署方便,適合工作負載突變的互聯網應用模式,如何解決HPC環(huán)境下的軟件依賴問題,一直是計算系統(tǒng)管理員需要解決的問題。將服務發(fā)現的自動擴展特性與輕量級虛擬化工具Docker集成,在物理集群硬件上構建虛擬集群。通過對計算環(huán)境的隔離,彌補高性能計算環(huán)境對軟件的依賴。通過實驗證明,通過引入容器技術,可以解決高性能計算集群軟件依賴問題。
關鍵詞:高性能計算;容器;自動伸縮;服務發(fā)現
容器技術是一種操作系統(tǒng)層虛擬化技術,與傳統(tǒng)的虛擬機技術不同,容器以進程的形式運行在宿主機操作系統(tǒng)中,具有快速部署、輕便靈活的優(yōu)點,而高性能計算(HPC)是一項成熟的技術,它強調針對數字處理應用程序的并行性能。在HPC環(huán)境和應用程序中采用Docker工具是未來計算密集型應用程序和數據密集型應用程序資源集成的重要解決方案。
在傳統(tǒng)的HPC集群中,我們經常會遇到軟件版本和系統(tǒng)特性的沖突,如操作系統(tǒng)、庫、內核等。為了解決這些問題,在計算資源上安裝并提供了許多版本的軟件或庫。因此,這種方法將增加計算資源的系統(tǒng)/中間件的復雜性,進而損害系統(tǒng)的穩(wěn)定性。系統(tǒng)管理員必須投入大量的精力來處理這種情況,而用戶將面臨復雜的應用程序移植環(huán)境。
為了解決這個問題,我們的工作提出了通過Docker容器構建一個虛擬HPC集群。利用容器技術的隔離特性,可以構造一個獨立于其他集群實例的虛擬HPC集群。還可以根據需要擴展集群的規(guī)模。
一、容器在高性能計算中的應用
(一)HPC高性能能計算
目前,HPC集群通常運行在基于Unix/ linux的操作系統(tǒng)上,通過消息傳遞庫(如消息傳遞接口)和共享內存指令(如用于并行計算作業(yè)的OpenMP)高速互連交換信息。一般來說,計算節(jié)點之間的帶寬是影響并行計算性能的主要因素。通常使用網絡的無限帶寬或10gb級作為互連?;ミB越快,性能就越好。
(二)docker容器
Docker是一個開源項目,它是一個輕量級OS級虛擬化解決方案的實現。Docker采用的核心技術是Linux容器(LXC)和多層文件系統(tǒng)UnionFS(統(tǒng)一文件系統(tǒng))。在LXC時代,IT技術人員使用cgroup、namespace和chroot來提供操作系統(tǒng)級虛擬化。但是,體系結構過于復雜,難以復制或重用。
Docker的目標是解決這個問題。通過封裝,IT技術人員只需要關注容器的管理。Docker引擎將負責剩下的工作。應用程序環(huán)境完成后,可以將系統(tǒng)配置打包到Docker映像中,該映像可以在Docker Hub中發(fā)布和共享。因此,這些工作可以在社區(qū)之間共享,并節(jié)省大量重復的開發(fā)工作。反過來,應用程序的軟件構建和部署可以加快。通過簡單地遵循將軟件和應用程序封裝到服務中并通過容器進行部署的標準來部署軟件和應用程序已經成為一種新的趨勢。Docker引擎還將處理容器的互連和服務狀態(tài)。這種系統(tǒng)架構被稱為“微服務”。
通過采用容器技術,實現了一個具有自伸縮功能的虛擬HPC集群原型。證明了虛擬高性能計算的可行性集群,還可以使用此原型在特定應用程序的HPC基礎設施之上構建定制的虛擬HPC集群。然而,性能一直是并行計算的一個重要問題。我們打算進一步研究這個原型的性能,包括HPC容器之間互連的影響。此外,為了方便該方法的使用,為了實現HPC-as-a-Service (HaaS)的目標,需要一個更強大的容器管理工具,如Docker Swarm或Kubernetes等容器集群架構。
參考文獻
[1] https://github.com/hashicorp/consul-template.
[2] Containers & docker: How secure are they?https://blog.docker.com/2013/08/containers-docker-how-secure-are-they.Accessed,25,October,2014.
[3] Device whitelist controller. https://www.kernel.org/doc/Documentation/cgroups/devices.txt. [Accessed 12 October 2014].
[4] A.Kivity,Y.Kamay,D.Laor,and U.Lublin. KVM:the linux virtual machine monitor.In Proceedings of the Linux Symposium, volume 1,pages 225–230.2007.
[5] D.Merkel. Docker:Lightweight linux containers for consistent development and deployment. Linux J. 2014(239), Mar. 2014.
[6] P.Padala, X.Zhu,Z.Wang,S.Singhal,andK.G.Shin.Performance evaluation of virtualization technologies for server consolidation. HP Laboratories,2007.
[7] 韓菲,張海飛,丁宏,張超峰,翁敏華,黃義煊.基于高性能計算的聯想智能超算平臺LiCO的設計與實現[J].軟件工程,2019,22(02):38-41.
[8] 戴霖,高小渭,吳騫華.高性能計算平臺構建技術研究[J].通訊世界,2019,26(01):127-129.
[9] 游偉倩,張予倩,盛樂標.高性能計算集群系統(tǒng)中的LDAP用戶管理應用[J].電子技術與軟件工程,2018(16):129-131.
作者簡介:楊寅冬(1986.12- ),男,漢族,本科,實驗師,安徽郵電職業(yè)技術學院計算機系,研究方向:計算機操作系統(tǒng)。