Linux伺服器 Linux伺服器

資工所專業課程上課教材

資工所專業課程 > 課程內容 > 專題一 - 虛擬機器主機系統安裝與伺服器穩定性測試

專題一 - 虛擬機器主機系統安裝與伺服器穩定性測試

上次更新日期 2019/07/03

在這個專題研究中,我們會有很多的任務需要不同的 OS 層級系統來完成,但是我們又不想要每次都重新安裝一套新的系統,那該如何是好? 這個時候就得要透過虛擬化的功能了!我們將設計一個假的內部區域網路環境,並透過虛擬化功能,建立出多部邏輯上互相獨立的作業系統, 讓大家可以掌握多部作業系統來達成許多不同的設計!

因為我們主要僅透過一部主機來完成所有的任務,同時,這些任務基本上都不會太消耗 CPU 運作資源,因此 i5 以上等級的系統應該就很夠用了! 只是,記憶體的要求恐怕需要比較大量些,因為每部虛擬機器都需要大約 3~4G 的記憶體使用量,所以,記憶體的需求會比較大! 最好有 12G 以上的記憶體,這樣用上比較不會出問題。這部虛擬化的母機器將使用 CentOS 7 來作為底層系統,安裝時,請選擇『虛擬化主機』的功能喔。

  • 硬體的安裝與主機板內建磁碟陣列的使用
  • 主機 CentOS 作業系統的安裝
  • 系統穩定性測試
  • 其他實驗室硬體使用的注意事項

硬體的安裝與主機板內建磁碟陣列的使用

以鳥哥實驗室為例,我們實驗室需要管理整間電腦教室的環境,所以,如果需要測試時,總是需要好多好多電腦的環境。 只是,如果這樣的話,光是讓每組專題學生做測試練習,恐怕電腦主機的初設費就會很要命!而使用上的耗電量與操作時產生的廢熱, 也是一個很麻煩的問題!此時,虛擬化功能就很重要了!

但是目前的世代中,如果需要使用虛擬化,最好是 CPU 有支援虛擬化功能最佳!通成主流的 CPU 幾乎全部都有虛擬化的支援了! 所以,如果你買的是新的 PC 作為伺服器使用,那大概都是沒問題!行得通。但如果你跟鳥哥一樣,主要是選擇一堆堪用機器來搭建時, 那就得要注意囉!一般來說,目前 (2019) 還能動的機器設備,只要是 i5 以上等級的 CPU,大概都是支援虛擬化的!所以, 只要是 i5, i7 都沒問題!

而因為我們需要在這部主機裡面架設好一堆虛擬機器,因此就得要有比較大量的記憶體!通常具備 12G 左右的記憶體應該是還夠用來測試! 如果低於 8G 以下,恐怕就比較不合適。所以,請大家開始挑選硬體吧!

