1,425 瀏覽數

RHEL5 XEN – xend

當我們由 Xen kernel 開機後,預設 xend 的服務也會開啟.通常我們會使用 virt-manager(或是在 Applications / System Tools / Virtual Machine Manager) 來管理 virtual machine.最常遇到的是下面開錯的核心使用到不是包含 Xen 的核心來開機,就會遇到下面的錯誤訊息:
Unable to open a connection to the Xen hypervisor/daemon
Verify that:
– A Xen host kernel was booted
– The Xen service has been started.
non_xen_kernel
如果遇到上述問題時,我們可以在指令提示符號輸入下列指令 chkconfig –list 來確定 xend 是否在開機時就一並啟動.

[root@benjr ~]# chkconfig --list xend 
end               0:off   1:off   2:on   3:on   4:on   5:on   6:off

如果確定了 xend 在開機時已經啟動了,我們可以來看看目前 xend 的狀態.

[root@benjr ~]# service xend status 
xend is running

如果沒有啟動 xend 的服務時,可以在指令提示符號下輸入下列指令.

[root@benjr ~]# service xend start
Staring xend:                        [ok]

可以使用 "service xend stop" 停止 xend 或是重新啟動 "service xend restart" 如果一切正確無誤時就可以順利開啟 #virt-manager .目前只有 Localhost 存在所以直接在其按右鍵點選 "Connect" 或是在 File / Open connection…"  選擇 connection : Local
virt-manager
/etc/xen/xend-config.sxp 設定檔可以區分為 5 類 1. Dom 0 系統設定 2.遷移 (Migration) virtual machine 3.管理 4.virtual machine 網路模式設定 5.遠端遙控 Linux 桌面 – VNC (Virtual Network Computing)

  • Dom 0 系統設定
    Dom0 (Domain zero) 是一個特別的 Virtual Machin 他也是 Hypervisor 所建立的第一個 domain ,他還擁有和硬體溝通的特別權限.在 Dom0 可以針對硬體做設定,還可以建立 DomU (非 Dom0 的 virtual Machine)

    • (logfile /var/log/xen/xend.log)
      關於 xen 的記錄檔預設會存放在 /var/log/xen/xend.log .
    • (loglevel DEBUG)
      代表何種等級的錯誤訊息需要登錄,可選用的錯誤等級(由低至高):debug,info,notice,warning,err,crit,alert與emerg.預設為 debug 如需更多訊息可以降低等級.
    • (console-limit 1024)
      console-limit 主要是限制了每一個 DomU 最大可以使用的記憶體資料緩衝區,預設值為 1024 單位為 kilobyte.
    • (dom0-min-mem 256)
      一開始系統上的記憶體可用空間都是被保留給 Dom0 當產生新的 virtual machine 或是 DomU 的 virtual machine 記憶體需要增大時, Dom0 就會釋放記憶體給 DomU 來使用.這邊就設定了 Dom0 需要的最小記憶體為何,預設為 256 MB 所以當 Dom0 的記憶體趨近於 256 MB 時, DomU 將不能再增加記憶體的需求.這技術被稱為 balloon 就像是氣球大小可以縮放.
    • (dom0-cpus 0)
      如果系統是多處理器的環境 SMP(symmetric multiprocessing) ,這邊就可以限制 Dom0 可以使用的 CPU 個數,1 代表 Dom0 只能使用一顆 CPU,以此類推…這麼做的好處是可以保留 CPU 資源給 DomU 來使用. 預設為 "0" 代表 Dom0 不受限制系統上所有的 CPU 都會使用到.
    • (enable-dump no)
      xm dump-core就類似於 Linux 系統下的 kdump 或是 Windows 的 kernel memory dump,這一些功能最主要就是能將已經 crash 的系統 dump 目前記憶體的內容並以檔案的方式記錄下來或許你會覺得奇怪為什麼系統已經 crash 掉,怎麼還可以作工作.
      關於 core dump 請參考 http://benjr.tw/9058
  • 遷移 (Migration) virtual machine

    • (xend-relocation-port 8002)
    • (xend-relocation-address '')
    • (xend-relocation-hosts-allow '')
    • (external-migration-tool '')

    虛擬化的好處之一就是什麼東西都是虛擬出來的,因此透過管理介面將 virtual Machine 在不同的 Server 上做轉移是可行的,這動作就叫做遷移 (migration), Xen 的虛擬化也提供了這一項功能.不過在做遷移時需要注意兩台主機都必須要啟動 RHEL5 的 xend 服務.兩端主機的處理器必需為同型號,比如兩端同時都需要為 x86 或是 EM64T (Intel VT-x) 或是 Itanium IA64 架構的 (Intel VT-i) 或是 AMD-V ,而且目的端主機必需提供足夠的記憶體和硬碟空間,建議兩台主機都處於於同一個網段的網域內
    關於 遷移 (migration) 請參考 http://benjr.tw/9062

  • 管理

    • (xend-http-server yes)
    • (xend-port            8000)
    • (xend-address '')

    在 xend 中 /etc/xen 目錄下的 xend-config.sxp 設定檔,有一個奇怪的設定選項 xend-http-server.乍看之下我還以為我可以透過 web 的方式去管理 xend 與其 virtual machine 但 xend-http-server 的功能很簡單就只是純粹 hypervisor 的一些資訊可以透過 web 的方式去觀察.方式如下:

    [root@benjr ~]# vi /etc/xen/xend-config.sxp
    (xend-http-server yes)
    (xend-port 8000)
    (xend-address '' )
    
    • (xend-http-server yes)
      啟動 xend 的 HTTP server ,只要透過 web http://ip:port/xend 就可以擷取由 hypervisor 所提供的資訊.
    • (xend-port 8000)
      xend-http-server 所使用的 TCP port 預設為 8000
    • (xend-address '' )
      允許指定的 IP 來連接, 如果是 '' 空白時是允許所有的連線,如果你限定只有本機才能使用時填入 (xend-address localhost) 就只有本機可以使用.

    現在透過你的 web 來連接 http://ip:port/xend 
    xend_web

    (xend-unix-server yes)
    (xend-tcp-xmlrpc-server yes)
    (xend-unix-xmlrpc-server yes)
    (xend-relocation-server no)
    (xend-unix-path /var/lib/xend/xend-socket)

  • virtual machine 網路模式設定

    • (network-script network-bridge)
    • (network-script network-route)
    • (network-script network-nat)
    • (vif-script vif-bridge)
    • (vif-script     vif-route)
    • (vif-script     vif-nat)
  • Xen 虛擬化下的網路裝置,主要都是透過這 3 種不同的模式, 模式大致可以畫分成 3 種 1.network-bridge , 2.network-nat 和 3.network-route 讓 Virtual Machine 的虛擬網路裝置透過實體的網路連接出去.詳細內容請參考 Xen 的虛擬化網路裝置 http://benjr.tw/3420

  • 遠端遙控 Linux 桌面 – VNC (Virtual Network Computing)
    (vnc-listen '127.0.0.1')
    (vncpasswd '')
    (vnc-tls 1)
    (vnc-x509-cert-dir /etc/xen/vnc)
    (vnc-x509-verify 1)
    (enable-image-format-probing no)

網友的想法

  1. 自動參照通知: XEN – RHEL5 | Benjr.tw

發表迴響