転載・引用について

ユーザ用ツール

サイト用ツール


サイドバー

Site Contents Index

転載・引用について

RSS

os:xenserver:tips

文書の過去の版を表示しています。


XenServer Tips

Last Update: 2015/04/17

XenServer 6.2 以降への Hotfixの適用

XenServer 6.2からは、XenCenterでのPatch適用は出来なくなった。 XenCenterからHotFixを適用するには、Citrixからライセンスを買う必要がある。 しかし、さすがに個人でそんなことをするのは馬鹿げているので、手動でpatchを適用する。

Patch適用の方法は、HotFixのページに記載されているが、ここに一応手順を記載しておく

  1. とにかく HotFix をDownloadする
  2. とにかく XenServer PoolのPool MasterにHotFixを転送する
    • なお、HotFixを転送する前には、Archiveを展開し、XS62Exxx.xsupdateファイルを転送しておくこと
  3. pool masterにloginし、以下のコマンドを突っ込む
    1. xe patch-upload -s localhost -u root -pw <password> file-name=<path_to_update_file>/XSxxExxx.xsupdate
      • ここで、出力されるUUIDをメモする。
    2. このタイミングで、もしXenServer側で認識されるNICをe1000に変えているならば、以下を実施
      • (XenServer 6.2まで) chattr -i /usr/lib/xen/bin/qemu-dm
      • (XenServer 6.5から) chattr -i /usr/lib64/xen/bin/qemu-dm
    3. xe -s localhost -u root -pw <password> patch-pool-apply uuid=[上記UUID]
      • これで patchが適用されるはず
    4. xe patch-list -s localhost -u root -pw <password> name-label=XSxxExxx
      • システムにpatchが適用されているか確認。なお、name-labelを省略すると、適用されている全HotFixが表示される
    5. 必要に応じて、xe-toolstack-restartかサーバーの再起動を行う。特に、kernelの置き換えの場合には再起動必須。
      • 再起動すべきかどうかは、after-apply-guidanceを見れば判断できる。
        • restartXAPI → xe-toolstack-restart
        • restartHost → 再起動

なお、各VMを移設してから実施すること。必要に応じて、Storage Migration/Pool間Migrationを活用すること

FV時にVMに割り当てるNICをe1000にする

http://www.netservers.net.uk/articles/open-source-howtos/citrix_e1000_gigabit

XenServer 6.2までの場合

mv /usr/lib/xen/bin/qemu-dm /usr/lib/xen/bin/qemu-dm.orig
vi /usr/lib/xen/bin/qemu-dm.sh

