転載・引用について

ユーザ用ツール

サイト用ツール


os:xenserver:tips
no way to compare when less than two revisions

差分

このページの2つのバージョン間の差分を表示します。


次のリビジョン
os:xenserver:tips [2015/04/17 15:21] – 外部編集 127.0.0.1
行 1: 行 1:
 +====== XenServer Tips ======
 +
 +**//__ Last Update: 2015/04/17 __//**
 +===== XenServer 6.2 以降への Hotfixの適用 =====
 +XenServer 6.2からは、XenCenterでのPatch適用は出来なくなった。
 +XenCenterからHotFixを適用するには、Citrixからライセンスを買う必要がある。
 +しかし、さすがに個人でそんなことをするのは馬鹿げているので、手動でpatchを適用する。
 +
 +Patch適用の方法は、HotFixのページに記載されているが、ここに一応手順を記載しておく
 +
 +  - とにかく HotFix をDownloadする
 +  - とにかく XenServer PoolのPool MasterにHotFixを転送する
 +    * なお、HotFixを転送する前には、Archiveを展開し、XS62Exxx.xsupdateファイルを転送しておくこと
 +  - pool masterにloginし、以下のコマンドを突っ込む
 +    - ''xe patch-upload -s localhost -u root -pw <password> file-name=<path_to_update_file>/XSxxExxx.xsupdate''
 +      * ここで、出力されるUUIDをメモする。
 +    - このタイミングで、もし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
 +    - xe -s localhost -u root -pw <password> patch-pool-apply uuid=[上記UUID]
 +      * これで patchが適用されるはず
 +    - xe patch-list -s localhost -u root -pw <password> name-label=XSxxExxx
 +      * システムにpatchが適用されているか確認。なお、name-labelを省略すると、適用されている全HotFixが表示される
 +    - 必要に応じて、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までの場合
 +<code>
 +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
 +</code>
 +
 +XenServer 6.5からの場合
 +<code>
 +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
 +</code>
 +
 +なお、qemu-dm.shは、環境変数に格納されている文字列の文字列置換を行っているので、bash以外で正しく動作する保証が無い
 +
 +この方法でFV時のNICをe1000として認識させる場合、XenServerのupdate(HotFix)を適用するときに問題が出る場合がある。
 +これは、chattrを利用してqemu-dmを保護しているからである。従って、HotFix適用の際には、適用前に以下を実施する
 +<code>
 +*** XenServer 6.2まで ***
 +chattr -i /usr/lib/xen/bin/qemu-dm
 +
 +*** XenServer 6.5から ***
 +chattr -i /usr/lib64/xen/bin/qemu-dm
 +</code>
 +
 +この保護を入れる理由は、単純にUpdateされてしまい、qemu-dmが置き換えられてしまうと、NICがrtl8139に認識されるようになってしまうからである。つまり、あえてUpdateを失敗させて、やり直しできるようにするのが目的である。
 +
 +===== MetaData Backup =====
 +  - xsconsole
 +  - Backup, Restore and Update
 +  - Backup Virtual Machine Metadata
 +の順でメニューを選べばあとはみたまま。
 +
 +===== Console画面を出す =====
 +<code>
 +[root@XenServ01 ~] xsconsole
 +</code>
 +
 +===== xeでVMのNICをいじる =====
 +xeコマンドでVMのNICをいじる為のメモ。
 +
 +AMDのブルドーザーコアマシンを使っていて、流石に古くなったので別のIntel XeonマシンにVMを移設した。
 +細かいところは今度まとめるので、テキストでメモ書き
 +
 +<code>
 +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する
 +</code>
 +これで、既存のVMに割り当てているNICを置き換える事が出来る。
 +
 +ということは、こんな事をすればVMをxeコマンドだけで作れるってことかもしれない
 +<code>
 +事前に、割り当てたい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に繋ぐ
 +</code>
 +あとはpif関連とかパラメータとかを理解すればいいのか。
 +
 +===== MTUを9000にする =====
 +    * XenServ01のeth1のMTUを9000にする場合
 +<code>
 +[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 ~]# 
 +</code>
 +    * これで再起動すれば eth1のMTUが9000になる
 +  * MTUを9000にしたものの、Switching HUBがMTU 9000に対応していないということはままあることですが、その時には、以下をどうぞ
 +<code>
 +[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 ~]# 
 +</code>
 +  * これでパラメータが消えます。ので、再起動してください。
 +    * 当然、NFSやiSCSIもMTUを1500にしておくほうがいいですよ。
 +  * なお、Xenに限らず、iSCSIやNFSを利用するなら、Networkを独立させて、かつJumbo Packetを通せるSwitchにしておくほうが性能が出ます。
 +
 +===== Open vSwitchのメモ =====
 +  - XenServer(XCP)内のOpen vSwitchの状況を確認する
 +    * ''brctl show''
 +    * ''ovs-vsctl show''
 +詳しいことは、これから調査...
  
os/xenserver/tips.txt · 最終更新: 2023/10/25 03:06 by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki