Completely restructure the daemon code to move the 4 discrete daemons into a single daemon that can be run on every hypervisor. Introduce the idea of a static list of "coordinator" nodes which are configured at install time to run Zookeeper and FRR in router mode, and which are allowed to take on client network management duties (gateway, DHCP, DNS, etc.) while also allowing them to run VMs (i.e. no dedicated "router" nodes required).
67 lines
3.7 KiB
Plaintext
67 lines
3.7 KiB
Plaintext
# pvcd cluster configuration file example
|
|
#
|
|
# This configuration file specifies details for this node in PVC. Multiple node
|
|
# blocks can be added but only the one matching the current system nodename will
|
|
# be used by the local daemon. Default values are not supported; the values in
|
|
# this sample configuration are considered defaults and, with adjustment of the
|
|
# nodename section and coordinators list, can be used as-is on a Debian system.
|
|
#
|
|
# The following values are required for each node or in a default section:
|
|
# coordinators: A CSV list of the short hostnames of the coordinator nodes; these nodes become
|
|
# members of the Zookeeper cluster, can act as routers, and perform additional
|
|
# special functions in a cluster; ideally there are 3 coordinators, though 5
|
|
# coordinators are supported
|
|
# dynamic_directory: The ramdisk directory for PVC to store its dynamic configurations,
|
|
# usually under /run or /var/run
|
|
# log_directory: The logging directory, usually under /var/log
|
|
# file_logging = Whether to log daemon to a file (pvc.log under log_directory) in addition to
|
|
# normal stdout printing
|
|
# keepalive_interval: the interval between keepalives and for dead node timeout (defaults to 5)
|
|
# fence_intervals: the number of keepalive_intervals without Zookeeper contact before this node
|
|
# will consider another node dead and fence it (defaults to 6, i.e. 30s)
|
|
# suicide_intervals: the number of keepalive_intervals without Zookeeper contact before this
|
|
# node will consider itself failed and terminate all running VMs (defaults
|
|
# to 0, i.e. disabled); should be less than "fence_intervals"
|
|
# successful_fence: the action to take on a successful fencing operation; can be "none" or
|
|
# "migrate" (defaults to "migrate")
|
|
# failed_fence: the action to take on a failed fencing operation; can be "none" or "migrate"
|
|
# (defaults to "none"); "migrate" requires "suicide_intervals" to be set)
|
|
# NOTE: POTENTIALLY DANGEROUS - see README for details
|
|
# migration_target_selector: the method to use to select target nodes during a virtual machine
|
|
# flush action; can be "mem", "load", "vcpus", or "vms" (defaults
|
|
# to "mem"); the best choice based on this field is selected for
|
|
# each VM to be migrated
|
|
# The following values are required for each node specifically (usually node-unique):
|
|
# vni_dev: the lower-level network device to bind VNI traffic to
|
|
# vni_dev_ip: the IP address (in CIDR format) of the lower-level network device, used by frr
|
|
# to communicate between nodes and pass routes between them.
|
|
# storage_dev: the lower-level network device to bind storage traffic to
|
|
# storage_dev_ip: the IP address (in CIDR format) of the lower-level network device, used by
|
|
# Ceph for storage traffic (both monitor and OSD).
|
|
# ipmi_hostname: the IPMI hostname for fencing (defaults to <shortname>-lom.<domain>)
|
|
# ipmi_username: username to connect to IPMI
|
|
# ipmi_password: password to connect to IPMI
|
|
#
|
|
# Copy this example to /etc/pvc/pvcd.conf and edit to your needs
|
|
|
|
[default]
|
|
coordinators = pvc-hv1,pvc-hv2,pvc-hv3
|
|
dynamic_directory = /run/pvc
|
|
log_directory = /var/log/pvc
|
|
file_logging = True
|
|
keepalive_interval = 5
|
|
fence_intervals = 6
|
|
suicide_intervals = 0
|
|
successful_fence = migrate
|
|
failed_fence = none
|
|
migration_target_selector = mem
|
|
|
|
[pvc-hv1]
|
|
vni_dev = ens4
|
|
vni_dev_ip = 10.255.0.1/24
|
|
storage_dev = ens4
|
|
storage_dev_ip = 10.254.0.1/24
|
|
ipmi_username = admin
|
|
ipmi_password = Passw0rd
|
|
ipmi_hostname = pvc-hv1-lom
|