我在  人與非人 這篇文章中,曾經提到 「The Thirteenth Floor 」這部電影(中文片名:異次元駭客)。電影裡面的電腦工程師,為他們的世界製造了虛擬的電玩世界,精緻到虛擬世界裡面的虛擬人物以為他們是真正活著的人。最後,電腦工程師卻發現,原來他們自己的世界,居然也是外層世界的人們虛擬出來的。最近,剛好有機會實作一下 Linux 底下的 Virutal Machine,覺得跟這部電影想談論的哲理對照下來,頗令人玩味。

當我們拜訪一個網站時,多數的人無法確定那個網站到底是一台真正的實體主機,或僅是一個虛擬的機器。自從 Vmware 這家公司開始大力推動 Virtual Machine 開始,不管是 Windows 或 Linux 電腦主機,幾乎都能安裝免費或商業的虛擬機器。這幾年當中,就連 Vmware 也都已經釋出免費的 Vmware Server 及 Vmplayer,讓虛擬機器不再是電腦玩家特有的寵物。

簡單而言,所謂的虛擬機器,就是利用現有的主機(Windows XP、2000,或 Linux 作業系統),分出一部份的記憶體與 CPU 資源,額外安裝出一台或多台虛擬主機出來。這些虛擬主機擁有自己的鍵盤、滑鼠、IP、甚至 USB 裝置,就跟真正的實體主機差不多。因此,在 Windows 上面裝個 Linux 虛擬主機,或在 Linux 上面裝個虛擬的 Windows XP,早在幾年前就已經非常容易做到。

我自己以前玩過 Vmware 的虛擬機器軟體,曾經在 Windows 主機上面架過 Linux 虛擬機器,也曾在 Linux 機器上架過 Windows 虛擬機器,但過去總是玩玩就撇在一邊。最近剛好有這個需求,也考慮到網站系統安全的部分,所以重新上網查詢、比較了各類虛擬主機軟體的差異。

我希望安裝的虛擬機器能夠符合以下幾個條件:

(1) 能在虛擬機器上面跑 Apache Web Server,提供網站服務

(2) 盡量不要用到圖形安裝介面,最好是文字介面下即能安裝成功

(3) 網站架在虛擬機器上。在真正的主機中,一個虛擬機器只相當於幾個大檔案的集合體。如果網站被入侵,則只要刪除虛擬機器映像檔 (image file),將原先的備份檔直接覆蓋過去即可,整個網站又能生龍活虎

目前在網路上,我們可以找到的「免費」虛擬機器軟體有:Vmware Server、Vmware Player、VirtualBox、Xen、Qemu、Qemu+KVM、Hyper-V、OpenVZ 等等,多數這些軟體的安裝,都需要守在電腦前面使用圖形界面安裝,或是使用 VNC 或 X server 遠端監視圖形安裝過程。

對我而言,我希望安裝的虛擬機器擔任的是 Server 的任務,有沒有圖形界面並不重要。其次,我也希望能夠在家裡透過網路就能安裝好虛擬機器,懶得跑到真正的遠端主機前面監視安裝過程。

各家虛擬機器軟體各有其優缺點,其支持者也褒貶不一。最後,我選定了 Xen 虛擬機器軟體。除了 Xen 是免費之外,主要是因為安裝 Xen 虛擬機器可以在純文字界面下進行,有利於遠端網路登入操作。另外,Xen 可以針對 Linux 作業系統核心 (Kernel)作有效的資源應用,在 Linux 主機上面的效率聽說不錯。

決定採用 Xen 之後,我主要參考 以下這篇文章:

http://www.howtoforge.com/virtualization-with-xen-on-debian-lenny-amd64

這篇文章是在 Debian Linux (版本: Lenny) 上面安裝 Xen 的詳細過程,但作者操作的實體主機是 AMD 64 位元的機器。我的機器是 Intel 系統,因此必須作一些小改變。主要更改如下:

1.

apt-get install xen-hypervisor-3.2-1-amd64 xen-linux-system-2.6.26-1-xen-amd64 xen-utils-3.2-1 xenstore-utils xenwatch xen-shell xen-tools

改成

apt-get install xen-hypervisor-3.2-1-i386 xen-linux-system-2.6.26-2-xen-686 xen-utils-3.2-1 xenstore-utils xenwatch xen-shell xen-tools

2.

xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=amd64 –role=udev

改成

xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=i386 –role=udev

其餘部分都照著文章一步一步操作,安裝過程非常順利,一下子一台虛擬機器就已經架設起來,讓我非常訝異。進入虛擬機器之後,利用 Debian 的 apt-get 程式也順利安裝了 Apache2 web server 及其他相關程式,很快的,一個網站就完全移轉過去了。

現在,當您在讀這篇文章的時候,要不要猜一下,這個網站,是在一台實體主機上?還是在一台虛擬機器之內呢?

最後,我不禁在想,目前的虛擬機器軟體,僅能在實體主機之上架設一層虛擬機器。或許哪一天,我們能看到某些新的虛擬機器軟體出現,能讓我們在虛擬機器之內,再架設更深一層的虛擬機器,那就更好玩了!

P.S.

對於僅想嘗試一下虛擬機器的網友,我會建議使用 Vmware Player 搭配 Vmware 公司網站上面的許多已經製作好的虛擬機器映像檔,在 Windows 作業系統上來體驗一下。此外,聽說 VirtualBox 的效能與圖形設定等等也很不錯。