星期三, 5月 26, 2010

xen 研讀小記

xen 網卡命名語法

  • vifdomain_number.interface_number
  • 例如 domain 2 的eth0 就是  vif2.0
可以透過修改 /etc/xen/xend-config.sxp 來設定xen 使用NAT網路

notes:
  • vm-install  建立虛擬機器
  • xen 網卡MAC 00:16:3e 開頭

vm-install 也可以使用非互動的方式, 例如
vm-install  --os-type sles11  --source  nfs://172.17.8.101/data/install/SLES11  --os-settings  nfs://172.17.8.101/data/install/autoyast/da4-xen.xml

使用  xm 指令列出裝置名稱 ( da5 為domain name)
# xm  block-list  da5

#xm  list   ( 列出Unmanaged domains )

Xen version 3 設定檔可以存放在Xenstore database ( /var/lib/xenstored/tdb )

managed domains

  • Virtual machines that have their configuration in the Xenstore database.
藉由 #xm  delete  vm_name 移除Xenstore 內的設定檔( 只移除設定檔, 不包含 disk image )

Notes:
  • 使用 #vm-install 指令安裝的VM設定檔會被寫到 /etc/xen/vm/vm名稱 以及 Xenstore database
  • 但是之後對 /etc/xen/vm/vm名稱 設定檔的修改並不會影響 XenStore database 內的設定檔
  • 所以如果要讓他生效的方法為
    • #xm  delete  vm名稱
    • 修改 /etc/xen/vm/vm名稱 的設定檔
    • #xm  new   configfile
#xm  list  ( 列出所有的VM 包含沒有運作中)
有關於 xm list 列出的state 資訊
  • r:  Domain is running
  • b: Domain has been created but is currently blocked.
  • p: Domain is paused.
  • s: Domain is in the process of being shut down.
  • c: Domain has crashed due to an error or misconfiguration.
xm 相關指令
  • #xm  shutdown  domain_id    ( 關閉domain )
  • #xm  start  vm_name   ( 啟動 domain )
  • #xm  pause   domain_id  ( 暫停 domain 運作 )
  • #xm  unpause  domain_id  ( 繼續 domain 運作)
  • #xm  console  domain_id
    • 以終端機方式連線進入 domain
    • 使用 Ctrl + ] 按鍵 離開, 回到原來的domain
  • #xm  destroy  domain_id  (  強制關機, 當shutdown 不能用的時候才實施 )
  • #xm  save  domain_id  filename
    • 有點類似休眠, 後面的檔案大小等於 VM的記憶體大小, 但是記憶體不會釋放出來
    • 利用 #xm  restroe  filename 來快速還原VM
  • #xm  mem-set  domain_id  amount_of_memory
    • 動態調整  VM 的記憶體大小, 單位為MB
  • #xm  vcpu-list

virsh  相關指令(功能類似 xm)
  • #virsh  dumpxml  domain_name   (觀察 VM 設定檔)
  • #virsh  console   domain_id 
    • 以終端機方式連線進入 domain
    • 使用 Ctrl + ] 按鍵 離開, 回到原來的domain
  • #virsh  list   (列出正在運作中的VM, 但是不會列出未運作中的vm)
  • #virsh  shutdown  domain_id  ( 關閉VM)
  • #virsh  start   vm_name   ( 啟動 VM )
  • #virsh  suspend  domain_id  ( 暫停 VM )
  • #virsh  resume  domain_id  ( 繼續執行 VM )
  • #virsh  destroy  domain_id  (  強制關機, 當shutdown 不能用的時候才實施 )
  • #virsh  save  domain_id  filename
    • 有點類似休眠, 後面的檔案大小等於 VM的記憶體大小, 但是記憶體不會釋放出來
    • 利用 #virsh  restroe  filename 來快速還原VM
  • #virsh  setmem  domain_id   amount_of_KbMemory
    • 動態設定VM 記憶體大小,  單位為KB

設定 xen 的DomainU 於開機時啟動
  • 可以將 /etc/xen/vm/vm名稱 的設定檔 建立 Symbolic Link 到 /etc/xen/auto, 這樣xen 主機開機的時候就會啟動 /etc/xen/auto 下的VM
  • 例如 # ln -s /etc/xen/vm/da5  /etc/xen/auto/da5
相關的設定檔也可以參考 /etc/sysconfig/xendomains 檔案

xen migrate ( 移轉 )
環境描述
da1: NFS Server 提供 VM image from /srv/export
da2: 原來的 xen Server
da3: 準備要移轉的 xen 目的 server

條件 
  • da2 and da3 必須都有執行 xend
  • da2 and da3 使用同一個 storge ( via NFS or iSCSI )
    • 也就是說都有掛載 da1 的 /srv/xen
修改設定檔
於 da2 以及  da3 ( 兩台都要設定 )
(第一項拿掉註解  改為yes, 中間兩項拿掉註解  最後一項去除localhost, 空白代表皆可)
#vi  /etc/xen/xend-config.sxp
(xend-relocation-server yes)
(xend-relocation-port 8002)
(xend-relocation-address '')
(xend-relocation-hosts-allow '')

重新啟動 da2 以及 da3 的xend
# rcxend  restart


於da2 ( 移轉主機上面) ( 以 offline 方式移轉 )
# xm  migrate  da5  192.168.123.203
這個時候可以觀察到 VM  會先 pause 之後再到 da3 啟動

在da3  可以使用
#xm  top

來觀察

轉移之後, 測試線上移轉
於 da3 ( 目前 VM 所在主機)
# xm  migrate  --live  da5  192.168.123.202
這個時候可以發現,  xen 會先於被移轉主機先啟動VM 以pause 狀態, 慢慢轉移

enjoy it ~~

沒有留言: