2013年7月15日 星期一

Proxmox VE 3安裝與建立OpenVZ虛擬機器 / Proxmox VE 3 Installation and Setup OpenVZ Container

proxmox-logo

為了推廣Proxmox VE 3OpenVZ虛擬應用樣板的使用,這篇以圖文解說來教大家安裝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通常是架設網站伺服器。網路上提供了相當多的樣板可以下載、安裝,一個樣板就是一個完整的網站服務,例如DrupalJoomla。你只要下載樣板、建立虛擬機器、設定網路、開機,用瀏覽器打開該虛擬機器的位置,一個完整的服務就這樣建好了。

以我的經驗,一台普通的伺服器可以架設20台以上的OpenVZ,全部都能正常提供服務。相較之下,以KVM技術來架設的虛擬機器最多大概不能超過3台。

OpenVZ跟現在主流的KVM、VMware等技術不同,只能虛擬化Linux,也不能相容大多雲端平台,只能在少數雲端平台中架設,例如這次要介紹的Proxmox。

以下就教大家如何建立運行OpenVZ所需要的雲端平台Proxmox VE,以及用OpenVZ來建立虛擬機器吧。


安裝環境 / Installation Environment

2013-07-14_205049

安裝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,配置參數為:

  • 作業系統:Debian (64 bit)
  • 網路Host-only 「僅限主機」介面卡。這是重點,Proxmox VE在Host-only底下預設IP就會是192.168.56.101。
  • 硬碟:2TB
  • 掛載光碟proxmox-ve_2.3-ad9c5c05-30.iso (MEGA備份)

然後接著把虛擬機器開機,就開始來安裝Proxmox VE 3囉。

Step 1. 安裝Proxmox VE 3 / Install Proxmox VE 3

開機之後,虛擬機器會因為光碟引導的關係,出現以下Proxmox安裝歡迎畫面。

2013-07-14_012547

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

2013-07-14_012737

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

2013-07-14_012812

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

2013-07-14_012851

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

2013-07-14_013320

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

2013-07-14_013412

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

2013-07-14_013423

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

2013-07-14_101925

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

2013-07-14_102048

Step 2. 進入Promox VE網頁管理介面 / Proxmox VE Central Web-base Management

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

image

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

作法如下圖,步驟如下:

  1. 我了解此安全風險
  2. 新增例外網站
  3. 確認安全例外

2013-07-14_102704

接著進入Proxmox VE 3的網頁管理介面。登入畫面要你輸入帳號密碼。預設帳號密碼如下:

  • User name: root
  • Password: password (就是上面安裝Proxmox VE時要你輸入的密碼)

2013-07-14_102734

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

2013-07-14_102745

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」開啟上傳對話視窗。

2013-07-14_102925

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

image

上傳完成之後,Content裡面就有一個樣板了。確認樣板存在後,我們就可以來建立OpenVZ的虛擬機器囉。

Step 4. 建立OpenVZ虛擬機器 / Create OpenVZ Container (Virtual Machine)

OpenVZ的虛擬機器叫做Container,簡稱CT。有了虛擬應用樣板之後,你可以在Proxmox VE的網頁管理介面右上角的「Create CT」來建立OpenVZ的虛擬機器。

2013-07-14_210505

建立步驟是以精靈的方式一一跟你確認虛擬機器的參數。

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

2013-07-14_210604

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

2013-07-14_210641

第三步 Resources:此處設定記憶體、硬碟大小與CPU用量。

  • 記憶體:Memory是記憶體、Swap是以硬碟模擬的記憶體,在Linux中兩個參數最好相等。OpenVZ技術的記憶體是採共享的機制,因此上限只要不要超過實體機器記憶體的數量就可以了。
  • 硬碟:Disk size (GB),以GB為單位。用多少就是多少,沒有KVM或VMware那種動態硬碟,越用會讓硬碟越來越大的問題。
  • CPUs:使用CPU的額度,多核心CPU中才會去設定。

對Durpal來說,除了硬碟可以考慮設置大一點之外,其他都用預設參數即可。設定好之後按Next進入下一步。

2013-07-14_210654

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

2013-07-14_210725

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

