2011年9月30日 星期五

[KVM]在 TUI 環境下建置 Virtualized guest

   如果妳有 X Window,不管是在 VM Server 也就是 『Host』 或是另一台『Desktop』,妳都可以利用『Virt-Manager』進行相當完整且深入的管理,基本上除非有特別的嗜好,否則並沒有非得在 TUI 環境下建置 VM guest 的必要,而且,只能使用 TUI 的環境來建置 VM guest 的狀況在實務上幾乎是不存在的。

    不過,如果要談在 TUI 環境下來管理妳的 VM ,不從建置開始談好像有點不完整,所以這邊還是從如何建置一台全新的  VM guest 開始談起。

   以下都是從我的筆電使用 ssh 遠端連線到 VM Server 進行實作,使用到的工具有『virsh』、『virt-install』及『vinagre』。

    妳可以選擇進到『virsh』或是在 TUI 使用 Command 來建置 VM guest ,不過事實上是同一件事,這邊是選擇 進到『virsh』。

    所要建置的VM guest 規劃如下,

        a.OS : Ubuntu 10.04.3 Server
        b.Architecture : X86_64
        c.CPU *1 / RAM : 1024 MB
        d.HD : Format : qcow2 size: 8G
        e.Network : Bridge:br0
        
    1. 建立虛擬硬碟

        如果不需要指定虛擬硬碟的格式可以跳過這一步。

        a. 列出現有 Storage Pool 清單

            主要是要確認一下 Storage Pool 的名稱,因為我打算將虛擬硬碟的映像放在『VM-Image』這個 Storage Pool 中。


virsh # pool-list --all

名稱               狀態                    自動啟動
-----------------------------------------                                                    
default                啟用                yes     
image                 啟用                yes     
VM-Image           啟用                yes
Iso                     非啟用中           yes    





    



        b. 產生虛擬硬碟     

virsh # vol-create-as --format qcow2 VM-Image test.qcow2.img 8G
Vol test.qcow2.img created




        也可以使用『kvm-image』來產生虛擬硬碟,不過要到使用『virt-install 』建置 VM quest 之後 『virsh』才能管理這顆虛擬硬碟。

max@riyu:~$ kvm-img create -f qcow2 /media/SDA3/VmImage/disk.qcow2.img 8G    
Formatting '/media/SDA3/VmImage/disk.qcow2.img', fmt=qcow2 size=8589934592 encryption=off cluster_size=0





        確認一下

virsh # vol-list VM-Image
名稱                                    Path                                  
-----------------------------------------
test.qcow2.img       /media/SDA3/VmImage/test.qcow2.img    




       

    2. 建置 VM guest

      依照規劃需要下一串又臭又長的命令來作這件事。

       退出『virsh』後,使用如下命令來建置一台 VM guest

max@riyu:~$ virt-install \
> --connect qemu:///system \
> --name=Test \
> --vcpus=1 \
> --arch=x86_64 \
> --ram=1024 \
> --os-type=linux \
> --virt-type=kvm \
> --cdrom=/media/SDC7/001.LinuxISO/ubuntu-10.04.3-server-amd64.iso \
> --disk path=/media/SDA3/VmImage/test.qcow2.img,size=8 \
> --force \
> --network bridge=br0,model=virtio \
> --vnc  --vncport=5900
Traceback (most recent call last):
  File "/usr/lib/python2.6/logging/handlers.py", line 71, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python2.6/logging/handlers.py", line 144, in shouldRollover
    msg = "%s\n" % self.format(record)
  File "/usr/lib/python2.6/logging/__init__.py", line 648, in format
    return fmt.format(record)
  File "/usr/lib/python2.6/logging/__init__.py", line 439, in format
    s = self._fmt % record.__dict__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 1: ordinal not in range(128)



Starting install...
Creating domain... 0 B 00:00
Unable to connect to graphical console: virt-viewer not installed. Please install the 'virt-viewer' package.
Domain installation still in progress. You can reconnect to
the console to complete the installation process.





       
    接下來要透過 VNC 進到剛出生的 VM quest 來進行作業系統的安裝,不過要從遠端主機透過VNC 連到 VM quest 還需要動一些手腳而且有點安全上的疑慮,所以這邊就直接利用 ssh 的『X11Forwarding』將從 VM Server 透過 VNC 連到 VM quest 的畫面送到我的筆電。

    3. 重新連線到 VM Server

         要記得開啟 『X11Forwarding』。

max@minako:~$ ssh -X max@10.0.0.100                    





    4. 從 VM Server 端啟動『vinagre』       

max@riyu:~$ vinagre localhost:5900                   


   


    由於這次連線已經啟動了『X11Forwarding』,所以『vinagre』的執行畫面會送回筆電。



        之後就跟一般安裝作業系統的程序一樣,作業系統安裝完畢,妳就有一台  VM 可以用啦。     


virsh # list 
 Id 名稱                  狀態
----------------------------------
  6 Test                 執行中
                   
Powered By Blogger