• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于容器的科學(xué)工作流云計(jì)算平臺(tái)*

      2024-01-08 17:46:23代強(qiáng)趙亦輝
      計(jì)算機(jī)時(shí)代 2023年12期

      代強(qiáng),趙亦輝

      (成都中藍(lán)信息技術(shù)有限責(zé)任公司,四川 成都 610041)

      0 引言

      科學(xué)數(shù)據(jù)量正在迅速增長(zhǎng)??茖W(xué)研究顯然具有工具依賴(lài)性,例如用于基因組研究的下一代測(cè)序(NGS)。云平臺(tái)已成為進(jìn)行科學(xué)分析的有前途的解決方案,因?yàn)樗鼈兡軌蛱峁?qiáng)大、彈性和經(jīng)濟(jì)的存儲(chǔ)和計(jì)算能力[1]。由于云平臺(tái)的靈活性,科學(xué)家能夠根據(jù)需要構(gòu)建自己的數(shù)據(jù)分析平臺(tái)??茖W(xué)工作流程是一個(gè)使用多種科學(xué)工具的數(shù)據(jù)處理管道。這些由不同編程語(yǔ)言開(kāi)發(fā)的工具依賴(lài)于大量的庫(kù)、二進(jìn)制文件和配置文件,導(dǎo)致了很多的工具安裝問(wèn)題。當(dāng)工具缺乏文檔或多個(gè)工具有沖突的依賴(lài)關(guān)系時(shí),情況會(huì)更令人失望。此外,如果我們考慮操作系統(tǒng)、庫(kù)和工具版本,那么再現(xiàn)整個(gè)工具執(zhí)行環(huán)境是非常具有挑戰(zhàn)性的。

      一些研究[2-4]發(fā)現(xiàn),容器技術(shù),如Docker[5],是解決科學(xué)工具依賴(lài)性問(wèn)題的一個(gè)很好的解決方案。通過(guò)將所有依賴(lài)項(xiàng)打包到Dockerimages 中,工具安裝過(guò)程將不那么痛苦。同時(shí),它保證了良好的再現(xiàn)性。

      許多科學(xué)工作流程系統(tǒng)如Galaxy[7]和Nextflow,被提出來(lái)幫助科學(xué)家定義、提交、監(jiān)控和管理科學(xué)工作流程。多虧了這些系統(tǒng),科學(xué)家才能夠?qū)W⒂谒麄兊难芯繂?wèn)題而不必?fù)?dān)心工作流執(zhí)行機(jī)制的細(xì)節(jié)。然而,對(duì)于科學(xué)工作流程系統(tǒng)來(lái)說(shuō),工具安裝的問(wèn)題是大問(wèn)題,因?yàn)榭茖W(xué)家需要運(yùn)行不同的工作流程,其中包括大量的科學(xué)工具。Galaxy 支持Docker 來(lái)解決這個(gè)問(wèn)題。然而,它只在單個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行容器,這顯然限制了計(jì)算能力。為了充分利用可用的計(jì)算資源,我們應(yīng)該能夠以可擴(kuò)展的方式在多個(gè)節(jié)點(diǎn)的集群中運(yùn)行容器化的科學(xué)工具。

      容器集群系統(tǒng),如Kubernetes,幫助用戶(hù)在多個(gè)節(jié)點(diǎn)的集群上運(yùn)行容器。然而,大多數(shù)現(xiàn)有的科學(xué)工作流系統(tǒng)都不適用于容器集群系統(tǒng)。一些使用容器集群系統(tǒng)的工作流系統(tǒng)依賴(lài)于它們自己的專(zhuān)有執(zhí)行引擎[2-3],而其他工作流系統(tǒng)則在不支持容器技術(shù)的傳統(tǒng)集群系統(tǒng)上運(yùn)行任務(wù)[7]。

      在本文中,我們建議使用容器集群系統(tǒng)作為科學(xué)工作流系統(tǒng)的執(zhí)行引擎,這帶來(lái)了很多好處。首先,它解決了科學(xué)的工具安裝問(wèn)題。我們可以將科學(xué)工具打包到Docker 映像中,然后在下載相應(yīng)的映像后,可以在容器內(nèi)的任何啟用Docker 的主機(jī)上運(yùn)行這些工具。其次,它保證了高水平的科學(xué)再現(xiàn)性,因?yàn)镈ocker 鏡像保證了相同的工具執(zhí)行環(huán)境。第三,基于容器的方法提高了資源利用率。此外,容器集群系統(tǒng)可以同時(shí)運(yùn)行MapReduce 或Webapplication 等其他任務(wù),這將大大提高整個(gè)集群的總體資源利用率。

      為了研究利用容器集群系統(tǒng)作為科學(xué)工作流系統(tǒng)執(zhí)行引擎的可行性,我們開(kāi)發(fā)了原型平臺(tái),我們的初步評(píng)估結(jié)果表明,容器集群系統(tǒng)為數(shù)據(jù)密集型工作流引入了微不足道的性能開(kāi)銷(xiāo),考慮到其巨大優(yōu)勢(shì),使其成為科學(xué)工作流的一個(gè)有前途的執(zhí)行引擎。

      1 背景和相關(guān)工作

      1.1 科學(xué)的工作流程系統(tǒng)

      科學(xué)工作流是一種使用多種科學(xué)工具的數(shù)據(jù)處理管道,通常表示為有向無(wú)環(huán)圖(DAG),其中節(jié)點(diǎn)表示數(shù)據(jù)處理任務(wù),邊表示數(shù)據(jù)流?;蚪M測(cè)序中使用的工作流程如,RNA Seq,包括科學(xué)工具,TopHat 和Cufflink。組成科學(xué)工作流程的科學(xué)工具是使用不同的編程語(yǔ)言[16]開(kāi)發(fā)的,它們依賴(lài)于大量的庫(kù)、二進(jìn)制文件和配置文件。因此,安裝和配置科學(xué)工具對(duì)科學(xué)家來(lái)說(shuō)很重要,因?yàn)樗麄儾皇怯?jì)算機(jī)專(zhuān)家。

      在生物學(xué)和天文學(xué)等各種科學(xué)界,有很多科學(xué)工作流程系統(tǒng),旨在幫助科學(xué)家定義、提交、監(jiān)測(cè)和管理科學(xué)工作流程。例如,Galaxy[7]是一個(gè)用于基因組研究的基于Web 的工作流系統(tǒng)。AWE/Shock 由一個(gè)對(duì)象存儲(chǔ)系統(tǒng)和一個(gè)專(zhuān)有的執(zhí)行引擎組成,它也是一個(gè)專(zhuān)注于運(yùn)行生物信息學(xué)管道的工作流系統(tǒng)。使用Nextflow 編程模型,科學(xué)家能夠輕松創(chuàng)建并行的科學(xué)管道。對(duì)于Pegasus,來(lái)自多個(gè)領(lǐng)域的科學(xué)家已經(jīng)使用了十多年??茖W(xué)工作流程系統(tǒng)通常為用戶(hù)提供圖形編輯器或編程腳本來(lái)定義和提交他們的工作流程。至于工作流的執(zhí)行,大多數(shù)工作流系統(tǒng)都能夠?qū)⑷蝿?wù)提交給傳統(tǒng)的集群資源管理系統(tǒng)。例如,HTCondor可以用作Galaxy、Nextflow 和Pegasus的執(zhí)行引擎。其他工作流系統(tǒng)如AWE/Shock,都有自己的專(zhuān)有執(zhí)行引擎。

      1.2 容器集群系統(tǒng)

      與虛擬機(jī)技術(shù)相比,容器技術(shù)是一種更輕量級(jí)的虛擬化技術(shù),它還能夠隔離應(yīng)用程序。在同一主機(jī)上運(yùn)行的多個(gè)容器與主機(jī)共享同一內(nèi)核,而共存的虛擬機(jī)運(yùn)行其獨(dú)立的內(nèi)核。因此,容器技術(shù)能夠提供接近本機(jī)的性能、更高的密度和更快的啟動(dòng)/停止時(shí)間。Linux 內(nèi)核功能,如Namespaces 和Cgroups,是容器技術(shù)的重要構(gòu)建塊。命名空間是將容器與主機(jī)和其他容器隔離開(kāi)來(lái)的關(guān)鍵,而C 組可以限制容器的CPU 和內(nèi)存等主機(jī)資源的使用。盡管容器技術(shù)已經(jīng)存在了十多年,但直到近幾年,隨著名為Docker 的容器工具的普及,它才越來(lái)越受歡迎。

      事實(shí)上,Docker 已經(jīng)成為業(yè)界廣泛使用的事實(shí)上的標(biāo)準(zhǔn)容器工具。通過(guò)使用Docker,我們可以方便地創(chuàng)建、停止、重新啟動(dòng)和刪除容器。這種良好的用戶(hù)友好性為Docker 的成功做出了很大貢獻(xiàn)。將應(yīng)用程序及其依賴(lài)性打包到輕量級(jí)Docker 映像中的能力是Docker 的另一個(gè)高級(jí)功能。我們可以下載Docker 鏡像并在任何啟用Docker 的主機(jī)上運(yùn)行應(yīng)用程序,而無(wú)需擔(dān)心費(fèi)力的安裝步驟。這對(duì)我們解決工具安裝和云部署問(wèn)題有很大幫助。容器集群系統(tǒng)彼此非常不同,但他們都有一個(gè)主/從體系結(jié)構(gòu)。主節(jié)點(diǎn)將容器調(diào)度到從節(jié)點(diǎn),從節(jié)點(diǎn)負(fù)責(zé)執(zhí)行容器。例如,谷歌在Borg上運(yùn)行了近十年的內(nèi)容,包括網(wǎng)絡(luò)搜索、Gmail和谷歌文檔。因此,容器集群系統(tǒng)也可以用于運(yùn)行科學(xué)工作流程。

      2 平臺(tái)體系結(jié)構(gòu)

      2.1 科學(xué)計(jì)算平臺(tái)

      本文討論的科學(xué)計(jì)算平臺(tái)由科學(xué)工作流程系統(tǒng)、容器集群系統(tǒng)、存儲(chǔ)系統(tǒng)和各種科學(xué)工具組成。科學(xué)家使用科學(xué)工作流程系統(tǒng)來(lái)提交、監(jiān)控和管理他們的工作流程。組成工作流的科學(xué)工具將在容器內(nèi)執(zhí)行,容器集群系統(tǒng)負(fù)責(zé)調(diào)度和執(zhí)行這些容器。所有輸入和輸出數(shù)據(jù)都存儲(chǔ)在存儲(chǔ)系統(tǒng)中。

      所提出的體系結(jié)構(gòu),利用容器集群系統(tǒng)作為科學(xué)工作流的執(zhí)行引擎。像Skyport 這樣的現(xiàn)有系統(tǒng)將工作流系統(tǒng)和執(zhí)行引擎緊密耦合,而我們的平臺(tái)則將工作流系統(tǒng)與執(zhí)行引擎解耦。工作流系統(tǒng)和執(zhí)行引擎的解耦大大提高了科學(xué)計(jì)算平臺(tái)的靈活性;也就是說(shuō),用戶(hù)能通過(guò)熟悉的工作流系統(tǒng)和合適的容器集群系統(tǒng)來(lái)運(yùn)行他們的工作流。

      理論上,除了具有特定硬件要求的工具(例如,高RAM)外,我們提出的平臺(tái)能夠運(yùn)行幾乎任何類(lèi)型的科學(xué)工作流程。此外,與其他工作流平臺(tái)不同,我們的平臺(tái)上不需要預(yù)先安裝任何科學(xué)工具或其依賴(lài)性。科學(xué)工具在容器中運(yùn)行,可以在計(jì)算集群的任何節(jié)點(diǎn)上進(jìn)行調(diào)度。如果沒(méi)有容器,任務(wù)可以在安裝了所需工具的特定節(jié)點(diǎn)上運(yùn)行。

      由于系統(tǒng)的復(fù)雜性,在云上部署或復(fù)制科學(xué)計(jì)算平臺(tái)是非常具有挑戰(zhàn)性的,尤其是對(duì)于缺乏計(jì)算機(jī)技能的科學(xué)家來(lái)說(shuō)。為了解決云部署問(wèn)題,所提出的架構(gòu)在Docker 容器中運(yùn)行整個(gè)平臺(tái)。由于容器技術(shù)的強(qiáng)大可移植性,該平臺(tái)可以在任何云上創(chuàng)建,而不會(huì)出現(xiàn)供應(yīng)商鎖定問(wèn)題。

      事實(shí)上,有許多科學(xué)工作流程系統(tǒng)在不同的科學(xué)界很受歡迎。對(duì)于容器集群系統(tǒng),我們也有很多選擇。對(duì)于存儲(chǔ)系統(tǒng),共享文件系統(tǒng)、對(duì)象存儲(chǔ)系統(tǒng)或其他存儲(chǔ)系統(tǒng)也可以是候選系統(tǒng)。最終,我們計(jì)劃為各種選擇提供支持,然后科學(xué)家將有充分的靈活性來(lái)選擇和組合他們喜歡的組件,以在云上構(gòu)建定制的科學(xué)計(jì)算平臺(tái)。選擇合適的容器集群系統(tǒng)可能會(huì)顯著影響用戶(hù)應(yīng)用程序的性能。

      2.2 Galaxy工作流科學(xué)計(jì)算平臺(tái)

      作為案例研究,我們選擇了廣泛使用的生物工作流系統(tǒng)Galaxy 來(lái)構(gòu)建原型平臺(tái)。Galaxy 為科學(xué)家提供了一個(gè)網(wǎng)絡(luò)界面來(lái)定義他們的工作流程。四個(gè)廣泛使用的容器集群系統(tǒng)充當(dāng)執(zhí)行引擎。所有科學(xué)工具都在Docker容器中運(yùn)行。目前,我們使用NFS 作為存儲(chǔ)系統(tǒng),并計(jì)劃在未來(lái)的工作中嘗試其他存儲(chǔ)系統(tǒng)來(lái)提高可擴(kuò)展性。

      為了研究利用容器集群系統(tǒng)作為科學(xué)工作流系統(tǒng)執(zhí)行引擎的可行性,我們將Galaxy 與Docker Swarm、Kubernetes 和Mesos/Aurora 三個(gè)通用容器集群系統(tǒng)集成。此外,我們還支持HTCondor,這是一個(gè)在HPC 社區(qū)廣泛使用的傳統(tǒng)集群系統(tǒng)。HTCondors 最近支持Docker。

      我們?cè)贕alaxy 中實(shí)現(xiàn)了四個(gè)作業(yè)運(yùn)行程序作為容器集群系統(tǒng)的接口。作業(yè)運(yùn)行程序負(fù)責(zé)提交,監(jiān)控和刪除相應(yīng)容器集群系統(tǒng)上的作業(yè)。將作業(yè)提交到不同容器集群系統(tǒng)的能力提高了我們平臺(tái)的靈活性。此外,對(duì)這些容器集群系統(tǒng)做比較對(duì)于促進(jìn)容器集群系統(tǒng)在科學(xué)工作流方面的應(yīng)用也很有價(jià)值。

      2.3 Docker的實(shí)現(xiàn)設(shè)置

      我們實(shí)現(xiàn)了兩個(gè)選項(xiàng)來(lái)運(yùn)行容器中的所有內(nèi)容,Docker in Docker 和Sibling Docker。我們還實(shí)現(xiàn)了兩種在沒(méi)有容器的情況下運(yùn)行集群從機(jī)的選項(xiàng),即Docker 中的Tool 和without Docker,以研究容器化一切的靈活性和開(kāi)銷(xiāo)。

      ⑴ Docker中的Docker:對(duì) 于Docker 的Docker,clusterslave 容器直接在主機(jī)上運(yùn)行,而科學(xué)工具容器在slave 容器內(nèi)運(yùn)行。運(yùn)行在主機(jī)上的Docker 守護(hù)進(jìn)程啟動(dòng)集群從容器,而運(yùn)行在slavecontainer 內(nèi)的Docker 后臺(tái)進(jìn)程負(fù)責(zé)管理科學(xué)工具容器。集群從進(jìn)程請(qǐng)求內(nèi)部Docker守護(hù)程序啟動(dòng)、監(jiān)視和刪除科學(xué)工具容器。我們不限制從屬容器的資源使用,例如CPU 和內(nèi)存,這意味著從屬容器能夠消耗盡可能多的主機(jī)資源。Docker 中的Docker 通過(guò)引入兩層Dockerization,有效地解決了集群從屬和科學(xué)工具的部署問(wèn)題。Docker 中Docker 比Sibling Dockersion 更容易實(shí)現(xiàn),因?yàn)樗荄ocker 原生支持的,尤其是在Docker 1.8.0 之后自動(dòng)安裝到容器中的Cgroupsis。事實(shí)上,Docker-in-Docker 方法最初是在虛擬云提供商(VCP)項(xiàng)目[6]中提出的,它是我們平臺(tái)在容器中運(yùn)行一切的直觀方法。

      ⑵ Sibling Docker:Sibling Docker,集群從屬容器和科學(xué)工具容器在主機(jī)上并排運(yùn)行,即從屬容器和科技工具容器都在同一臺(tái)主機(jī)上運(yùn)行。只有一個(gè)Docker 守護(hù)進(jìn)程在主機(jī)上運(yùn)行,它負(fù)責(zé)管理從屬容器和科研工具容器。通過(guò)使用Docker 卷或環(huán)境變量將Docker RemoteAPI 端點(diǎn)(即Unix 套接字或TCP 套接字)映射到從屬容器,來(lái)自clusterslave的所有容器管理請(qǐng)求都將發(fā)送到外部Docker 守護(hù)進(jìn)程。因此,科學(xué)工具容器是由外部Docker 守護(hù)進(jìn)程啟動(dòng)的,而科學(xué)工具容器直接在主機(jī)上運(yùn)行。與Docker中的Docker一樣,我們對(duì)slavecontainer 沒(méi)有設(shè)置資源限制,因此主機(jī)的所有資源對(duì)于集群slave都是“可見(jiàn)的”,科學(xué)工具容器能夠確保所有主機(jī)資源。從用戶(hù)的角度來(lái)看,Sibling Docker 的工作原理與Docker 中的Docker 相同,因?yàn)樗鼈兌荚谌萜髦羞\(yùn)行集群從屬工具以及科學(xué)工具。Sibling Docker 只能部署在安裝了特定版本Docker 的主機(jī)上,這使得Sibling Docker 方法的可移植性不如Docker方法中的Docker。

      ⑶Docker 中的工具:當(dāng)只有科學(xué)工具在Docker容器中運(yùn)行,而集群從機(jī)直接在主機(jī)上運(yùn)行時(shí),我們將其命名為Docker 中工具。主機(jī)上的Docker 守護(hù)進(jìn)程會(huì)實(shí)例化工具容器,以響應(yīng)集群從機(jī)的請(qǐng)求。對(duì)于Docker 方法中的Tool,我們不必?fù)?dān)心工具安裝問(wèn)題,因?yàn)樗腥萜鞫荚诨谙鄳?yīng)Docker 映像的Docker 容器中運(yùn)行,其中已經(jīng)打包了科學(xué)工具及其依賴(lài)項(xiàng)。這大大提高了平臺(tái)的靈活性,因?yàn)槲覀兛梢栽谌魏喂?jié)點(diǎn)上運(yùn)行幾乎任何科學(xué)工具,而無(wú)需在這些節(jié)點(diǎn)上安裝任何工具。然而,我們必須手動(dòng)安裝和配置容器集群系統(tǒng),這通常是有挑戰(zhàn)性的。根據(jù)我們的實(shí)驗(yàn)經(jīng)驗(yàn),安裝容器集群系統(tǒng),包括Docker Swarm、Kubernetes、Mesos/Aurora 和HTCondor,由于其大量的依賴(lài)性、多個(gè)系統(tǒng)組件、復(fù)雜的配置文件和準(zhǔn)確的文檔,所以非常困難。此外,當(dāng)我們想要在云上部署或復(fù)制平臺(tái)時(shí),這種方法會(huì)引起很多麻煩。總之,在容器中運(yùn)行科學(xué)工具有很大好處,但僅僅將科學(xué)工具容器化并不能解決本文討論的問(wèn)題。

      3 結(jié)論

      容器技術(shù)是解決科學(xué)計(jì)算平臺(tái)依賴(lài)性問(wèn)題的理想技術(shù),其近年來(lái)越來(lái)越受歡迎。像Docker Swarm這樣的容器集群系統(tǒng),由于其固有的性能和巨大的靈活性,是科學(xué)工作流系統(tǒng)的有前途的執(zhí)行引擎。此外,通過(guò)利用容器技術(shù),我們可以在幾分鐘內(nèi)輕松地在任何云上部署您的科學(xué)計(jì)算平臺(tái)。根據(jù)我們的實(shí)驗(yàn)結(jié)果,Docker 中的Sibling Dockeran 和Docker 的性能幾乎相同。得益于它的完全封裝,Docker 中的Docker 比Sibling Docker 具有更好的可移植性。而對(duì)于Sibling Docker 來(lái)說(shuō),它只引入了一層Docker 虛擬化,可簡(jiǎn)化容器管理。因此,必須在更好的可移植性和更容易的管理之間進(jìn)行權(quán)衡。

      察隅县| 宾阳县| 海盐县| 焉耆| 都安| 阿巴嘎旗| 新邵县| 紫阳县| 富锦市| 昌宁县| 宜丰县| 贡觉县| 佳木斯市| 颍上县| 曲水县| 都江堰市| 抚远县| 灵丘县| 茂名市| 游戏| 临夏市| 中超| 杂多县| 涟水县| 天津市| 精河县| 珠海市| 页游| 阳原县| 靖西县| 巴林左旗| 五指山市| 军事| 五大连池市| 卢龙县| 全南县| 乐至县| 陆河县| 永福县| 英超| 孝义市|