2013-07-14_210748

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

2013-07-14_210757

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

2013-07-14_210843

建立完成之後,你會發現左邊的ServerView多了一台100 (drupal),這就是剛剛建立的OpenVZ虛擬機器。

接著我們要先設定他會在Proxmox VE啟動的時候自動開機。點入100 (druapl)之後,進入Options,在Start at boot那項雙擊兩下滑鼠,編輯該選項。

image

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

image

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

image

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

image

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

image

到此為止,OpenVZ的虛擬機器就建立完成囉。

Setp 5. Drupal安裝與使用 / Drupal Installation & Usage

還記得剛剛建立OpenVZ虛擬機器的時候,我們設定了「192.168.56.152」作為它的IP嗎?一般來說,只要直接開啟這個IP,就能夠順利使用虛擬應用樣板的系統。

不過在使用之前,我們最好還是先閱讀一下Drupal虛擬應用樣板介紹網頁,看看我們還得要做些什麼東西才能使用Drupal。

image

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

image

進入Drupal的安裝畫面。安裝步驟很容易,我就不講了,可以參考sunchiahom的Drupal 6安裝流程介紹

最後安裝完成之後,就可以直接用 http://192.168.56.152 來連線囉。

image

Step 6. 用指令列操作OpenVZ虛擬機器 / OpenVZ Container Console

Proxmox VE提供了主控台(Console)端的操作介面,讓我們能以指令列操作OpenVZ虛擬機器。如果你不是熟悉Linux的網管人員,可以不需要進入這一步操作。

開啟方式是在該虛擬機器中,按下右上角的Console。

image

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

2013-07-14_203127

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

2013-07-14_203141

以下就是Console端的畫面。登入帳號密碼為:

  • login: root
  • password: password (就是剛剛建立OpenVZ時設定的Password)

2013-07-14_205444


下一步:Proxmox VE結合主流的雲端平台 / Next: Integrate Proxmox VE with Cloud Platform

我上面也有提到,Proxmox VE的OpenVZ虛擬機器跟現在主流的雲端平台,像是Open StackOpen CloudOpen Nebula都不直接相容。Open Nebula可以安裝OpenVZ Plugin,可是手續挺複雜的樣子。

因此在我看來,最簡單的整合方式還是直接以KVM技術架設Proxmox VE,然後用Proxmox VE來管理底下的OpenVZ虛擬機器。概念圖如下:

image

上述架構中,主要是以Ezilla(使用OpenNebula雲端平台)為主的架構,然後之中架設虛擬機器安裝Proxmox VE,再到Proxmox VE中建立OpenVZ虛擬機器。這時Proxmox VE跟OpenVZ虛擬機器都會是列在同一個區域網路,可以經由Ezilla統一管理。但是管理介面就會區隔開來,平時主要是以Ezilla來管理,而要用OpenVZ虛擬機器時,再進到Proxmox VE來管理。

這個方法看起來可行,可是實際上還沒做過。這之間還有很多網路問題,像是Proxmox VE會需要多個連接埠來提供Console端的連線,在上述架構中就會遇到問題。不過Console端其實很少使用,平常都會用直接透過SSH連線操作OpenVZ虛擬機器,所以不用Console端也沒問題。

那剩下就是實作了,希望最近有機會能把它完成。

6 意見:

  1. 提到...

    你的文章,棒棒!

  2. Pulipuli Chen 提到...

    To 軒,

    謝謝。

  3. 匿名 提到...



    很詳細

  4. Pulipuli Chen 提到...

    To 3樓匿名,

    感謝賞識。

  5. 匿名 提到...

    你好,我開了一個window xp vm, 但是卻上不到網. 我能ssh到主IP上, 而且vmbr0 是正確的,請幫幫我

  6. Pulipuli Chen 提到...

    To 5樓匿名:

    通常是Windows XP不支援虛擬機器的網卡virtio
    需要額外裝驅動程式,細節請看這篇
    http://billy3321.blogspot.tw/2012/12/kvm-virtio-windows.html

    最簡單的方式就是給Windows XP安裝螃蟹卡Realtec RTL8139
    雖然速度比較慢,但連線通常沒問題

張貼留言