
為了推廣Proxmox VE 3與OpenVZ虛擬應用樣板的使用,這篇以圖文解說來教大家安裝Proxmox VE 3以及在Proxmox VE 3裡面建立OpenVZ虛擬機器。
To promote Proxmox VE 3 and OpenVZ virtual appliance template technology, I write this guide article to teach you install Proxmox VE 3 and show you how to use Proxmox VE 3 to create OpenVZ container (virtual machine).
技術簡介 / Introduction
Proxmox VE
Proxmox VE是Proxmox公司推出的開放原始碼虛擬機器管理系統,目前已經推出到第三版,叫做Proxmox VE3。
Proxmox VE 3是相當容易安裝與使用的虛擬機器管理系統。他能結合OpenVZ與KVM兩種技術提供IaaS層級的雲端服務。而且是開放原始碼軟體,我們可以自由下載與使用。
OpenVZ與虛擬應用樣板 / OpenVZ & Virtual Appliance Template
OpenVZ是相當成熟的虛擬化技術,架設Linux網站的效率非常高。用OpenVZ通常是架設網站伺服器。網路上提供了相當多的樣板可以下載、安裝,一個樣板就是一個完整的網站服務,例如Drupal、Joomla。你只要下載樣板、建立虛擬機器、設定網路、開機,用瀏覽器打開該虛擬機器的位置,一個完整的服務就這樣建好了。
以我的經驗,一台普通的伺服器可以架設20台以上的OpenVZ,全部都能正常提供服務。相較之下,以KVM技術來架設的虛擬機器最多大概不能超過3台。
OpenVZ跟現在主流的KVM、VMware等技術不同,只能虛擬化Linux,也不能相容大多雲端平台,只能在少數雲端平台中架設,例如這次要介紹的Proxmox。
以下就教大家如何建立運行OpenVZ所需要的雲端平台Proxmox VE,以及用OpenVZ來建立虛擬機器吧。
安裝環境 / Installation Environment

安裝Proxmox VE 3的硬體環境建議為:
- CPU:最好是64位元架構。雖然32位元仍可以正常運作。如果CPU支援虛擬化指令集,例如Intel VT-x,那就可以用KVM虛擬機器。但是OpenVZ不管CPU有沒有支援虛擬化指令集都可以使用。
- 記憶體 RAM:建議大於4GB,至少也要512MB。
- 硬碟空間:建議大於60GB,至少也要4GB。
- 網路:要配給Proxmox VE一個IP,底下的虛擬機器也建議擁有獨立IP。(如果IP不夠,可以嘗試架設虛擬區域網路,請看我之前寫的介紹)
如果在實體伺服器上安裝Proxmox VE 3,建議盡量以以上參數為主喔。
使用VirtualBox安裝Proxmox VE 3 / Install Proxmox VE 3 on VirtualBox
你也可以用VirtualBox來架設Proxmox VE,提供自己測試使用。以下我就是用VirtualBox來架設Proxmox VE,配置參數為:
然後接著把虛擬機器開機,就開始來安裝Proxmox VE 3囉。
Step 1. 安裝Proxmox VE 3 / Install Proxmox VE 3
開機之後,虛擬機器會因為光碟引導的關係,出現以下Proxmox安裝歡迎畫面。

按下Enter之後進入下一個畫面。一開始會因為Proxmox VE要從DHCP抓取IP的關係,需要稍微等待一下。然後接著會顯示授權條款,按Next繼續。

然後接著會顯示Proxmox VE的說明,按Next繼續。

然後接著要輸入鍵盤配置。在Country輸入Taiwan,Proxmox VE會自動辨識我們的鍵盤是U.S. English。按Next繼續。

接下來要輸入密碼跟E-Mail。密碼兩次都要相同,在此以「password」為例子作為Proxmox VE的密碼。E-Mail是給系統通知時寄送通知管理者的信箱位置。輸入完畢後按Next繼續。

接下來設定網路。Hostname (FQDN)必須是完整的網址,如「promxox.demo.com」。沒有在DNS上正式申請也無所謂,主要是辨識機器之用。下面是網路的設定,這是由DHCP抓取而來的設定。請在這裡就確定Proxmox VE的網路位置,不然之後很難修改。設定完畢之後按Next繼續。