===== Start of qemu-dm.sh =====
#!/bin/bash
oldstring=$@
newstring=${oldstring//rtl8139/e1000}
exec /usr/lib/xen/bin/qemu-dm.orig $newstring
===== End of qemu-dm.sh =====

cp /usr/lib/xen/bin/qemu-dm.sh /usr/lib/xen/bin/qemu-dm

chmod 755 /usr/lib/xen/bin/qemu-dm
chattr +i /usr/lib/xen/bin/qemu-dm

XenServer 6.5からの場合

mv /usr/lib64/xen/bin/qemu-dm /usr/lib64/xen/bin/qemu-dm.orig
vi /usr/lib64/xen/bin/qemu-dm.sh

===== Start of qemu-dm.sh =====
#!/bin/bash
oldstring=$@
newstring=${oldstring//rtl8139/e1000}
exec /usr/lib64/xen/bin/qemu-dm.orig $newstring
===== End of qemu-dm.sh =====

cp /usr/lib64/xen/bin/qemu-dm.sh /usr/lib64/xen/bin/qemu-dm

chmod 755 /usr/lib64/xen/bin/qemu-dm
chattr +i /usr/lib64/xen/bin/qemu-dm

なお、qemu-dm.shは、環境変数に格納されている文字列の文字列置換を行っているので、bash以外で正しく動作する保証が無い

この方法でFV時のNICをe1000として認識させる場合、XenServerのupdate(HotFix)を適用するときに問題が出る場合がある。 これは、chattrを利用してqemu-dmを保護しているからである。従って、HotFix適用の際には、適用前に以下を実施する

*** XenServer 6.2まで ***
chattr -i /usr/lib/xen/bin/qemu-dm

*** XenServer 6.5から ***
chattr -i /usr/lib64/xen/bin/qemu-dm

この保護を入れる理由は、単純にUpdateされてしまい、qemu-dmが置き換えられてしまうと、NICがrtl8139に認識されるようになってしまうからである。つまり、あえてUpdateを失敗させて、やり直しできるようにするのが目的である。

MetaData Backup

  1. xsconsole
  2. Backup, Restore and Update
  3. Backup Virtual Machine Metadata

の順でメニューを選べばあとはみたまま。

Console画面を出す

[root@XenServ01 ~] xsconsole

xeでVMのNICをいじる

xeコマンドでVMのNICをいじる為のメモ。

AMDのブルドーザーコアマシンを使っていて、流石に古くなったので別のIntel XeonマシンにVMを移設した。 細かいところは今度まとめるので、テキストでメモ書き

xe vif-list						←とにかくvifのlistを取得する
xe vif-param-list uuid=....				←必要なvifを探す。見つけたら、network-uuid(3)をメモする
xe vm-list name-label="foo bar"				←とにかく、VMのUUIDを取得する(1)
xe vif-list vm-uuid=(1)					←VMに紐づいているvifのリストを取る
							 VIFのUUID(2)が列記される
xe vif-destroy uuid=(2)					←VMにattachされているVIFがなくなる
xe vif-create vm-uuid=(1) network-uuid=(3) mac=random device=0
							←device 0番に適当に作成(random)したmac addressを
							 つけ、新たなvifとしてVMにattachする

これで、既存のVMに割り当てているNICを置き換える事が出来る。

ということは、こんな事をすればVMをxeコマンドだけで作れるってことかもしれない

事前に、割り当てたいNetworkのUUID(D)を取得する
xe vm-install new-name-label="VM のラベル名" template="テンプレートのUUID名"	←VMのUUID(A)が出力される
xe vm-param-set uuid=(A) VCPUs-at-startup=1		←起動時のCPUは1つ
xe vm-param-set uuid=(A) VCPUs-max=1			←CPUの最大値は1つ
xe vm-param-set uuid=(A) memory-dynamic-max=1073741824	←Memoryは1G
xe vm-param-set uuid=(A) memory-dynamic-min=1073741824	←Memoryは1G
xe vm-param-set uuid=(A) memory-static-max=1073741824	←Memoryは1G
xe vm-param-set uuid=(A) memory-static-min=134217728	←Memoryは最小でも100M
xe sr-list						←SRのリストを取得。VMを作りたいSRのUUID(B)をメモる
xe vdi-create sr-uuid=(B) virtual-size=17179869184 type=system name-label=(VDI のラベル名) sharable=false
							←Diskの容量は16G、System Diskとしてラベルをつける
							 VDIのUUID(C)が出力される
xe vbd-create bootable=true device=xvda mode=RW type=Disk unpluggable=false vdi-uuid=(C) vm-uuid=(A)    
							←VBDを作成し、VMと結びつける
xe vif-create vm-uuid=(A) network-uuid=(D) mac=random device=0
							←VMにNetworkを割り当てる
xe vm-param-set uuid=(A) other-config:install-repository=http://mirror.centos.org/centos/6/os/x86_64
xe vm-param-set uuid=(A) PV-args="ksdevice=eth0"
xe vm-param-set uuid=(A) other-config:disable_pv_vnc=1
							←必要なパラメータをセットする
xe vm-start uuid=(A)					←VMを起動する
xe console uuid=(A)					←VMのConsoleに繋ぐ

あとはpif関連とかパラメータとかを理解すればいいのか。

MTUを9000にする

  • XenServ01のeth1のMTUを9000にする場合
[root@XenServ01 ~]# xe pif-list host-name-label=XenServ01 device=eth1
uuid ( RO)                  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
                device ( RO): eth1
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh

[root@XenServ01 ~]# xe pif-param-set uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx other-config:mtu=9000
[root@XenServ01 ~]# 
  • これで再起動すれば eth1のMTUが9000になる
  • MTUを9000にしたものの、Switching HUBがMTU 9000に対応していないということはままあることですが、その時には、以下をどうぞ
[root@XenServ01 ~]# xe pif-list host-name-label=XenServ01 device=eth1
uuid ( RO)                  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
                device ( RO): eth1
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh

[root@XenServ01 ~]# xe pif-param-get uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx param-name=other-config
: ; mtu: 9000;
[root@XenServ01 ~]# xe pif-param-clear uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx param-name=other-config
[root@XenServ01 ~]# xe pif-param-get uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx param-name=other-config

[root@XenServ01 ~]# 
  • これでパラメータが消えます。ので、再起動してください。
    • 当然、NFSやiSCSIもMTUを1500にしておくほうがいいですよ。
  • なお、Xenに限らず、iSCSIやNFSを利用するなら、Networkを独立させて、かつJumbo Packetを通せるSwitchにしておくほうが性能が出ます。

Open vSwitchのメモ

  1. XenServer(XCP)内のOpen vSwitchの状況を確認する
    • brctl show
    • ovs-vsctl show

詳しいことは、これから調査…

このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
os/xenserver/tips.1429251685.txt.gz · 最終更新: 2015/04/17 15:21 by 127.0.0.1