999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的超算系統中Windows應用程序運行環境探究*

2022-09-21 08:36:30徐海坤謝一曼
計算機工程與科學 2022年9期
關鍵詞:作業環境用戶

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

(中南大學信息與網絡中心,湖南 長沙 410083)

1 引言

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

目前,計算資源比較充裕的商業超算中心針對Windows應用程序運行需求,大多采用“裸金屬”計算資源租用,或搭建專門的云平臺提供Windows實例來解決。這2種方法的優點是:計算環境搭建較簡單,用戶使用便捷;缺點是:需要劃分專門的計算資源用于提供Windows服務,資源利用不夠靈活,需要額外的運維管理成本和獨立的計費系統。此外,對于同時需要Linux系統和Windows系統的用戶,實現2種系統的文件共享配置很復雜,用戶對Windows實例的管理員權限也會帶來一定的安全隱患。為解決這些問題,本文選擇基于Linux操作系統運行Windows應用的思路,探尋對用戶和運維人員都更便捷的解決方案。

2 Linux操作系統下運行Windows應用程序

目前在超算Linux系統上運行Windows應用程序的主流技術方案有2種[5]:一種是基于兼容層的API轉換技術;另一種是基于軟件層的虛擬機VM(Virtual Machine)技術。兩者的本質區別是兼容層模擬的是Windows應用程序,而虛擬機技術模擬的是整個Windows操作系統。

2.1 基于兼容層的API轉換技術

兼容層API轉換技術是將Windows API調用翻譯成動態的POSIX(Portable Operating System Interface)調用,以運行Windows應用程序。最早使用該方法的軟件是Wine。Wine從體系結構上體現為一個Wine Server進程和一組動態鏈接庫的集合,其圖形界面通過X11轉發。實際運行時系統至少會啟動3個進程以運行Windows應用程序:應用進程本身、Wine服務進程和X11服務進程。Wine的體系結構如圖1[6]所示。

Figure 1 Architecture of Wine圖1 Wine體系結構

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

2.2 虛擬機技術

虛擬機VM是一種特殊的軟件,可以在計算機平臺和終端用戶之間創建一種環境,終端用戶基于該軟件所創建的環境來操作其他軟件。

從虛擬化的實現方式來看,常見的虛擬化架構有2種:裸機型和托管型[7,8]。裸機型是指虛擬機監控程序直接運行在主機的物理硬件上,不必預先加載底層操作系統,如圖2a[7,8]所示,直接訪問底層硬件而無需其他軟件(如操作系統和設備驅動程序),代表性軟件有VMware ESXI。托管型是指虛擬機監控程序安裝在現有操作系統之上,依賴于主機預先安裝的操作系統來管理對CPU、內存、存儲和網絡資源的調用,如圖2b[7,8]所示,代表性軟件有Oracle VM VirtualBox、VMware Workstation和KVM(Kernel-based Virtual Machine)。

Figure 2 Types of virtualization圖2 虛擬化實現方式

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

表1對使用Wine和虛擬機2種解決方案的優缺點進行了對比。本文的解決方案將基于Wine和托管型虛擬化開展。

Table 1 Comparison of Wine and virtual machine

3 基于超算調度系統啟用Windows應用程序運行環境

常規的超算系統通常包括硬件系統和軟件系統2部分。硬件系統由計算節點、高速計算網絡、存儲和登錄管理節點組成;軟件系統由底層操作系統、作業調度系統、文件系統和計算環境(編譯環境、應用軟件等)組成。用戶使用超算系統開展計算時,首先需要使用終端登錄工具訪問登錄節點,通過作業調度系統申請計算資源,然后使用系統分配的計算資源開展計算。登錄節點和計算節點通過共享文件系統保持數據一致性。

使用超算系統開展計算相較于直接使用Linux主機計算有2個主要差別:一是需要使用遠程登錄終端登錄;二是需要通過作業調度系統申請資源。因此,需要進行一些必要的配置,使之滿足Windows應用程序的運行條件。

3.1 X11轉發配置

用戶在超算系統中使用Windows應用程序的需求中,絕大部分都需要圖形界面,因此需要借助X11轉發技術在用戶本地啟動遠程超算系統上的圖形界面[9]。首先,用戶需要選用支持X11轉發的客戶端工具,如Xming、XShell和MobaXterm等。其次,超算系統的登錄和計算節點需要啟用X11轉發配置。最后,使用調度系統申請計算資源,并通過X11參數使得計算節點上的圖形界面可以轉發到用戶終端。具體步驟如下:

第1步:超算服務器修改文件/etc/ssh/sshd_config啟用X11轉發。配置“X11Forwarding yes”。

第2步:使用調度系統申請計算資源,如node01,則可以通過“ssh -X node01”訪問計算資源來轉發計算節點的圖形界面。如果作業調度系統支持圖形轉發,則可直接申請計算資源。以SLURM作業調度系統為例,直接運行“srun -n 1 --exclusive --x11 commnad”即可完成資源申請和圖形程序啟動。

3.2 基于Wine的運行配置

基于Wine的Windows應用程序運行環境配置中,需要安裝與操作系統版本兼容的Wine軟件,并啟動對應的Windows應用程序,對于需要安裝的Windows應用程序,也可以基于Wine啟動安裝過程,Wine將模擬Windows目錄結構部署應用軟件。下面是在SLURM調度環境下,使用Wine運行Windows版本notepad程序的示例:

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