接著開始安裝,大概等個30分鐘。

安裝完成,按Reboot重新啟動。重新啟動之後記得要把Proxmox VE的光碟拿掉喔。

重新啟動之後就會看到Proxmox VE的指令列端介面。至此為止Proxmox VE安裝就算完成囉。

Step 2. 進入Promox VE網頁管理介面 / Proxmox VE Central Web-base Management
Proxmox VE是沒有桌面端操控介面,大部分操作是透過網頁管理介面來進行。你看到指令列端的歡迎訊息寫著「https://192.168.56.101:8006」就是它的網頁管理介面的位置。以下操作都是在網頁管理介面中進行。我是使用Firefox 22.0來開啟Proxmox VE 3的網頁管理介面。

開啟網址:「https://192.168.56.101:8006」(注意是https,不是http)之後,你會先看到「這個連線未受信任」的訊息。這是因為Proxmox VE使用未受認證的SSL來連線。你可以花錢購買一個SSL認證來讓Proxmox VE連線狀況正常,不過通常我們會讓Firefox把它加入安全例外。
作法如下圖,步驟如下:
- 我了解此安全風險
- 新增例外網站
- 確認安全例外

接著進入Proxmox VE 3的網頁管理介面。登入畫面要你輸入帳號密碼。預設帳號密碼如下:
- User name: root
- Password: password (就是上面安裝Proxmox VE時要你輸入的密碼)

接著會正式進入到Proxmox VE網頁管理介面,這樣就可以進行虛擬機器的建立、管理等囉。

Step 3. 上傳虛擬應用樣板 / Upload Virtual Appliance Template
要用OpenVZ建立虛擬機器,必須要從虛擬應用樣板開始著手。請先從以下網址先下載你需要的樣板吧:
以下介紹是用Drupal的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz為例子介紹。
首先是在Proxmox VE的網頁管理介面中,從左邊的Server View裡找到local (proxmox)這個本機節點(因為Proxmox VE可以串連很多台Proxmox VE做集叢式管理,所以未來還可以加入其他節點),然後選擇標籤「Content」,再按下面的「Upload」開啟上傳對話視窗。

先選擇上傳檔案類型為「OpenVZ template」,也就是OpenVZ的虛擬應用樣板。再來選擇剛剛你下載的樣板檔案debian-6.0-drupal_6.26-2_i386.tar.gz,然後按下Upload。

上傳完成之後,Content裡面就有一個樣板了。確認樣板存在後,我們就可以來建立OpenVZ的虛擬機器囉。
Step 4. 建立OpenVZ虛擬機器 / Create OpenVZ Container (Virtual Machine)
OpenVZ的虛擬機器叫做Container,簡稱CT。有了虛擬應用樣板之後,你可以在Proxmox VE的網頁管理介面右上角的「Create CT」來建立OpenVZ的虛擬機器。

建立步驟是以精靈的方式一一跟你確認虛擬機器的參數。
第一步 General:主要要確認Hostname(主機名稱)與Password。主機名稱我輸入drupal,表示這是一個專門運作Drupal系統的虛擬機器。密碼我設為「password」。然後按Next進入下一步。

第二步 Template:選擇剛剛上傳的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz吧。按Next進入下一步。

第三步 Resources:此處設定記憶體、硬碟大小與CPU用量。
- 記憶體:Memory是記憶體、Swap是以硬碟模擬的記憶體,在Linux中兩個參數最好相等。OpenVZ技術的記憶體是採共享的機制,因此上限只要不要超過實體機器記憶體的數量就可以了。
- 硬碟:Disk size (GB),以GB為單位。用多少就是多少,沒有KVM或VMware那種動態硬碟,越用會讓硬碟越來越大的問題。
- CPUs:使用CPU的額度,多核心CPU中才會去設定。
對Durpal來說,除了硬碟可以考慮設置大一點之外,其他都用預設參數即可。設定好之後按Next進入下一步。

第四步 Network:請設定固定IP,以Routed mode (venet)網路卡的形式,給予一個固定的IP吧。因為我現在是在VirtualBox的Host-only網路配置下,所以可以給它一個192.168.56.152的IP使用。這個IP非常重要,待會開啟Drupal就要用這個IP來連線喔。設定好之後按Next進入下一步。

