實驗室的建制與規劃
跨領域學程教學實驗室的建制與規劃
以中原大學數位邏輯電路曁系統晶片共構實驗室為例
[pdf][萬能科技大學第五屆電資科技應用與發展學術研討會]
賴裕昆 李俊頡 鄭智記 陳嘉偉 鐘文耀1 黃柏勳
電腦網路與系統研究室
中原大學電機工程學系
1中原大學電子工程學系
摘要
長久以來,在有限的經費與人力資源,校園教學實驗室、機房的維護,一直是令管理人員困擾的工作。而傳統封閉式的實驗室建制方式,已無法滿足並因應眾多跨領域學程教學與研究的需求,在本文中,我們歸納、統整出一些常發生於傳統實驗室的問題,並針對這些問題去尋求解決方法,規劃並建構一個兼顧擴充性,穩定度與高效能的電腦教學實驗室,並將建置之結果實際應用於跨領域學程之教學與研究上。
關鍵字: 機房管理, 網路架構, 分散式檔案系統, 系統晶片設計工具
I. 前言
在許多跨領域學程之研究及教學之中,必需要提供全班五、六十位上課同學,同時使用各式各樣的電腦輔助設計軟體與工具。以生醫訊號分析系統晶片設計為例,學生以MATLAB模擬,將各項系統架構與參數確認後,透過高階的硬體描述語言(HDL) 設計相關的電路模組,經功能模擬驗証之後,進行邏輯合成,以FPGA作快速雛型實現,或是以標準元件庫設計流程進行佈局、繞線、時序分析、驗證電路的完整性與正確性,進行最後的晶片下線。這完整的設計流程必須使用許多的設計軟體與工具。頻繁的系統驗証、模擬與各階段設計工具中的資料交換,更須仰賴一個穩定、且高效能的作業環境。
長久以來, UNIX/Linux作業系統其優異的效能、使用者權限與資料安全性的管控和擴充性,提供絕佳的多人多工使用環境。其開放程式碼與免費使用的特色,更吸引了許多的使用者。因此,學術研究所需的大部分工具以及電腦輔助設計軟體[2]都是在UNIX/Linux作業系統上使用。
目前許多實驗室使用晶片設計工具的最簡便方式,即是於UNIX/Linux伺服器上安裝所需之工具與應用軟體,使用者在Windows PC上以Telnet/SSH的方式連接至遠端的伺服器,並將視窗以XDMCP、或是X-Window的方式呈現在本地用戶端的電腦。這樣的使用方式最大的問題就是功能強大的個人電腦(PC)只是用來當作終端機(Remote Terminal)使用,個人電腦大部分的時間都處在閒置狀態,使得計算資源嚴重的浪費。而全部的計算資源皆依賴於少數且昂貴的伺服主機,當使用者人數增加時,系統的負荷便越顯增加,造成效能降低,更可能嚴重的導致伺服器停擺。
緣於教育部教學卓越計畫:建立卓越效能的共構實驗室的經費補助,我們著手規劃計算機網路架構與建置一電腦實驗室與伺服機房,使用國科會晶片設計中心提供之類比、數位邏輯晶片設計、從上到下的全系列工具軟體,以提供數位邏輯電路、系統晶片設計、等許多跨領域學程之教學及研究需求。
II. 現況分析
國內大多數校園內,大部分的電腦教室皆使用Microsoft Windows作業系統。礙於建制成本的考量,使用 Microsoft Server 來控管使用者權限與資料使用並不多見。為了安裝軟體與使用上的方便,開放使用權限的後果就是導致系統之穩定性與效能降低、甚至病毒感染等管理者最頭痛的問題。目前最常見的解決方法,對於個人電腦大多採用還原卡、復活卡的方式,雖然能有效控制電腦狀況,但是耗費在建置初期與升級的時間卻額外的龐大。
我們參考了許多校園的電腦機房與訓練中心,發現若以傳統的管理方式去建置機房,所需求的人力與硬體成本皆是一筆可觀的開銷。在有限的人力與成本的考量之下,我們開始尋求一個能有效及快速建置的方式。然而,我們希望建構的資源,不僅只侷限於一個特定的電腦教室內使用,更有著高擴充性與便利的特性,能提供資源給其他現有的電腦教室、支援更多樣的課程,並且能因應不同的課程需求快速的完成軟體建置或更新。基於上述目標,我們建置之架構能達到下列特點:
(1) 妥善規劃所有的軟體、硬體資源,以期能達到該電腦最佳效能的使用。
(2) 使用者資料能夠橫跨作業系統與工具軟體,給予使用者更高的使用便利性。
(3) 以模組的概念建置,故當其他電腦實驗室要使用伺服機房資源時,能不影響原有架構並快速新增。
(4) 能在短時間對電腦實驗室、機房進行維護,以不影響使用者為優先考量。
(5) 提供高穩定性的電腦教室,以降低人工維護的時間成本。
我們將於以下篇幅進行問題之探討,並呈現建構實驗之網路、伺服器端與用戶端電腦之相關設定與規劃。我們將建置之結果實際地應用於研究所與大學部等跨領域學程之教學及研究需求。我們更進一步量測、並比較伺服器與網路頻寬之效能以確認其服務品質。在最後我們總結並提供後續之發展與願景。
III.問題探討與解決方法
以上述機制作為目標,能以有限的人力與資源,在短時間達到這樣的效果便是本文所探討的重點。在下面的章節我們整理歸納出一些較迫切的問題:
3-1. 特定軟體安裝於特定教室
因學校所購置之電腦軟體皆有授權合約數量之限制,導致大多數的電腦軟體僅安裝於特定的電腦教室,不僅使軟體的使用被限制在單一機房內,也造成高額購買的軟體無法有效的被使用者利用。
由於目前大多數商業軟體皆可使用Floating Licensing﹙浮動使用權﹚的授權方式,我們採用此方式來進行軟體使用之授權管理,改變特定軟體必須在特定教室使用的問題。
3-2. 使用者權限與驗証管理
大多數電腦教室在Windows作業系統下,對使用者的權限僅僅只有‘管理者’與‘受限制的使用者’兩種選擇。然而這卻是一個兩難的選擇,為了管理方便而選擇了‘受限制的使用者’雖然可以避免使用者隨意對電腦更動或安裝個人軟體,但卻有部分軟體發生無法使用的情形,例如:Mentor Modelsim。但若為了方便使用者操作而給予‘管理者’權限,意味著使用者有著毫無約制的使用權,除了電腦設定有可能會被更動外,電腦的穩定性也將隨著使用者的操作習慣而有所影響。該如何在兩者間取得平衡,給予一個能兼顧穩定性與使用便利性的權限便是一個重要的課題。
在電腦教室內的個人電腦中我們採取雙重開機模式,安裝雙作業系統。在Windows作業系統下,我們調整‘受限制的管理者’中的權限,使之無法隨意更動電腦的設定或安裝個人軟體,但可使用特定的IC設計軟體。而於Linux作業系統中,我們透過NIS(Network Information System)與NFS(Network File System)讓使用者可以用同一帳號登錄於Linux或是Sun Solaris作業系統之中,使用相關的設計軟體。
3-3. 跨作業系統資料的存取
普遍的使用者大多使用Windows作業系統進行文件編輯與日常工作。在不同的作業系統下,如果彼此的資料無法互相流通,除了非常的不便利、增加硬碟的儲存空間外也增加了資料維護的困難。然而,目前跨領域、跨學程的課程或研究,資料是否能快速的往返於分工的工作人員,或者是個人的資料是否能在不同機器上流動日益顯得重要。而我們透過NFS建置的集中檔案管理方式,將使用者的家目錄也可透過SAMBA伺服機制分享,讓使用者能在Windows作業系統中存取資料,達到跨作業系統檔案共享的便利性。
3-4. 軟體維護困難
許多軟體的安裝步驟繁雜,時間冗長,光一間電腦教室便可能耗上2~3日進行軟體的安裝,若需進行升級或其他配置對管理者而言便是一個龐大的負擔。如何能有效率的將大量的軟體整合、簡化安裝時間,勢必將提高管理者的工作效率。
為了減少機房管理者的工作負擔,增加管理的效率與便利性,我們採用國家高速網路與計算中心所研發的自由軟體Clonezilla 再生龍[3],藉由Clonezilla的運用,我們能將繁雜的安裝過程簡化到僅須對一台電腦做設定即可,如圖1所示。
圖 1 利用Clonezilla網路群播的方式進行電腦教室作業系統安裝
由於使用Clonzilla(再生龍)我們先在一台電腦製作標準映像檔,接著利用Clonzilla所提供的群撥(Multicast)功能去對剩下的電腦進行系統安裝,使用這樣的方式我們可以很快速完成電腦機房的安裝或系統升級,再配合上我們在用戶端電腦的設定,兩者並用可將機房管理的工作減至最小。
IV. 實驗室架構規畫
4-1. 網路規劃
我們由校園網路核心交換器規劃了5條高速乙太網路實體線路(Gigabit Ethernet),3條連接核心交換機與電學大樓伺服器機房,而2間電腦機房則各使用1條與校園網路連結,如圖2所示。
圖 2 網路架構
對於電腦機房內之IP位址設定我們採用動態主機設定協定(DHCP, Dynamic Host Configuration Protocol),此協定使用一台主機做為伺服器端用以配送IP位址(Internet Protocol Address),用以減少管理者須手動對每台電腦做IP位址設定所消耗的時間。由於DHCP主要是採用動態給定的方式,如果沒有對DHCP主機做設定,該機房內之電腦所取得的IP位址並無任何規則可循,若發生流量異常便無法立即得知該電腦的確切位置。所以為了管理方便我們是採用對應MAC位址(Media Access Control address)的IP配送,這種方式除了可以明確定義電腦的IP位址之外,還可以限制外來電腦的網路功能,只要該機器之MAC位置沒有在我們所設定的範圍內它便無法連接至網路。
圖 3 Microsoft Windows 應用程式
4-2. 伺服器架構
目前我們總共使用3部HP DL380G5 Sever,2部Sun Solaris Workstation,並增設有一部總容量4TBytes的儲存設備用以儲存共享資料。連接方式由圖 4所示
圖 4伺服器架構
磁碟陣列主要提供了資料儲存與備份的能力,我們將所有使用者家目錄的資料皆存放於該磁碟陣列中,採用Raid 5的備份功能,以確保用戶資料的安全與完整性。而使用者帳戶驗證方面我們一樣是由NIS進行統一管理,並設置Samba Server以利資料於Windows的存取。達成資料在多平台的使用。我們也將部分軟體的License Server與相關的安全性設定整合到伺服器上,故不僅可以控管使用者的來源,搭配上NFS的使用,也可達到軟體共享的機制。
圖 5 Unix/Linux檔案架構
4-3. 用戶端電腦設定
在用戶端電腦的部分,我們在所有的電腦皆設置了雙重開機模式(Microsoft Windows XP, CentOS Linux),使用者能在開機時透過Grub選單選擇所需之作業系統。
Windows作業系統,如同先前所提到的,我們所需要使用的軟體有可能需要使用到系統管理員的權限,但是,開放系統管理員權限卻有可能會被使用者進行的破壞。我們採用過去受限制的使用者的方式,再增加一些權限設定,由於Windows所預設的‘受限制的使用者’雖然不能安裝、設定軟體,但在此權限下使用者還是可以變更一些個人設定,因此我們又加上了一些限制加以管制,並於開機時強制直接進入此使用者。在此設定下我們也增加了一個‘管理者’的權限,以便不時之需。
CentOS Linux 作業系統中我們採標準工作站安裝程序,並搭配自行設計之NIS/NFS設定程式將系統自動掛載於伺服主機。為了維運的便利性,我們撰寫了一些自動執行的Script File能快速針對帳號進行整合管理。而為了增加其他使用者便於使用我們所提供的資源,我們也提供了相關的NFS/NIS設定執行檔,詳細敘述於表 6所示,故可將此維運流程簡化至數分鐘,大幅簡化機房管理的工作負擔。
V. 建置成果與實例
我們將現有的二間電腦教室內約80部個人電腦,如圖2所示,皆依前述之架構,重新安裝作業系統與相關設定,建制完成之後,所提供的運算資源皆在本地端的個人主機之上,不僅能提供高效能的運算資源也給予使用者一個穩定的系統。
5-1. 課程支援
在晶片設計相關課程中(計算機網路、VLSI設計導論,數位ASIC設計導論、電子實驗、類比積體電路設計與電腦輔助數位電路設計,等等),全班學生們可以於教室內,任一部電腦,同時使用NCTUns、SpringSoft、Cadence、Synopsys、Mentor Graphic、Altera 與Xilinx等全系列之設計工具,進行硬體描述語言的相關功能模擬,邏輯合成,時序驗証,佈局與繞線。以往多位學生同時使用X-Win32軟體、仰賴伺服器,對其進行遠端連線工作,使用者在課堂使用上發生運算效能不足,造成系統不穩定甚至當機的情況,已不復見。
5-2. 跨領域學程教學研究環境
在推動跨領域學程教學與研究的過程之中,學生們要使用許多的工具與程式語言來進行軟體、硬體系統協同設計,一個完整而且具一致性的設計環境,對學生學習、老師教學與研究的過程有著非常大的助益。
以NetFPGA開發環境舉例來說,NetFPGA是美國史丹佛大學(Stanford University)為了研究發展下一世代網路交換器與路由器設計而開發之硬體基礎發展平台。為了進行相關開發工作,平台環境必須包含Xilinx的EDK、ChipScope,Mentor的Modelsim,Synopsys VCS等EDA工具以及C、Perl、Java、Python等程式語言。基於我們已建置好的基礎環境,我們可以在短時間之內佈建提供完整的NetFPGA開發環境,讓同學們在教室內的任一部電腦,進行Verilog RTL模擬、邏輯合成、FPGA的設計流程與系統開發。
5-3. 虛擬機器的使用
由於個人電腦的效能日益增強,在原有作業系統下執行虛擬機器運行多系統已非常普及,由於我們所提供的集中資料存取,搭配建置好的虛擬機器映像檔,使用者能在電腦教室內直接取得個人資料並使用相同的軟體以進行研究或課程作業,而不須更動原有的作業系統。
另一方面,由於有些工具軟體在執行時需要系統管理員(root)的權限,而管理者權限是不該被允許給學生在電腦機房的環境之中。此時,虛擬機器便提供了一個方便的解決辦法,例如:對網卡進行封包擷取的Libpcap與OpenSSH 函式庫的使用,或是由交通大學所提出的網路模擬軟體NCTUns 的使用…等。經由虛擬映像檔的提供,老師可以很快的提供學生一個完整的開發環境,也無須擔心電腦機房的設定被有心人士破壞。
VI. 效能評估
6-1. 機房建置與維運
基於我們所規劃的實驗室架構,開始發展如所列之自動管理程序,並安裝作業系統,若以過去的管理方式於電腦教室內建置40部機器大約需花上一周的時間,但我們僅在一天之內便將機器就位,並能完整提供所有的設計軟體。而以系統使用來說,我們建置完成後,承載2學期12門課程的使用皆無任何系統發生狀況或無法使用之情事。
表 6 機房建置所建立之Script File
6-2. 運算效能測試
我們主要針對由電腦教室個人電腦主機運算(Local)與使用遠端連線使用伺服器運算資源(Remote) 兩種方式進行效能的評估。為了量測其最極端的系統計算與頻寬消耗之狀態,我們於多部個人電腦主機(2~40)同時執行模擬程序。個人電腦中央處理器的規格為Intel Core2 Duo E2200 2.2G,主記憶體為2GB DDR2 667。遠端連線使用伺服器的規格為Intel Xeon - X5130(2.0G)雙核心處理器×4,4 MB Level 2 快取記憶體,和2 GB(1 × 1 GB)標準記憶體。
首先我們測試兩者在執行硬體描述語言的模擬時所呈現的效能。在這個部分,我們使用由NetFPGA之Reference NIC進行網路卡的Verilog RTL模擬測試。,這個模擬所使用的模組包涵了Tri-Mode Ethernet Media Access Controller (TEMAC) [4], 32-Bit Initiator/Target for PCI [5]等矽智財模組,測試在網路卡上的四個Gigabit Ethernet埠分別接收、傳送3個60Byte的網路封包並觀察其訊號流向。以模擬結果來看,單一個人電腦主機普遍運算時間約在40~60秒,記憶體使用量約在1.2GB上下。表7為平均測試結果,在遠端連線使用伺服器集中運算模式中,執行至8個使用者同時模擬的時候,伺服器運算了2個小時後系統已經無法運作而當機。
表 7 NetFPGA Reference NIC RTL Simulation 運算時間統計
經由結果我們發現如以個人電腦所提供之運算來說,其運算時間並無太大起伏,但是如以遠端伺服器集中運算的方式,由於單次運算所需的記憶體約在1.2GB,3位使用者的運算便使用了全部的記憶體與虛擬記憶體,以致運算時間急遽升高。
其次,我們執行Synopsys Astro進行一顆RISC CPU實體層的佈局測試,該CPU是由Tom Coonan’s[6]所設計的一顆8-位元微控制器並提供33個指令,表8為相關之設定參數,實際佈局時間與模擬之比較,請見圖9所示。
由佈局時間可發現,在本地電腦的運算,當電腦數量增加之後由於取檔案的頻寬有限,其運算時間會有些許增加,但並無較大的時間起伏,而在伺服端集中運算的部分,由於佈局所需要之記憶體約略為300MB左右,當使用者達到13人次以上會對伺服端計算時間有非常大的影響。
表 8 Astro佈局參數
圖9 Remote/Local運算時間比較,以NetFPGA Reference NIC RTL Simulation與Astro RISC8[6] Place & Route為例
6-3. 網路頻寬效能測試
在伺服器端所量測得到的最高瞬時流量,發生在40部個人電腦同時執行RISC8 繞線佈局模擬程序的最初始點,達到900Mbps,如圖10所示。而其延續的時間不到全部時間的5%,請參見圖11。這是由於執行程序最開始時40部個人電腦同時對伺服主機要求大量的應用程式資料與製程佈局等參數。其總執行時問於網路平均之頻寬消耗量不到30%。
圖 10 伺服器端最高瞬間網路流量
VII.未來展望
以目前我們所使用NFS/NIS通訊協定,是早期由昇陽微系統公司基於TCP/IP而開發的網路檔案共享系統。與SAMBA的機制,己經是行之多年,非常普及的網路架構
了。其主要是可以透過網路,使用不同的機器、不同的作業系統而能夠彼此分享資料。它有著簡單、建置容易等特色,非常適合小型區域網路內部之運作。但是其安全性、擴充性、與效能不足的問題,無法適用於更大型的網路架構中。
近年來有許多的分散式檔案系統[7,8,9]改善了前述的諸多缺失。其中AFS(Andrew File System)是一個廣被接受的分散式檔案系統,它改善了許多現有的缺點,例如NIS所採用的認證機制中,其傳送之帳號密碼並無加密演算,對使用者的資料安全性有相對的風險。AFS採用了Kerberos的機制,來保護用戶端的資料安全。而AFS的另一項特點則是使用快取的方式來進行資料存取,減少網路存取的流量並增加存取效率。其擴充性佳、可靠性高,部分電腦故障不會造成系統癱瘓,利於在廣域網路上執行。因此,AFS被國外眾多大學採用[10,11]為校園網路之分散式檔案系統。
我們著手進行OpenAFS[12] 相關之實驗與建制,在大學部專題研究中也已完成小規模的環境建置[13],期望在不久的將來能將AFS(Andrew File System)實際運用在校園環境。
圖 11 四十部個人電腦主機,同時執行繞線與佈局程序(總時間約為400秒),綠色與紅色線各代表流出與流入伺服器端之網路流量。
VIII. 總結
一位學生(電機系、企管系、或是建築系,等任一學系) ,可不可以在全校的任何一個電腦教室的任何一部電腦中,使用同一組帳號密碼,登錄到自己的家目錄中、使用他先前所儲存的資料,在同樣的電腦環境中,使用他所需要用到的應用軟體與工具來完成老師指定的課業和研究工作?而且這計算環境的效能並不會因為使用人數的增多而有所減損。這看似簡單與直覺的問題,間接反應出學校對這基礎建設品質的重視程度。更反應出學校教學品質與研究的競爭力[1] 。
在本文中,我們將中原大學數位邏輯電路曁系統晶片跨領域學程共構實驗室之建制與規劃緣由具體呈現,在有限人力與成本的考量之下,利用現有的個人電腦搭配高速網路與檔案伺服器,承載數位邏輯電路、網際網路、訊號處理、系統晶片設計、等跨領域學程之教學及研究需求。
圖12 OpenAFS之實驗建制[13]
參考文獻
[1] 林盈達, “IT進步指標分析:參訪美日大學IT部門心得”,2009年2月, http://speed.cis.nctu.edu.tw/%7Eydlin/miscpub/ITreport.pdf
[2] 國家晶片系統設計中心, http://www.cic.org.tw/cic_v13/main.jsp
[3] 國家高速網路與計算中心, http://drbl.nchc.org.tw/clonezilla/
[4] Xilinx IP Core - Tri-Mode Ethernet Media Access Controller (TEMAC), http://www.xilinx.com/products/ipcenter/TEMAC.htm
[5] Xilinx IP Core - 32-bit Initiator/Target for PCI, http://www.xilinx.com/products/ipcenter/DO-DI-PCI32-IP.htm
[6] Tome Coonan, “RISC8 Verilog Synthesizable Model” , http://www.mindspring.com/~tcoonan/newpic.html
[7] Coda File System, http://www.coda.cs.cmu.edu/
[8] OpenAFS, http://www.openafs.org/
[9] Google File System, http://labs.google.com/papers/gfs.html
[10] EOS Engineering Computing, North Carolina State University, http://www.eos.ncsu.edu/about/
[11] AFS at Stanford, Stanford University, http://www.stanford.edu/services/afs/
[12] Berlin Heidelberg, “OpenAFS for Enterprise and Education “, Springer-Verlag 2007
[13] 施谷燁, 林家毓,”分散式檔案系統OpenAFS的實現與研究” ,中原大學電機系專題研究報告,2008