參照該示例,可以運行其他Windows應用程序。

3.3 基于虛擬機的運行配置

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

第1步確認計算節點啟用的支持虛擬化的設置,下述命令有輸出即代表支持虛擬化:

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

第2步在計算節點安裝libvirt相關虛擬化環境,以Centos 7操作系統為例,執行:

yum install -y libvirt virt-install

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

通過以下qemu-img工具完成鏡像格式轉換:

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

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

@echo off

echo 請輸入平臺用戶名和密碼加載數據到X盤

echo 注意:關閉此窗口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:"

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

第5步為用戶準備VNC桌面查看工具,在登錄節點上安裝vncviewer:yum install -y tigervnc

第6步為用戶準備作業提交模板,以SLURM作業調度系統為例,用戶提交作業并成功分配計算資源后,即可在作業輸出文件中獲取訪問Windows實例的命令和口令。SLURM作業模板如下所示:

#!/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 方案實踐與測試

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

4.1 應用啟動測試

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

Figure 3 Starting the Windows application based on Wine圖3 基于Wine啟動Windows應用程序

Figure 4 Starting the Windows VM based on the virtualization solution圖4 基于虛擬化方案啟動Windows虛擬機

4.2 應用運行性能測試

為檢驗上述2種運行Windows應用程序方案的計算性能,本文選擇了基于OpenMP的多線程矩陣乘法算例進行測試。采用相同版本的編譯器和參數將代碼分別編譯為Linux版本和Windows版本,編譯軟件均采用GCC 8.1.0,測試矩陣規模3600×3600,填充隨機值。其中,Windows版本分別在Wine環境和KVM虛擬機環境下運行。測試結果如表2所示。

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

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

5 結束語

本文就Linux超算系統中構建Windows應用程序運行環境的方案進行了探究,針對主流超算系統中無法便捷管理和運行Windows應用程序這一問題,探索了基于Wine和虛擬機技術2種解決方案,并對比了各自方案的優缺點。這2種解決方案相較于獨立部署Windows計算節點或提供ECS云服務,均具有部署簡單、管理方便和應用安全便捷等特點,同時兼容現有作業調度系統和計費系統。2種解決方案也在中南大學校級超算平臺上得到了應用與實踐,可供其他超算中心參考。在未來的工作中,如何提高基于Wine方案的穩定性以及降低基于虛擬機方案的性能損失,均有待進一步研究。

猜你喜歡
作業環境用戶
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
快來寫作業
孕期遠離容易致畸的環境
環境
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
作業
故事大王(2016年7期)2016-09-22 17:30:08
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 一区二区在线视频免费观看| 国产精品中文免费福利| 国产SUV精品一区二区6| 国产精品亚洲αv天堂无码| 国产福利影院在线观看| aⅴ免费在线观看| 一级高清毛片免费a级高清毛片| 国产欧美又粗又猛又爽老| 免费又爽又刺激高潮网址| 国产成人精品视频一区视频二区| 国产特级毛片| 亚洲中字无码AV电影在线观看| 午夜影院a级片| 国产日韩精品一区在线不卡 | 永久天堂网Av| 无码精品国产dvd在线观看9久 | 麻豆精品在线视频| 手机永久AV在线播放| 欧美一级大片在线观看| 国产日韩AV高潮在线| 国产成人综合久久| 91综合色区亚洲熟妇p| 老司国产精品视频91| 亚洲码一区二区三区| 黄色网页在线观看| 东京热一区二区三区无码视频| 国产精品一线天| 国产综合精品一区二区| 国产亚卅精品无码| 欧美国产在线看| 制服丝袜无码每日更新| 日日摸夜夜爽无码| 免费一级无码在线网站 | 十八禁美女裸体网站| 欧美一区二区三区不卡免费| 国产欧美中文字幕| 亚洲欧美日本国产综合在线| 日韩小视频网站hq| 亚洲日本精品一区二区| 91色在线观看| 在线观看精品国产入口| 国产91高清视频| 98精品全国免费观看视频| 伦精品一区二区三区视频| 国产日韩丝袜一二三区| 中文精品久久久久国产网址 | 久久久久亚洲av成人网人人软件| 一级爱做片免费观看久久 | 欧美综合中文字幕久久| 中字无码av在线电影| 亚洲精品777| aaa国产一级毛片| 国产极品美女在线播放| 亚洲青涩在线| 久精品色妇丰满人妻| 亚洲无限乱码一二三四区| 精品国产自在在线在线观看| 国产女人在线观看| 精品久久久无码专区中文字幕| 亚洲国模精品一区| 国产精品亚洲片在线va| 国产精品一区二区国产主播| 欧美一级黄色影院| 精品久久香蕉国产线看观看gif| 欧美一区日韩一区中文字幕页| 狼友视频国产精品首页| 九色视频一区| 国产在线精品人成导航| 性色生活片在线观看| 欧美性精品| 18禁高潮出水呻吟娇喘蜜芽| 在线高清亚洲精品二区| 亚洲中文字幕国产av| аv天堂最新中文在线| 久热99这里只有精品视频6| 中文字幕精品一区二区三区视频| 日韩精品免费一线在线观看| 无套av在线| 免费 国产 无码久久久| 国产精品专区第1页| 69免费在线视频| 国产精品第页|