第五步 DNS:設定DNS資訊。沒有特別需要用Domain Name操作什麼的話,此處可以先不設定。這些參數之後還是可以透過Proxmox VE的網頁管理介面來修改,就算設錯也沒關係。在此我就不設定,直接按Next進入下一步。

最後是確認OpenVZ虛擬機器的資訊,沒問題就按Finish開始建立虛擬機器。

建立虛擬機器大概不到五分鐘,出現「TASK OK」就算建立完成。

建立完成之後,你會發現左邊的ServerView多了一台100 (drupal),這就是剛剛建立的OpenVZ虛擬機器。
接著我們要先設定他會在Proxmox VE啟動的時候自動開機。點入100 (druapl)之後,進入Options,在Start at boot那項雙擊兩下滑鼠,編輯該選項。

將Start at boot打勾,按OK完成設定。

然後我們還要補設定一個網路參數。到Network頁面中,在Add按鈕下新增Network Device (veth)。

新增Name為eth0的網路卡。按下Add之後確定。

最後按下Start啟動虛擬機器。

到此為止,OpenVZ的虛擬機器就建立完成囉。
Setp 5. Drupal安裝與使用 / Drupal Installation & Usage
還記得剛剛建立OpenVZ虛擬機器的時候,我們設定了「192.168.56.152」作為它的IP嗎?一般來說,只要直接開啟這個IP,就能夠順利使用虛擬應用樣板的系統。
不過在使用之前,我們最好還是先閱讀一下Drupal虛擬應用樣板介紹網頁,看看我們還得要做些什麼東西才能使用Drupal。

根據Drupal虛擬應用樣板介紹網頁的敘述,接下來還要安裝Drupal的步驟。請用瀏覽器開啟「http://192.168.56.152/install.php」

進入Drupal的安裝畫面。安裝步驟很容易,我就不講了,可以參考sunchiahom的Drupal 6安裝流程介紹。
最後安裝完成之後,就可以直接用 http://192.168.56.152 來連線囉。

Step 6. 用指令列操作OpenVZ虛擬機器 / OpenVZ Container Console
Proxmox VE提供了主控台(Console)端的操作介面,讓我們能以指令列操作OpenVZ虛擬機器。如果你不是熟悉Linux的網管人員,可以不需要進入這一步操作。
開啟方式是在該虛擬機器中,按下右上角的Console。

接著會跳出一個Console端的視窗。Console是以Java Applet執行,常常會有因為太久沒更新過期而Firefox禁止我們開啟的現象。你可以按左上角的紅色積木來啟用Java。

啟用之後,Java也會跳出安全警告。按下「繼續」進入Console端。

以下就是Console端的畫面。登入帳號密碼為:
- login: root
- password: password (就是剛剛建立OpenVZ時設定的Password)

下一步:Proxmox VE結合主流的雲端平台 / Next: Integrate Proxmox VE with Cloud Platform
我上面也有提到,Proxmox VE的OpenVZ虛擬機器跟現在主流的雲端平台,像是Open Stack、Open Cloud或Open Nebula都不直接相容。Open Nebula可以安裝OpenVZ Plugin,可是手續挺複雜的樣子。
因此在我看來,最簡單的整合方式還是直接以KVM技術架設Proxmox VE,然後用Proxmox VE來管理底下的OpenVZ虛擬機器。概念圖如下:

上述架構中,主要是以Ezilla(使用OpenNebula雲端平台)為主的架構,然後之中架設虛擬機器安裝Proxmox VE,再到Proxmox VE中建立OpenVZ虛擬機器。這時Proxmox VE跟OpenVZ虛擬機器都會是列在同一個區域網路,可以經由Ezilla統一管理。但是管理介面就會區隔開來,平時主要是以Ezilla來管理,而要用OpenVZ虛擬機器時,再進到Proxmox VE來管理。
這個方法看起來可行,可是實際上還沒做過。這之間還有很多網路問題,像是Proxmox VE會需要多個連接埠來提供Console端的連線,在上述架構中就會遇到問題。不過Console端其實很少使用,平常都會用直接透過SSH連線操作OpenVZ虛擬機器,所以不用Console端也沒問題。
那剩下就是實作了,希望最近有機會能把它完成。
(more...)
Comments