此外,因為每一部主機都需要有磁碟,因此,這部母系統的磁碟也不能太小!同時,因為所有的資料都在上面,因此磁碟容錯也是很需要考慮的! 由於我們沒有多餘的錢去買硬體磁碟陣列卡,所以我們預設將使用一般主機板內建的磁碟陣列來設定類似 RAID10 的架構。 不要單純使用 RAID0,而 RAID1 的效能恐怕只是剛好而已,而 RAID5 的效能又不怎麼樣,想來想去,還是 RAID10 可能是比較好的設計方式。

  1. 硬體支援的調查:

    對於硬體來說,如上所述,我們需要知道 CPU 的型號與記憶體的容量。由於現在一般的預組裝系統,通常其型號都會貼在主機機殼上, 所以查詢一下就可以知道了。請注意看背板,然後選擇底下需要的硬體配備:

    1. CPU 為 i5 以上等級,最好使用 i7 的型號
    2. 記憶體要注意是 DDR3 還是 DDR4,而且容量最好組合能有 12G 以上,且安裝時,注意最好有雙通道,雖然沒有也沒關係, 但是既然都有,那就啟用它比較好些。
    3. SATA 硬碟安裝時,要注意插槽,目前這片主機板上面似乎有 6 個 SATA 插槽,其中有 4 個才可以組成 RAID, 其他兩個並無法變成 RAID 喔!安裝請注意。同時注意到 SATA 電源供應界面的數量是否足夠喔! 另外,磁碟容量最好都相同比較好喔!
  2. 主機板內建磁碟陣列的設計 (以 Intel 的南橋晶片為例):

    一般來說,不是太差的主機板,通常其南橋晶片都會支援磁碟陣列的建置。當然,如果你的主機板上面原本就僅有 2 個 SATA port 的話, 那可能就沒有支援磁碟陣列了。我們使用的這塊主機板是早期的 Q67 晶片,確實有 Intel 的南橋磁碟陣列晶片組的。 基本上的設定流程是這樣的:

    1. 開機按下 [F2] 來進入 BIOS 後,選擇『進階』模式,之後轉到到『進階』頁面,選擇『SATA』按鈕
    2. 將 SATA 的模式轉成 RAID (有 AHCI、RAID 與 IDE 等模式)
    3. 按下 [F10] 儲存離開,之後在進入到 BIOS 之前,按下 [ctrl]+I 進入 RAID 設計
    4. 請使用 RAID10 的機制進行處理。
  3. BIOS 的額外設置確認:

    系統要開機的時候,需要一個開機引導程式,這個引導程式除了要啟動硬體系統之外,還得要可以設定開機的裝置才行! 過去預設使用的開機引導程式是稱為 BIOS 的系統,不過這個小系統因為只能在 16 位元的環境底下執行,具有許多的限制。 後來 Intel 主導開發了 UEFI 的開機引導程式,這個 UEFI 可以預先載入一個接近 64 位元的小系統, 並且可以直接載入硬體驅動所需要的驅動程式,因此在使用上就變得相當的便利,效能也比 BIOS 好。

    不過在 BIOS 與 UEFI 的環境中,其驅動硬體的方式有點差異,因此,兩者的執行檔可能無法互通! 所以,你的開機裝置可能需要指定特定的環境才行。一般來說, BIOS 支援的是 MSDOS 分割表,而 UEFI 則支援 GPT 分割表。 此外,如果你用網路開機的話,那麼網路開機的裝置,也需要分別載入不同的驅動程式才行喔!

    在系上的電腦中,因為有新舊版本的主機硬體,所以不同的硬體支援度並不相同。系上可用的電腦 (i5 以上等級) 都支援 UEFI 環境, 因此開機可以分別選擇是使用 UEFI 還是 BIOS (通常系統會自動偵測載入,無須額外考量)。但是網路開機的網卡驅動程式, 在舊的 i7 2600 的主機板晶片組 Q67 這款系統,BIOS 內的網卡無法設定 UEFI 喔!因此網路開機是無法引到進入 UEFI 的。 不過,可以透過 UEFI 的 USB 安裝程式來處理即可。(型號為 ASUS MD710 這款)

    至於稍晚購入的 ASUS MD570 的型號中,它的 UEFI BIOS 設定,就有提供 UEFI 的網路卡 driver 了! 如果是這個型號以後購入的系統,可以透過底下方式來啟動網路開機進入 UEFI 的環境囉:

    1. 進入 UEFI 的設定畫面後,點選『進階』模式,以進入進一步的詳細設定;
    2. 在詳細設定中,上方按鈕列中,先選擇『進階』的頁面;
    3. 左側直行最底下看到了『Intel 堆疊』的按鈕,請啟動網路堆疊功能!這個就是啟用網卡的 UEFI 驅動!
    4. 再到上方案紐中,選擇『啟動』的頁面
    5. 左側直行有個『安全行模組支援』的項目,這個一定要設定為『自動』或『手動』來處理! 我們這邊選擇『手動』之後,在網路模組當中,選擇『UEFI驅動優先』的項目;
    6. 左側直行有個『快速啟動』項目,請設定為『啟動』,然後在網路裝置的部份,設定使用堆疊吧!
    7. 接下來按下 [F10] 去儲存,然後重新開機!再次進入 UEFI 界面,再次進入進階模式
    8. 在上方按鈕列選擇『啟動』之後,重新排列開機順序,記得以網路開機為第一優先,光碟第二,硬碟最後喔!
    9. 最後重新開機,你就可以看到網路開機時刻的畫面與平時常見的 BIOS 畫面不一樣了!

主機 CentOS 作業系統的安裝

