一: 第1种是通过fence_virsh

 1. 以下是fence_virsh帮助的一部分

[root@master ~]# fence_virsh --help
Usage:
        fence_virsh [options]
Options:
   -a, --ip=[ip]                  IP address or hostname of fencing device
   -l, --username=[name]          Login name                           
   -p, --password=[password]      Login password or passphrase
   -c, --command-prompt=[prompt]  Force Python regex for command prompt
   -x, --ssh                      Use SSH connection
   -n, --plug=[id]                Physical plug number on device, UUID or
                                        identification of machine
   -u, --ipport=[port]            TCP/UDP port to use (default 22)
   -S, --password-script=[script] Script to run to retrieve password
   -k, --identity-file=[filename] Identity file (private key) for SSH
   --ssh-options=[options]        SSH options to use
   -4, --inet4-only               Forces agent to use IPv4 addresses only
   -6, --inet6-only               Forces agent to use IPv6 addresses only
   -o, --action=[action]          Action: on, off, reboot (default), status, list,
                                        list-status, monitor, metadata, manpage or
                                        validate-all

2. 比如在kvm虚拟机node1上调用fence_virsh显示kvm宿主机上定义的所有虚拟机

[root@node1 ~]# fence_virsh -a 192.168.100.1 -l root -p 111111 -o list
node1,
node2,
[root@node1 ~]#

注:其中action可以是on, off, reboot (default), status, list,list-status, monitor, metadata, manpage or validate-all

 

二:  第2种是通过fence_virt

1. 在kvm宿主机上安装所需包

yum -y install fence-virtd fence-virtd-libvirt fence-virtd-tcp

2. 配置fence-virtd配置文件/etc/fence_virt.conf

[root@master ~]# cat /etc/fence_virt.conf
fence_virtd {
        listener = "tcp";
        backend = "libvirt";
}

listeners {
        tcp {
                key_file = "/etc/cluster/fence_xvm.key";
                address = "192.168.100.1";
                port = "1229";
        }
}

backends {
        libvirt {
                uri = "qemu:///system";
        }
}
[root@master ~]#

3. 创建key_file

[root@master ~]# mkdir /etc/cluster
[root@master ~]# echo "mysharedkey" > /etc/cluster/fence_xvm.key

4. 启动fence_virtd

[root@master ~]# systemctl enable --now fence_virtd

5. 在kvm虚拟机node1上,安装fence-virt, 并同步key_file

[root@node1 ~]# yum -y install fence-virt
[root@node1 ~]# mkdir /etc/cluster
[root@node1 ~]# scp 192.168.100.1:/etc/cluster/fence_xvm.key /etc/cluster/

6. 比如在kvm虚拟机node1上调用fence-virt显示kvm宿主机上定义的所有虚拟机

[root@node1 ~]# fence_virt -T 192.168.100.1 -p 1229 -o list
node1                            90af8391-d531-4d0c-8548-7b3232ddf27f off
node2                            a062975c-c8e9-4a8b-b025-9625713d8072 off
[root@node1 ~]#

注:其中action可以是null, off, on, [reboot], status, list,list-status, monitor, validate-all, metadata