付喜春,鐘吉太,劉洪海,孫 靜,馮麗濤,蘇鐵君
(1.中國石油集團東方地球物理公司大慶物探研究院 黑龍江 大慶 163357;2.中國石油集團電能有限公司熱電二公司 黑龍江 大慶 163411)
2018年大慶物探研究院購置了3臺浪潮八路服務器[1],主要用于地震數(shù)據的處理和解釋工作,在服務器上安裝了Jason地震反演軟件和GeoEast地震處理解釋軟件等應用軟件。在用戶使用Jason軟件時,很多模塊需要服務器獨立圖形卡的支持,否則無法顯示正常運算的地震圖形數(shù)據,而浪潮服務器初始配置沒有獨立圖形卡,國內用戶也沒有在浪潮八路服務器上配置過英偉達高性能圖形卡,所以,需要嘗試加裝并配置與該服務器兼容的高性能圖形卡。同時,用戶在把浪潮八路服務器和曙光PC集群聯(lián)合使用GeoEast等其他地震應用軟件時,浪潮八路服務器和曙光雙路服務器存在時鐘不同步的問題,地震資料處理用戶作業(yè)無法正常進行,并且無法使用軟件中定時發(fā)作業(yè)的功能。因此,同步兩種不同架構服務器的時鐘,是另一個需要解決的技術難題。本文針對浪潮服務器在生產過程中發(fā)生的兩個疑難技術問題進行深入探討。
大慶物探研究院購置的浪潮八路服務器型號為TS860G3,出廠標準配置中沒有配置圖形卡,經過查閱資料并與廠商工程師溝通,選擇與TS860G3服務器可能兼容支持的圖形卡:即美國英偉達公司生產的高性能圖形卡,型號為Quadro K6000,顯存容量12 GB, 該款圖形卡之前只在雙路HP工作站上安裝使用過,能夠精細展示三維地震油藏模擬圖[2],而沒有在包括浪潮、聯(lián)想、曙光等國產八路高端服務器上安裝和應用的成功案例。針對此圖形卡在系統(tǒng)上進行如下配置。
1.2.1 設置服務器BIOS中的QPI選項
在浪潮TS860G3服務器PCIE16倍速通道插槽上安裝英偉達Quadro K6000圖型卡后,啟動服務器電源,大約等待5~10 min,屏幕上會顯示出Inspur的Logo圖標,在這個界面等待約15 s,在屏幕底部出現(xiàn)一個提示“Press [Esc] for Boot memu”時,按下[Esc]鍵,就能進入BIOS設置頁面[3]。進入到BIOS中,選擇Advanced菜單下的”QPI Configuration”選項,如圖1所示[4]。
圖1 QPI配置參數(shù)頁面
在“QPI Configuration”菜單下選擇第二項 ”QPI Per Socket Configuration”選項,如圖2所示。
圖2 QPI設置程序頁面
進入到 “QPI Per Socket Configuration”菜單下,選擇“CPU0”選項,如圖3所示。
最后,把“Legacy VGA Socket” 選項改為“
圖3 QPI 每槽參數(shù)選項頁面
1.2.2 Linux系統(tǒng)中原驅動程序禁用方法
在安裝新圖形卡驅動程序之前,為了避免驅動程序的沖突或安裝失敗,首先禁用系統(tǒng)自帶的nouveau驅動程序[5],具體操作步驟如下。首先,把原驅動程序加入禁止列表中,執(zhí)行以下命令:#vim /etc/modprobe.d/blacklist.conf
在上面這個文件的最后面加入 blacklist nouveau。
然后,備份 initramfs文件,執(zhí)行以下命令:
#mvboot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
并使用dracut命令重新建立initramfs image file:
#dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
完成以上命令后,重啟服務器系統(tǒng),系統(tǒng)啟動后,再執(zhí)行命令:#lsmod | grep nouveau
然后,檢查確認系統(tǒng)中沒有加載nouveau driver。
1.2.3 Quadro K6000圖形卡驅動程序安裝
完成以上配置后,需要安裝新的圖形卡驅動程序,以保證圖形卡正常運行。在英偉達官方網站上下載驅動程序,下載鏈接如下:https://cn.download.nvidia.cn/XFree86/Linux-x86_64/410.93/NVIDIA-Linux-x86_64-410.93.run
進入下載界面,下載驅動程序的型號為:
NVIDIA-Linux-x86_64-410.93.run。
將驅動程序拷貝到Linux系統(tǒng)目錄下,如/tmp下。進入文本模式下安裝新的驅動程序,執(zhí)行以下命令:#init3
#./tmp/NVIDIA-Linx-x86_64-410.93.run
驅動程序安裝完成后,重啟服務器,加載Jason軟件用戶地震反演作業(yè),可成功顯示調用的圖形文件[6]。
要實現(xiàn)不同集群服務器時鐘同步,就要先設定一個服務器節(jié)點的時鐘作為基準時鐘服務器,將其他所有節(jié)點的時鐘都與這個時鐘服務器進行校準。通過編輯crontab文件,所有節(jié)點定時執(zhí)行同一個時鐘校準命令,完成所有節(jié)點時鐘同步。
2.1.1 確定時間服務器
浪潮服務器掛載曙光集群管理節(jié)點上的GeoEast文件系統(tǒng)sggeoeast:/soft,為了用戶能夠在浪潮服務器節(jié)點上正常發(fā)作業(yè),并且可以使用定時發(fā)地震處理作業(yè)的功能,需要將浪潮服務器和曙光集群的時鐘同步[7-8],這里我們設定曙光集群主機名為sgcon的管理節(jié)點作為基準時鐘服務器。管理時鐘的文件目錄為:/etc/ntp.conf/,文件中內容及參數(shù)等設置為缺省。
2.1.2 重新編輯 shell時鐘文件
執(zhí)行:vi /etc/ntp.conf/,將文件編輯成如下內容[9]:
server sgcon 138.99.100.1 driftfile /etc/ntp/drift
multicastclient broadcastdelay 0.008
authenticate no keys /etc/ntp/keys
tuustedkey 65 535 requestkey 65 535
controlkey 65 535
同時,檢查節(jié)點時鐘進程是否打開,執(zhí)行如下命令:
#chkconfig-list ntpd。假如節(jié)點的ntpd的進程狀態(tài)為off,則須執(zhí)行:#chkconfig ntpd on,即打開節(jié)點的時鐘進程。
完成以上操作后,重新啟動時鐘進程,執(zhí)行如下命令:#service ntpd restart
2.1.3 服務器節(jié)點時鐘校準
查看當前浪潮服務器節(jié)點的時間與基準時鐘服務器的時間相差值,如果時間差為1 024 s及以下,則執(zhí)行如下命令:#ntpd-g
如果時間差超過1 024 s,則執(zhí)行的命令為:#ntpd-g -q
由于時鐘同步過程會有延遲,約3 min左右,此計算節(jié)點的時鐘就和基準時鐘服務器完成同步過程。
集群計算機資料處理系統(tǒng),由于工作量大,常年每天7×24 h的連續(xù)滿負荷運轉,因此,不可避免的會遇到節(jié)點硬件故障死機、進程死需要重啟節(jié)點等問題,這些故障都可能會導致時鐘出現(xiàn)誤差,為了避免較大的時鐘誤差出現(xiàn),則需每個節(jié)點定時自動運行時鐘同步命令。
通過編輯文件:/etc/crontab/,可以實現(xiàn)節(jié)點定時執(zhí)行某個特定的命令;同樣,在/etc/con.d/創(chuàng)建一個文件,可自定義文件名且用固定的格式編輯此文件,也能夠實現(xiàn)同樣功能[10]。無論用上述哪種方法,都要在文件中編輯:06 * * 2,4,6 /etc/ntpd-g
這個內容實現(xiàn)的功能是:在每個周二、周四和周六的早晨6點,執(zhí)行一次/etc/ntpd-g命令。通過應用測試可以看出,配置后的計算節(jié)點與基準時鐘服務器完成時鐘同步,浪潮和曙光兩套集群之間節(jié)點時鐘誤差在規(guī)定的范圍之內,即節(jié)點之間時鐘誤差不超過1 024 s,所以只需要執(zhí)行ntpd-g命令就能完成兩套異構集群的時鐘同步[11]。
在國產浪潮八路服務器中安裝配置高性能英偉達圖形卡,和解決異構集群服務器時鐘不同步問題,既解決了地震資料處理解釋生產科研過程中的疑難問題,也是一次大膽技術創(chuàng)新和嘗試,第一次將英偉達高性能圖形卡成功應用于國產八路服務器上。一方面,使處理解釋用戶能夠在異構集群上同步并行運算,并深入了解和應用地震軟件許多擴展功能,提高了異構集群服務器的利用率;另一方面,對于系統(tǒng)管理員來說,積累了解決疑難問題的經驗,有利于今后高性能集群計算機系統(tǒng)運維管理。解決問題的方法對同類高性能集群系統(tǒng)運算用戶具有一定的借鑒作用。