Container技術三部曲

iThome 相關報導請參考

Container是以應用程式為中心的虛擬化

不同於常見的傳統虛擬化技術如vSphere或Hyper-V是以作業系統為中心,Container(或可稱為軟體貨櫃)技術則是一種以應用程式為中心的虛擬化技術。兩者都是為了要更方便地將一套應用程式所需的執行環境打包起來,來能簡化複雜的IT架構方便管理、移動或部署各種應用程式,而不需要讓開發人員自行管理執行這個應用程式所需的繁多目錄和大量檔案。

傳統虛擬化技術從作業系統層下手,目標是建立一個可以用來執行整套作業系統的沙箱獨立執行環境,習慣以虛擬機器(Virtual Machine)來稱呼。虛擬機器用軟體模擬出vCPU、vRAM等實體伺服器的功能,讓作業系統看起來是身處於實體機器中,所以,可以在這個虛擬機器中安裝各種作業系統,接著安裝應用程式所需的執行環境,如網站伺服器、資料庫程式、中介軟體等。傳統的虛擬化技術能將軟體和硬體的相依關係切開,讓軟體盡可能地不用綁定於特定廠牌或規格的硬體。

傳統虛擬機器的優點是安全性高,對作業系統而言,看起來就像是在一臺正常的實體機器中,就算多個虛擬機器在同一臺實體伺服器中執行,虛擬機器間也不會知道彼此的存在。這也就出現了Host OS和Guest OS的架構,負責執行虛擬化平臺的是Host OS,而在虛擬化平臺內建立的虛擬機器內則是執行Guest OS。

但是將作業系統打包進虛擬機器中的後果是,任何虛擬機器都得先裝妥一套作業系統後才能開始執行應用程式,不僅導致虛擬機器的建立速度,受限於作業系統的開機速度,得等上數十秒到數分鐘才能新增一個虛擬機器。虛擬機器的映象檔所需容量也不小,即使要執行的程式碼只有10KB,也得安裝一整套上百MB的作業系統軟體才行。執行作業系統本身也得消耗不少的運算資源,倘若一臺實體伺服器內要執行100個虛擬機器,就等同於要執行一百套Guest OS,即使虛擬化技術有許多改良來解決運算資源的利用率,但Guest OS仍瓜分了不少應用程式能用的實際運算資源。

在OS層內建立虛擬環境

電腦科學家們早在現代虛擬化技術成熟前,十幾年前就開始嘗試發展另一種虛擬化技術Container,不是在OS外來建立虛擬環境,而是在OS內的核心系統層來打造虛擬機器,透過共用Host OS的作法,取代多個Guest OS的功用。Container也因此被稱為OS層虛擬化技術。

Container直接將一個應用程式所需的相關程式碼、函式庫、環境配置檔都打包起來,並建立了嚴格的資源控管機制來分配Host OS上的系統資源,避免因這個Container占用資源或當機時,而影響了Host OS或其他Container的執行。

因為Container是利用系統核心控管機制來分配Host OS資源,也就不需要另外安裝Guest OS個別管理。也就是說,當一臺實體伺服器內建立了100個Container時,這100個Container共用同一個Host OS的核心,再利用OS內建機制來分配每一個Container可用的資源。因為Container不需要執行OS,因此,一臺實體伺服器可以執行的Container數量,遠遠高於傳統虛擬化技術的虛擬機器,甚至可以有數倍的差異。一臺有能力執行100個測試環境VM的實體伺服器,往往能執行2、3百個用Container提供的測試環境。這批Container的映象檔案所需儲存空間,也因不用安裝整套OS而比用VM映象檔來得少。不論處理器資源或儲存空間的利用上,Container技術都遠優於伺服器虛擬化技術。

以上,摘錄自「Docker風潮席捲IT世界

搬遷後的教室電腦系統重建工作

9月12日上午9:00,合志工程師至校協助本校搬遷後教室電腦系統的重建工作。

  • 更換 1 顆 Z430 電腦的硬碟,內容為合志資訊公司事先做好的行政電腦專用碟。
  • 使用 DRBL Live 將整顆硬碟製作成映像檔,將映像檔存於一台 Windows Server 2008 的資料碟中,此映像檔可作為 L480 行政電腦系統還原用。
  • 改電腦系統成本校教室電腦用專用碟,將「我的文件」、「我的圖片」、「我的最愛」、「下載」、「桌面」移至 D 碟,安裝老師教學用的常用軟體。
  • 將整顆硬碟製作成 ACER 電腦一鍵還原的映像檔。
  • 使用 DRBL Live 將整顆硬碟製作成映像檔,將映像檔存於一台 Windows Server 2008 的資料碟中,此映像檔可同時作為 L480 及 Z430 電腦系統還原用。
  • 註:使用 Windows Server 2008 的資料碟,用來收集 DRBL 製作的電腦硬碟映像檔,須先建立一個資料夾,並將此資料夾存取權限設定好,設定為網路芳鄰的共用碟,方能供 DRBL 使用。(新增一個專供此用途的使用者。)

