内容
PacemakerをESXi環境(もしくは、vSphere環境)のゲスト上に構築する場合、ゲスト間のStonithはvirsh(external/libvirt)を利用したESXiホスト経由もしくは、vCenterサーバ経由での実行になります。
某社での質問を契機に、気になったので最新のESXi6単体(vSphere環境ではなくHyperVisor単体です)で、virsh接続が可能なのか確認してみました。
実は、Pacemaker1.1では、virshを経由しないfence_vmware_soapというエージェントも利用出来ますが、今回は未確認です。
実はネットを探すとlibvirtの古いバージョンでNGな為、対応版のlibvirtを利用する必要があることはわかります。(記載のあったBugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1213345)
また、記憶が正しければ、この対応されたバージョンは5.5系のEsxに接続出来なくなったような記載があったような・・・最新では治っていると思います・・・
以下にように、RHEL7系と、Fedora23で確認してみました。
- RHEL7.1及びCentOS7.1からのESXi6ホストへの接続は6系への接続はNG
- 以下では、RHEL7.1のみを記載していますが、CentOS7.1も同様にNGでした。
- RHEL7.1は未アップデート、CentOS7.1はアップデート済みでした。
root@rh71-01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[root@rh71-01 ~]# virsh -c esx://192.168.3.200/?no_verify=1
192.168.3.200 [root] のユーザー名を入力してください: root
root の 192.168.3.200 のユーザー名を入力してください:
エラー: ハイパーバイザーへの接続に失敗しました
エラー: 内部エラー: VI API メジャー/マイナーバージョン '2.5', '4.x' または '5.x' が期待されますが、'6.0' が見つかりました
[root@rh71-01 ~]# virsh -V
libvirt の virsh コマンドラインツール 1.2.8
http://libvirt.org/ にあるウェブサイトを参照してください。
以下のサポート付きでコンパイルされました:
ハイパーバイザー: QEMU/KVM LXC ESX Test
ネットワーク: Remote Network Bridging Interface netcf Nwfilter VirtualPort
ストレージ: Dir Disk Filesystem SCSI Multipath iSCSI LVM Gluster
その他: Daemon Nodedev SELinux Secrets Debug DTrace Readline Modular
- Fedora23からESXi6ホストへの接続はOK - 若干、新しいlibvirtが使われているのでOKのようです。
- Fedora23はアップデート済みです。
[root@Q1900itx ~]# virsh -V
libvirt の virsh コマンドラインツール 1.2.18.1
http://libvirt.org/ にあるウェブサイトを参照してください。
以下のサポート付きでコンパイルされました:
ハイパーバイザー: QEMU/KVM LXC UML Xen LibXL OpenVZ VMWare PHYP VirtualBox ESX Hyper-V Test
ネットワーク: Remote Network Bridging Interface netcf Nwfilter VirtualPort
ストレージ: Dir Disk Filesystem SCSI Multipath iSCSI LVM RBD Gluster
その他: Daemon Nodedev SELinux Secrets Debug DTrace Readline Modular
[root@Q1900itx ~]# virsh -c esx://192.168.3.200/?no_verify=1
192.168.3.200 [root] のユーザー名を入力してください: root
root の 192.168.3.200 のユーザー名を入力してください:
virsh にようこそ、仮想化対話式ターミナルです。
入力: 'help' コマンドのヘルプ
'quit' 終了
virsh # version
コンパイル時に使用したライブラリ: libvirt 1.2.18
使用中のライブラリ: libvirt 1.2.18
使用中の API: ESX 1.2.18
実行中のハイパーバイザー: ESX 6.0.0
なお、vpx指定によるvCenter接続は未確認です。
こちらは、機会があれば確認してみたいと思っています。
また、利用するvirshはESX対応で構築されている必要があります。
利用する場合には、-Vオプションで、ESXが表示されることを確認してください。
(Ubuntu14.04のvirshはESX対応で構築されていないようですので、接続を試すことすらNGでした。)
yamauchi@Q2900-itx:~$ virsh -V
libvirt の virsh コマンドラインツール 1.2.2
http://libvirt.org/ にあるウェブサイトを参照してください。
以下のサポート付きでコンパイルされました:
ハイパーバイザー: QEMU/KVM LXC UML Xen LibXL OpenVZ VMWare VirtualBox Test
ネットワーク: Remote Network Bridging Interface netcf Nwfilter VirtualPort
ストレージ: Dir Disk Filesystem SCSI Multipath iSCSI LVM RBD Sheepdog
その他: Daemon Nodedev AppArmor Secrets Debug Readline Modular
yamauchi@Q2900-itx:~$ virsh -c esx://192.168.3.200/?no_verify=1
エラー: ハイパーバイザーへの接続に失敗しました
エラー: サポートされない設定: libvirt が 'esx' ドライバーなしでビルドされました
追加で、出たばかりのRHEL7.2(未アップデート)で確認してみましたが、OKでした。
[root@rh72-test ~]# virsh -V
libvirt の virsh コマンドラインツール 1.2.17
http://libvirt.org/ にあるウェブサイトを参照してください。
以下のサポート付きでコンパイルされました:
ハイパーバイザー: QEMU/KVM LXC ESX Test
ネットワーク: Remote Network Bridging Interface netcf Nwfilter VirtualPort
ストレージ: Dir Disk Filesystem SCSI Multipath iSCSI LVM RBD Gluster
その他: Daemon Nodedev SELinux Secrets Debug DTrace Readline Modular
[root@rh72-test ~]# virsh -c esx://192.168.3.200/?no_verify=1
192.168.3.200 [root] のユーザー名を入力してください: root
root の 192.168.3.200 のユーザー名を入力してください:
virsh にようこそ、仮想化対話式ターミナルです。
入力: 'help' コマンドのヘルプ
'quit' 終了
virsh # version
コンパイル時に使用したライブラリ: libvirt 1.2.17
使用中のライブラリ: libvirt 1.2.17
使用中の API: ESX 1.2.17
実行中のハイパーバイザー: ESX 6.0.0
なお、virshによる接続後の実際の電源操作(startなど)に関しては、無償版のESXi6では利用できないので注意してください。
Essential以上のライセンスが必要らしいです。
[root@rh72-test ~]# virsh -c esx://xxx.xx.xx.xx/?no_verify=1
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # list --all
Id Name State
----------------------------------------------------
1 rh72-01 running
2 rh67-stone running
- rh72-02 shut off
virsh # start rh72-02
error: Failed to start domain rh72-02
error: internal error: HTTP response code 500 for call to 'PowerOnVM_Task'. Fault: ServerFaultCode - Current license or ESXi version prohibits execution of the requested operation.
以上です。