這部主機最重要的任務,就是提供虛擬機器能夠運作的環境,同時提供網路參數供應 (dhcp server),以及磁碟檔案供應的功能。 當然啦,還得要提供虛擬機器網路運作情況底下的 http 服務。此外,因為許多的軟體,預設是沒有針對 CentOS 7 進行 rpm 打包, 或者是我們可能對於預打包的軟體不滿意,所以,我們也得要安裝開發環境在這個系統上就是了。無論如何,我們不會提供圖形界面 (X window), 單純使用純文字界面來操作這個虛擬機器母系統 (Host OS) 喔!

  1. 預先確認:

    你的這部 Host system 必需要使用 UEFI 的開機引導方式來安裝 CentOS 才行!就是請按照上面提供的方式,先設定好你的 UEFI 環境設定資料, 否則預設是無法安裝 GPT 的分割表喔!

  2. 開機引導裝置的設定:

    如果使用的是 USB 的安裝方式,或者是 DVD 的安裝方式,那請在開機的時候,按下 [F8] 或者依據你的主機系統環境來處理, 在出現的開機裝置中,你應該就會發現你的 USB 裝置出現兩次!一個是沒有 UEFI 一個是有 UEFI 的喔!相當有趣!此時請選擇 UEFI 的你的裝置, 這樣才能夠安裝在 UEFI 的裝置上面!

    如果是使用網路安裝的話,那麼啟動你的主機時,同樣按下 [F8],並且選擇 UEFI 的網路媒體。當然啦,你的系統得要啟動類似網路堆疊的功能, 這樣才能夠在啟動引導的過程中,對你的網路卡載入正確的驅動程式喔!

  3. 安裝程序的注意事項:

    基本上,安裝的過程與一般的 Linux 安裝並無不同,只是有幾個小細節需要先行注意即可:

    1. 進入安裝畫面前,你會看到許多的企鵝出現在螢幕的正上方。這個很重要喔!在 CentOS 7 的安裝過程中,前導的黑白畫面中, 有出現彩色企鵝才是 UEFI 的環境,沒有出現彩色企鵝則是一般 BIOS 安裝的情境,兩者安裝時,開機管理程式 (grub2) 安裝的行為與檔案放置的位置並不相同! 會影響到未來我們實做系統時,設定檔的位置喔!所以要注意!要注意!
    2. 進入安裝畫面後,語系、輸入法、安裝來源大概保留預設值就好,這個不需要更動。
    3. 安裝軟體請選擇『虛擬化主機』的項目,先選這個,若有需要其他的功能,未來我們慢慢增加即可! 例如開發環境與其他管理功能,都在未來增加即可。
    4. 安裝磁碟規劃,這個比較重要,進入這個項目後,刪除所有的既存的 partitions,然後先點選預先規劃,系統會主動的幫你規劃好分割樣式。 你就會發現一個名為 EFI system 的分割槽,那個就是 UEFI 開機所需要的分割!之後你在自己慢慢處理其他的分割項目。建議完全使用標準分割, 不必使用 LVM。做個懶人分割方式為:
      • EFI system:預設給了 200MB 左右,保留這個分割槽無須更動;
      • 根目錄 / 大約給 100G 左右,避免不小心用完所有的容量;
      • 未來操作的目錄 /vmdisk 給予全部的容量;
      • swap 大概給予 8G (跟你的實體記憶體一樣大即可) 的狀態
    5. 其他的事項,可以關閉 Kdump 這個服務,然後同時設定好主機名稱,以及 IP 等項目即可。之後就可以自己安裝! 然後設定比較嚴格的 root 密碼,以及個人使用的帳號與密碼 (密碼真的要注意喔!),之後就開始安裝系統了! 基本上,時間不會花太多啦!

系統穩定性測試

一般來說,系統在閒置的情況下,運作是不容易出問題的。但是在強力的運作情況下,例如影音轉檔、模式運作、運作 3D 遊戲、 大量進行建模任務,或者是其他操 CPU 與記憶體的情況下,有可能會造成 CPU、記憶體、電源供應器等等過熱或者是過載, 導致系統的當機。因此,在實際應用主機硬體系統之前,我們習慣進行所謂的『燒機』測試,來看看系統有沒有問題。

所謂『燒機』就是瘋狂的對記憶體進行一個一個位址的讀寫,經過大量的讀寫,會讓 CPU、記憶體的錯誤顯現!如果沒有錯誤當然就好! 然後此時系統會產生較高的熱量,同時電源供應器也會提供較高的電量~這樣連續運作程式一天,如果沒有當機, 大概這部機器就算 safe 了!可以好好的應用。

那如果出問題呢?就得要查詢到底是那一個環節出錯?是 RAID 問題?是 CPU 過熱?是記憶體過熱?還是記憶體本身顆粒有問題? 還是記憶體相容性出錯等等,需要比較詳細的檢查~抽換掉有問題的元件這樣。

出問題紀錄:在 2019 年 2 月底,同學們透過 Memtest86 進行燒機測試似乎沒事,但是在安裝好系統,並且 yum update 成功後, 下次重新開機卻出現無法登入的困擾!而且重新安裝、重新設定 RAID 均無法處理。後來發現很可能是南橋晶片出錯了, 導致磁碟無法順利被讀寫。換一片主機板 (幾乎所有的配備都沒換) 之後,系統就穩定了...

透過 memtest86 的功能,進行記憶體、CPU與 power 的穩定性測試!一般來說,至少需要燒機 24 小時以上較佳! 本週我們只要燒機經過一次記憶體完整測試即可。

因為是 Server 啊!所以測試完畢後,就請移動到小機房放置妥當,未來就透過遠端連線程式來管理這部主機囉。

其他實驗室硬體使用的注意事項

因為實驗室管理的硬體版本比較多,因此未來如果全系完整使用 UEFI 的環境時,恐怕某些系統會無法順利的被網路管理到。 因此,需要注意的是:

  • 如果 UEFI BIOS 裡面具有網路堆疊 (網路卡具有 UEFI 功能) 時,就使用 UEFI 的環境來安裝系統
  • 如果 UEFI BIOS 裡面無法啟用網路堆疊,就使用傳統 BIOS 韌體來安裝系統。

另外,由於某些版本較舊的 BIOS 可能需要進行升級,因此實驗室的夥伴們,也請根據主機板去下載適當的 BIOS 韌體檔案, 透過 UEFI BIOS 裡面的『工具』頁面,透過 USB (需要格式化成為 fat 格式才行!),然後升級上去!