9月15日上午,於仁愛國小參加三重區資訊組長會議,會後帶回 DRBL Live 及 Clonezilla Live 開機隨身碟。

9月15日下午,夥同劉孝宏、林哲園於仁204電腦教室整理電腦:

  • 整理待報廢的電腦,將可再利用的零件取下。
  • 試著使用 DRBL Live 讀取網路芳鄰上的映像檔,還原整間電腦教室的電腦,但因時間不夠,先將所有電腦設為網路開機。
  • 先試著將已做好的映像檔,以 Clonezilla Live 還原電腦機房中一部 L480 電腦,成功還原。
  • 接著將已做好的映像檔,以 Clonezilla Live 還原仁204電腦教室中一部 Z430 電腦。
    • 還原後,Z430電腦重開機,作業系統發生嚴重的錯誤。
    • 問題:為何同一支映像檔,L480 電腦能正常還原,Z430電腦卻不行?
    • 電腦機房中,製作映像檔的母機(Z430),發現有 100 多支 Windows Update,待更新完畢後,再製作新的映像檔。
    • 已正常還原的L480電腦,更新電腦名稱(T+財產編號後3碼),並更新 Windows Update。

9月16日:

  • 製作映像檔的母機(Z430),更新好 Windows Update,開始重製作新的映像檔。
  • 以新的映像檔,再次以 Clonezilla Live 還原仁204電腦教室中一部 Z430 電腦,還原後,仍然無法正常開機。
  • 問題:為何無法正常還原仁204電腦教室中 Z430 電腦,卻可還原電腦機房中的 L480 電腦?
  • 下午,於教研中心與仁愛國小資訊組長討論此問題,懷疑是 Z430 電腦開機碟的SATA模式未正確設定所致。

9月17日:

  • 檢視製作映像檔的母機(Z430)的 SATA 模式為「AHCI」,將以 Clonezilla Live 還原的 Z430 電腦的 SATA 模式改為「AHCI」,再重新開機,果然能正常開機了。【註:什麼是AHCI模式?AHCI全名 Advanced Host Controller Interface(進階主機控制器介面),它是 Intel 所主導的一項技術,可以發揮SATA硬碟的潛在加速功能,大約可增加30%的硬碟讀寫速度。】
  • 使用 DRBL Live Server 還原仁204整間教室的電腦,但只還原到第一個分割區,客戶端電腦就發生錯誤,連試 2 次都失敗。

9月18日:

  • 重新製作 DRBL Live Server 隨身碟,再次使用 DRBL Live Server 還原仁204整間教室的電腦,依然失敗。問過合志工程師,仍然無解。
  • 只得使用 Clonezilla Live ,還原仁204整間教室的 Z430 電腦,一次一台,由於時間不夠,只還原了18台電腦,其他的電腦,下週一再繼續。
  • 為了加速還原的速度,製作了 4 顆 Clonezilla Live 隨身碟。(把原 DRBL Live,全改成 Clonezilla Live)
  • 使用 Clonezilla Live 隨身碟開始還原電腦的系統時,可先行取下隨身碟,如此可使用同一顆Clonezilla Live隨身碟,同時還原許多台電腦,不過電腦還原的速度會越來越慢。
  • 電腦還原後,須更改電腦名稱、電腦時間,部份電腦由於主機板不同,系統會重抓驅動程式,無法正常抓驅動程式者,規劃於全間電腦還原後再行處理。

9月21日:

  • 9月18日出問題的 Z430 電腦,一律重灌。
  • 使用 Clonezilla Live ,還原仁204電腦教室及仁206多媒體教室中所有的 Z430 電腦,共計47部電腦。
  • 部份Z430電腦故障,至「新北市資訊設備線上報修系統」報修。

9月23日:合志工程師至校修復數部線上報修的Z430電腦。

9月24日:由於Z430電腦內建VGA同步器,為了避免直接連接單槍吊架VGA線,造成連接介面的損壞,申購VGA延長線(一條公母頭的VGA線) 50 條。

10月8日:VGA延長線 50條送貨到校。

10月14日:修復 1台 Z430電腦的光碟機。

10月15日:發下五年級各班教室電腦–Z430電腦,共計14台。

10月16~20日:移仁204電腦教室中所有的Z430電腦至仁206多媒體教室