亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Linux的超算系統(tǒng)中Windows應(yīng)用程序運(yùn)行環(huán)境探究*

        2022-09-21 08:36:30徐海坤謝一曼
        關(guān)鍵詞:計(jì)算資源鏡像應(yīng)用程序

        徐海坤,謝一曼,吳 青,陳 軍,鄒 有

        (中南大學(xué)信息與網(wǎng)絡(luò)中心,湖南 長(zhǎng)沙 410083)

        1 引言

        高性能計(jì)算是現(xiàn)代科學(xué)研究最重要的技術(shù)手段之一,國(guó)內(nèi)許多高校和研究機(jī)構(gòu)都建立了超算系統(tǒng),以滿足學(xué)科建設(shè)和科研工作中日益增長(zhǎng)的計(jì)算需求[1 - 4]。目前,絕大部分超算系統(tǒng)都是基于Linux操作系統(tǒng)搭建的,以CentOS、Red Hat和Ubuntu為主。近年來,國(guó)內(nèi)高性能計(jì)算蓬勃發(fā)展,集群和用戶規(guī)模不斷擴(kuò)大,用戶需求也逐漸多樣化,部分用戶產(chǎn)生了在超算系統(tǒng)中運(yùn)行Windows應(yīng)用程序的需求。這種需求在當(dāng)前的超算領(lǐng)域中雖然不是主流,但卻是每個(gè)超算系統(tǒng)都需要面對(duì)的問題。一方面由于Linux系統(tǒng)和Windows系統(tǒng)互不兼容,大量Windows應(yīng)用程序沒有基于Linux系統(tǒng)的版本;另一方面由于Windows系統(tǒng)具有良好的圖形界面,部分用戶習(xí)慣使用Windows操作系統(tǒng)。在高校環(huán)境中,缺乏Linux系統(tǒng)使用經(jīng)驗(yàn)的用戶比例大,這一需求顯得尤為突出。部分建設(shè)了校級(jí)超算系統(tǒng)的高校對(duì)科研人員自行采購(gòu)的計(jì)算硬件有嚴(yán)格控制,造成了科研人員Windows系統(tǒng)使用需求與校級(jí)超算系統(tǒng)環(huán)境之間的矛盾。此外,隨著云計(jì)算的普及,各大商業(yè)云服務(wù)商提供的彈性伸縮計(jì)算服務(wù)ECS(Elastic Compute Service)為用戶使用Windows操作系統(tǒng)提供了便捷的途徑,這一趨勢(shì)也造成了Windows系統(tǒng)的超算用戶流失。

        目前,計(jì)算資源比較充裕的商業(yè)超算中心針對(duì)Windows應(yīng)用程序運(yùn)行需求,大多采用“裸金屬”計(jì)算資源租用,或搭建專門的云平臺(tái)提供Windows實(shí)例來解決。這2種方法的優(yōu)點(diǎn)是:計(jì)算環(huán)境搭建較簡(jiǎn)單,用戶使用便捷;缺點(diǎn)是:需要?jiǎng)澐謱iT的計(jì)算資源用于提供Windows服務(wù),資源利用不夠靈活,需要額外的運(yùn)維管理成本和獨(dú)立的計(jì)費(fèi)系統(tǒng)。此外,對(duì)于同時(shí)需要Linux系統(tǒng)和Windows系統(tǒng)的用戶,實(shí)現(xiàn)2種系統(tǒng)的文件共享配置很復(fù)雜,用戶對(duì)Windows實(shí)例的管理員權(quán)限也會(huì)帶來一定的安全隱患。為解決這些問題,本文選擇基于Linux操作系統(tǒng)運(yùn)行Windows應(yīng)用的思路,探尋對(duì)用戶和運(yùn)維人員都更便捷的解決方案。

        2 Linux操作系統(tǒng)下運(yùn)行Windows應(yīng)用程序

        目前在超算Linux系統(tǒng)上運(yùn)行Windows應(yīng)用程序的主流技術(shù)方案有2種[5]:一種是基于兼容層的API轉(zhuǎn)換技術(shù);另一種是基于軟件層的虛擬機(jī)VM(Virtual Machine)技術(shù)。兩者的本質(zhì)區(qū)別是兼容層模擬的是Windows應(yīng)用程序,而虛擬機(jī)技術(shù)模擬的是整個(gè)Windows操作系統(tǒng)。

        2.1 基于兼容層的API轉(zhuǎn)換技術(shù)

        兼容層API轉(zhuǎn)換技術(shù)是將Windows API調(diào)用翻譯成動(dòng)態(tài)的POSIX(Portable Operating System Interface)調(diào)用,以運(yùn)行Windows應(yīng)用程序。最早使用該方法的軟件是Wine。Wine從體系結(jié)構(gòu)上體現(xiàn)為一個(gè)Wine Server進(jìn)程和一組動(dòng)態(tài)鏈接庫(kù)的集合,其圖形界面通過X11轉(zhuǎn)發(fā)。實(shí)際運(yùn)行時(shí)系統(tǒng)至少會(huì)啟動(dòng)3個(gè)進(jìn)程以運(yùn)行Windows應(yīng)用程序:應(yīng)用進(jìn)程本身、Wine服務(wù)進(jìn)程和X11服務(wù)進(jìn)程。Wine的體系結(jié)構(gòu)如圖1[6]所示。

        Figure 1 Architecture of Wine圖1 Wine體系結(jié)構(gòu)

        Wine不像虛擬機(jī)或者模擬器一樣模仿內(nèi)部的Windows邏輯,而是運(yùn)用API轉(zhuǎn)換技術(shù)開發(fā)出Linux到Windows相對(duì)應(yīng)的函數(shù)來調(diào)用動(dòng)態(tài)鏈接庫(kù)(DLL),以降低性能損耗和資源占用。但是,Windows DLL庫(kù)都是封閉源碼,Wine開發(fā)人員需要耗費(fèi)大量的時(shí)間和精力從底層開始重新設(shè)計(jì)、開發(fā)和測(cè)試,因此目前版本的Wine功能還不夠完善,主要表現(xiàn)為支持的應(yīng)用不多,已有的應(yīng)用運(yùn)行不夠穩(wěn)定等。具有類似功能的軟件還有CrossOver。CrossOver是基于Wine開發(fā)的商業(yè)軟件,為主流的Windows應(yīng)用軟件提供商業(yè)支持,相較于Wine更穩(wěn)定。

        2.2 虛擬機(jī)技術(shù)

        虛擬機(jī)VM是一種特殊的軟件,可以在計(jì)算機(jī)平臺(tái)和終端用戶之間創(chuàng)建一種環(huán)境,終端用戶基于該軟件所創(chuàng)建的環(huán)境來操作其他軟件。

        從虛擬化的實(shí)現(xiàn)方式來看,常見的虛擬化架構(gòu)有2種:裸機(jī)型和托管型[7,8]。裸機(jī)型是指虛擬機(jī)監(jiān)控程序直接運(yùn)行在主機(jī)的物理硬件上,不必預(yù)先加載底層操作系統(tǒng),如圖2a[7,8]所示,直接訪問底層硬件而無需其他軟件(如操作系統(tǒng)和設(shè)備驅(qū)動(dòng)程序),代表性軟件有VMware ESXI。托管型是指虛擬機(jī)監(jiān)控程序安裝在現(xiàn)有操作系統(tǒng)之上,依賴于主機(jī)預(yù)先安裝的操作系統(tǒng)來管理對(duì)CPU、內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)資源的調(diào)用,如圖2b[7,8]所示,代表性軟件有Oracle VM VirtualBox、VMware Workstation和KVM(Kernel-based Virtual Machine)。

        Figure 2 Types of virtualization圖2 虛擬化實(shí)現(xiàn)方式

        Linux系統(tǒng)使用虛擬機(jī)能完整地模擬Windows操作系統(tǒng),各種Windows應(yīng)用軟件基本上都能在虛擬上安裝并穩(wěn)定運(yùn)行。雖然使用虛擬機(jī)技術(shù)在資源優(yōu)化和性能上有較大的缺陷,但是對(duì)于需要使用不同操作系統(tǒng)或是有特別需求的應(yīng)用軟件,是一個(gè)不錯(cuò)的選擇。它可以有效地降低超算集群的運(yùn)維成本,提升管理效率。

        表1對(duì)使用Wine和虛擬機(jī)2種解決方案的優(yōu)缺點(diǎn)進(jìn)行了對(duì)比。本文的解決方案將基于Wine和托管型虛擬化開展。

        Table 1 Comparison of Wine and virtual machine

        3 基于超算調(diào)度系統(tǒng)啟用Windows應(yīng)用程序運(yùn)行環(huán)境

        常規(guī)的超算系統(tǒng)通常包括硬件系統(tǒng)和軟件系統(tǒng)2部分。硬件系統(tǒng)由計(jì)算節(jié)點(diǎn)、高速計(jì)算網(wǎng)絡(luò)、存儲(chǔ)和登錄管理節(jié)點(diǎn)組成;軟件系統(tǒng)由底層操作系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、文件系統(tǒng)和計(jì)算環(huán)境(編譯環(huán)境、應(yīng)用軟件等)組成。用戶使用超算系統(tǒng)開展計(jì)算時(shí),首先需要使用終端登錄工具訪問登錄節(jié)點(diǎn),通過作業(yè)調(diào)度系統(tǒng)申請(qǐng)計(jì)算資源,然后使用系統(tǒng)分配的計(jì)算資源開展計(jì)算。登錄節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過共享文件系統(tǒng)保持?jǐn)?shù)據(jù)一致性。

        使用超算系統(tǒng)開展計(jì)算相較于直接使用Linux主機(jī)計(jì)算有2個(gè)主要差別:一是需要使用遠(yuǎn)程登錄終端登錄;二是需要通過作業(yè)調(diào)度系統(tǒng)申請(qǐng)資源。因此,需要進(jìn)行一些必要的配置,使之滿足Windows應(yīng)用程序的運(yùn)行條件。

        3.1 X11轉(zhuǎn)發(fā)配置

        用戶在超算系統(tǒng)中使用Windows應(yīng)用程序的需求中,絕大部分都需要圖形界面,因此需要借助X11轉(zhuǎn)發(fā)技術(shù)在用戶本地啟動(dòng)遠(yuǎn)程超算系統(tǒng)上的圖形界面[9]。首先,用戶需要選用支持X11轉(zhuǎn)發(fā)的客戶端工具,如Xming、XShell和MobaXterm等。其次,超算系統(tǒng)的登錄和計(jì)算節(jié)點(diǎn)需要啟用X11轉(zhuǎn)發(fā)配置。最后,使用調(diào)度系統(tǒng)申請(qǐng)計(jì)算資源,并通過X11參數(shù)使得計(jì)算節(jié)點(diǎn)上的圖形界面可以轉(zhuǎn)發(fā)到用戶終端。具體步驟如下:

        第1步:超算服務(wù)器修改文件/etc/ssh/sshd_config啟用X11轉(zhuǎn)發(fā)。配置“X11Forwarding yes”。

        第2步:使用調(diào)度系統(tǒng)申請(qǐng)計(jì)算資源,如node01,則可以通過“ssh -X node01”訪問計(jì)算資源來轉(zhuǎn)發(fā)計(jì)算節(jié)點(diǎn)的圖形界面。如果作業(yè)調(diào)度系統(tǒng)支持圖形轉(zhuǎn)發(fā),則可直接申請(qǐng)計(jì)算資源。以SLURM作業(yè)調(diào)度系統(tǒng)為例,直接運(yùn)行“srun -n 1 --exclusive --x11 commnad”即可完成資源申請(qǐng)和圖形程序啟動(dòng)。

        3.2 基于Wine的運(yùn)行配置

        基于Wine的Windows應(yīng)用程序運(yùn)行環(huán)境配置中,需要安裝與操作系統(tǒng)版本兼容的Wine軟件,并啟動(dòng)對(duì)應(yīng)的Windows應(yīng)用程序,對(duì)于需要安裝的Windows應(yīng)用程序,也可以基于Wine啟動(dòng)安裝過程,Wine將模擬Windows目錄結(jié)構(gòu)部署應(yīng)用軟件。下面是在SLURM調(diào)度環(huán)境下,使用Wine運(yùn)行Windows版本notepad程序的示例:

        srun -n 1 --exclusive --x11 wine notepad.exe

        參照該示例,可以運(yùn)行其他Windows應(yīng)用程序。

        3.3 基于虛擬機(jī)的運(yùn)行配置

        基于托管型虛擬機(jī)運(yùn)行Windows應(yīng)用程序的方案需要在計(jì)算節(jié)點(diǎn)安裝虛擬機(jī)環(huán)境,并為用戶準(zhǔn)備Windows操作系統(tǒng)鏡像和訪問Windows計(jì)算環(huán)境的VNC(Virtual Network Console)客戶端。由于虛擬機(jī)中運(yùn)行的是獨(dú)立的操作系統(tǒng),默認(rèn)情況下,用戶無法通過虛擬機(jī)訪問其在超算平臺(tái)的數(shù)據(jù)文件。為解決這一問題,本文在Windows操作系統(tǒng)鏡像中預(yù)置了SSH(Secure SHell)文件系統(tǒng)SSHFS(Secure SHell File System)[10],用于通過SSH連接來掛載用戶在宿主機(jī)上的文件目錄。這種方式配置簡(jiǎn)潔,且安全性高。用戶通過NAT(Network Address Translation)模式訪問宿主機(jī)即可掛載數(shù)據(jù)目錄,避免了用戶濫用虛擬機(jī)的管理員權(quán)限配置虛擬網(wǎng)絡(luò)帶來的安全風(fēng)險(xiǎn)。本文在SLURM作業(yè)調(diào)度器中,采用libvirt開源虛擬化套件運(yùn)行Windows虛擬機(jī),詳細(xì)步驟如下所示:

        第1步確認(rèn)計(jì)算節(jié)點(diǎn)啟用的支持虛擬化的設(shè)置,下述命令有輸出即代表支持虛擬化:

        grep -E "(vmx|svm)" /proc/cpuinfo

        第2步在計(jì)算節(jié)點(diǎn)安裝libvirt相關(guān)虛擬化環(huán)境,以Centos 7操作系統(tǒng)為例,執(zhí)行:

        yum install -y libvirt virt-install

        第3步準(zhǔn)備Windows操作系統(tǒng)鏡像,從微軟官方獲取Windows 10操作系統(tǒng)的VMware鏡像,然后轉(zhuǎn)換為KVM鏡像格式。Windows 10官方VMware鏡像下載地址為:https://az792536.vo.msecnd.net/vms/VMBuild_20190311/VMware/MSEdge/MSEdge.Win10.VMware.zip。

        通過以下qemu-img工具完成鏡像格式轉(zhuǎn)換:

        qemu-img convert -f vmdk -O qcow2 MSEdge-Win10-VMware-disk1.vmdk win20g.qcow2

        第4步啟動(dòng)鏡像,安裝SSHFS軟件和WinFSP軟件用于掛載用戶位于宿主機(jī)的文件系統(tǒng)。以下批處理文件可供自動(dòng)掛載:

        @echo off

        echo 請(qǐng)輸入平臺(tái)用戶名和密碼加載數(shù)據(jù)到X盤

        echo 注意:關(guān)閉此窗口X盤將斷開!

        del C:Userswinhpc。sshknown_hosts 1>nul 2>nul

        set /p user=username:

        start /B cmd /C " set "PATH=C:Program FilesSSHFS-Winin;%PATH%" && "C:Program FilesSSHFS-Wininsshfs.exe"-o idmap=user-o StrictHostKeyChecking=no %user%@10.0.2.2:X:"

        運(yùn)行上述批處理文件,并輸入正確的用戶名和密碼后,用戶可以在系統(tǒng)中通過盤符X訪問自己在宿主機(jī)上的文件。

        第5步為用戶準(zhǔn)備VNC桌面查看工具,在登錄節(jié)點(diǎn)上安裝vncviewer:yum install -y tigervnc

        第6步為用戶準(zhǔn)備作業(yè)提交模板,以SLURM作業(yè)調(diào)度系統(tǒng)為例,用戶提交作業(yè)并成功分配計(jì)算資源后,即可在作業(yè)輸出文件中獲取訪問Windows實(shí)例的命令和口令。SLURM作業(yè)模板如下所示:

        #!/bin/bash

        #SBATCH --job-name=win

        #SBATCH --exclusive

        #SBATCH --nodes=1

        #SBATCH -p winPartition

        if [ !-f "$HOME/win20g.qcow2" ];then

        echo "Preparing image file..."

        cp/public/sourcecode/vm/win20g.qcow2 $HOME/ win20g.qcow2

        echo "Image file is ready!"

        fi;

        PASSWD=$RANDOM

        echo

        echo "Please use the following command and passwd to visit your windows instance."

        echo "vncviewer $HOSTNAME:5$UID"

        echo "Password:$PASSWD"

        echo

        echo

        ssh $HOSTNAME virsh undefine $USER-winvm >&/dev/null

        ssh $HOSTNAME virt-install--name $USER-winvm --ram 168000 --vcpus=sockets=2,cores=24,threads=1 --import --disk path=$HOME/win20g.qcow2 --graphics vnc,password=$PASSWD,listen=0.0.0.0,port=5$UID --os-variant win10 --network default --check path_in_use=off

        4 方案實(shí)踐與測(cè)試

        為檢驗(yàn)所述2種解決方案的效果,本文在中南大學(xué)校級(jí)超算平臺(tái)上進(jìn)行了實(shí)際部署與測(cè)試。與實(shí)驗(yàn)相關(guān)的主要軟硬件配置如下所示:操作系統(tǒng):CentOS Linux release 7.5.1804;作業(yè)調(diào)度系統(tǒng):SLURM 20.02.3;并行文件系統(tǒng):Lustre 2.12.3;管理節(jié)點(diǎn)和登錄節(jié)點(diǎn)硬件:2×Intel Xeon Gold 6248R CPU,192 GB內(nèi)存,240 GB SSD硬盤;Wine版本:6.3;Libvirt版本:3.9.0。

        4.1 應(yīng)用啟動(dòng)測(cè)試

        根據(jù)上述步驟描述,2種方案中用戶都可以成功啟用并運(yùn)行Windows應(yīng)用程序,效果如圖3和圖4所示。

        Figure 3 Starting the Windows application based on Wine圖3 基于Wine啟動(dòng)Windows應(yīng)用程序

        Figure 4 Starting the Windows VM based on the virtualization solution圖4 基于虛擬化方案啟動(dòng)Windows虛擬機(jī)

        4.2 應(yīng)用運(yùn)行性能測(cè)試

        為檢驗(yàn)上述2種運(yùn)行Windows應(yīng)用程序方案的計(jì)算性能,本文選擇了基于OpenMP的多線程矩陣乘法算例進(jìn)行測(cè)試。采用相同版本的編譯器和參數(shù)將代碼分別編譯為L(zhǎng)inux版本和Windows版本,編譯軟件均采用GCC 8.1.0,測(cè)試矩陣規(guī)模3600×3600,填充隨機(jī)值。其中,Windows版本分別在Wine環(huán)境和KVM虛擬機(jī)環(huán)境下運(yùn)行。測(cè)試結(jié)果如表2所示。

        Table 2 Efficiency of OpenMP multi-threaded matrix multiplication running in different environments

        從表2可以看出,應(yīng)用程序基于Wine運(yùn)行效率較高,與純Linux環(huán)境下幾乎沒有差別;而基于KVM虛擬機(jī)的運(yùn)行性能損失較大,效率約為純Linux環(huán)境和Wine的1/4。因此,對(duì)于運(yùn)行環(huán)境復(fù)雜度不高的Windows應(yīng)用,可以優(yōu)先采用基于Wine的方案;對(duì)于復(fù)雜的Windows應(yīng)用,在綜合考量運(yùn)行穩(wěn)定性和效率的情況下,可以采用基于虛擬機(jī)的方案。

        5 結(jié)束語(yǔ)

        本文就Linux超算系統(tǒng)中構(gòu)建Windows應(yīng)用程序運(yùn)行環(huán)境的方案進(jìn)行了探究,針對(duì)主流超算系統(tǒng)中無法便捷管理和運(yùn)行Windows應(yīng)用程序這一問題,探索了基于Wine和虛擬機(jī)技術(shù)2種解決方案,并對(duì)比了各自方案的優(yōu)缺點(diǎn)。這2種解決方案相較于獨(dú)立部署Windows計(jì)算節(jié)點(diǎn)或提供ECS云服務(wù),均具有部署簡(jiǎn)單、管理方便和應(yīng)用安全便捷等特點(diǎn),同時(shí)兼容現(xiàn)有作業(yè)調(diào)度系統(tǒng)和計(jì)費(fèi)系統(tǒng)。2種解決方案也在中南大學(xué)校級(jí)超算平臺(tái)上得到了應(yīng)用與實(shí)踐,可供其他超算中心參考。在未來的工作中,如何提高基于Wine方案的穩(wěn)定性以及降低基于虛擬機(jī)方案的性能損失,均有待進(jìn)一步研究。

        猜你喜歡
        計(jì)算資源鏡像應(yīng)用程序
        基于模糊規(guī)劃理論的云計(jì)算資源調(diào)度研究
        鏡像
        改進(jìn)快速稀疏算法的云計(jì)算資源負(fù)載均衡
        刪除Win10中自帶的應(yīng)用程序
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        基于Wi-Fi與Web的云計(jì)算資源調(diào)度算法研究
        耦合分布式系統(tǒng)多任務(wù)動(dòng)態(tài)調(diào)度算法
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        鏡像
        小康(2015年6期)2015-03-26 14:44:27
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        无码人妻精品一区二区三区夜夜嗨| 色老汉亚洲av影院天天精品| 国内精品少妇久久精品| 亚洲精品中文字幕免费专区| 亚洲日韩一区精品射精| 91av手机在线观看| av天堂吧手机版在线观看| 国产无套一区二区三区久久| 国产超碰人人做人人爽av大片 | 亚洲成av人片在www鸭子| 日韩制服国产精品一区| 亚洲阿v天堂网2021| 最新中文字幕乱码在线| 人妻熟妇乱又伦精品视频| 中文无码乱人伦中文视频在线v| 国产综合久久久久影院| 国产av精品一区二区三区视频| 亚洲爆乳无码精品aaa片蜜桃| 久久综合亚洲色一区二区三区| 亚洲色偷拍区另类无码专区| 日韩在线视频不卡一区二区三区| 一区视频免费观看播放| 少妇熟女天堂网av| 国产精品厕所| 久久精品这里就是精品| 亚洲人成综合第一网站| 人妻夜夜爽天天爽一区| 色噜噜狠狠色综合中文字幕| 91国产精品自拍视频| 国自产拍偷拍精品啪啪一区二区| 国产人澡人澡澡澡人碰视频| 国产精品国产三级国产av主| 熟女肥臀白浆一区二区| 天天躁日日躁狠狠久久| 国产AⅤ无码久久丝袜美腿| 精品人妻午夜中文字幕av四季| 亚洲成a人v欧美综合天堂| 日本一区午夜艳熟免费| 久久人妻av不卡中文字幕| 精品国产精品久久一区免费式 | 精品粉嫩av一区二区三区|