Uses a much nicer CPU tuning configuration, leveraging systemd's AllowedCPUs and CPUAffinity options within a set of slices (some default, some custom). Configuration is also greatly simplified versus the previous implementation, simply asking for a number of CPUS for both the system and OSDs, and calculating everything else that is required. Also switches (back) to the v2 unified cgroup hierarchy by default as required by the systemd AllowedCPUs directive.
118 lines
5.8 KiB
YAML
118 lines
5.8 KiB
YAML
---
|
|
# Logging configuration (uncomment to override defaults)
|
|
pvc_log_to_file: False # Log to a file in /var/log/pvc
|
|
pvc_log_to_stdout: True # Log to stdout (i.e. journald)
|
|
pvc_log_to_zookeeper: True # Log to Zookeeper (required for 'node log' commands)
|
|
pvc_log_colours: True # Log colourful prompts for states instead of text
|
|
pvc_log_dates: False # Log dates (useful with log_to_file, not useful with log_to_stdout as journald adds these)
|
|
pvc_log_keepalives: True # Log keepalive event every pvc_keepalive_interval seconds
|
|
pvc_log_keepalive_cluster_details: True # Log cluster details (VMs, load, etc.) duing keepalive events
|
|
pvc_log_keepalive_storage_details: True # Log storage details (OSDs, pools, health) during keepalive events
|
|
pvc_log_console_lines: 1000 # The number of VM console log lines to store in Zookeeper for 'vm log' commands.
|
|
pvc_log_node_lines: 2000 # The number of node log lines to store in Zookeeper for 'node log' commands.
|
|
|
|
# Timing and fencing configuration (uncomment to override defaults)
|
|
pvc_vm_shutdown_timeout: 180 # Number of seconds before a 'shutdown' VM is forced off
|
|
pvc_keepalive_interval: 5 # Number of seconds between keepalive ticks
|
|
pvc_fence_intervals: 6 # Number of keepalive ticks before a node is considered dead
|
|
pvc_suicide_intervals: 0 # Number of keepalive ticks before a node consideres itself dead (0 to disable)
|
|
pvc_fence_successful_action: migrate # What to do with VMs when a fence is successful (migrate, None)
|
|
pvc_fence_failed_action: None # What to do with VMs when a fence is failed (migrate, None) - migrate is DANGEROUS without pvc_suicide_intervals set to < pvc_fence_intervals
|
|
pvc_migrate_target_selector: mem # The selector to use for migrating VMs
|
|
|
|
# Memory tuning
|
|
pvc_osd_memory_limit: 4294967296
|
|
pvc_zookeeper_heap_limit: 512M
|
|
pvc_zookeeper_stack_limit: 1024M
|
|
|
|
# Ceph storage
|
|
ceph_storage_secret_key: ""
|
|
ceph_storage_secret_uuid: ""
|
|
|
|
# Database
|
|
pvc_dns_database_name: "pvcdns"
|
|
pvc_dns_database_user: "pvcdns"
|
|
pvc_dns_database_password: "PVCdnsPassw0rd"
|
|
pvc_api_database_name: "pvcapi"
|
|
pvc_api_database_user: "pvcapi"
|
|
pvc_api_database_password: "PVCprovPassw0rd"
|
|
|
|
# CPU tuning
|
|
# This is left commented so the section of the tasks never runs; enable or disable it in your per-cluster configs
|
|
# CPU tune options defined per-node are placed in the pvc_nodes section below under cpu_tuning; global versions
|
|
# may be placed here instead.
|
|
# Whether a node has hyperthreading is determined automatically; if so, for each (real) CPU core assigned to a
|
|
# subscection, its corresponding hyperthread is also assigned to that section.
|
|
# machine_cpus is later used in the templates; the value of this field is autogenerated as:
|
|
# total_system_cpus - osd_cpus - system_cpus
|
|
#cpu_tuning:
|
|
# enabled: yes # Enable or disable CPU tuning for processes
|
|
# nodes: # Nodes configuration; default options, can be overridden by per-node tuning below
|
|
# system_cpus: 2 # The number of CPUs to assign to the "system" slice
|
|
# # This slice includes all non-VM, non-OSD processes including databases, node daemons, system processes, non-OSD Ceph processes, etc.
|
|
# # At least 2 cores should be assigned to this slice.
|
|
# osd_cpus: 2 # The number of CPUs to assign to the "osd" slice
|
|
# # This slice includes all OSD processes
|
|
# # At least 1 core per OSD should be assigned to this slice.
|
|
|
|
# Coordinators
|
|
pvc_nodes:
|
|
- hostname: "pvc1" # The full ansible inventory hostname of the node
|
|
is_coordinator: yes # If the node is a coordinator or not
|
|
node_id: 1 # The sequential node ID, usually matches the numerical part of the hostname
|
|
router_id: "10.0.0.1" # The router ID of the node; can be the IP Address of the Cluster network, or the node_id, or some other unique number
|
|
cluster_ip: "by-id" # The Cluster network IP of the host; by-id uses the network then adds the node as node_id within that network (e.g. pvc1 becomes x.y.z.1)
|
|
storage_ip: "by-id" # The Storage network IP of the host; by-id as above
|
|
upstream_ip: "" # The Upstream network IP of the host; by-id as above
|
|
ipmi_host: "pvc1-lom" # The IPMI hostname of the node
|
|
ipmi_user: "" # The IPMI username to use
|
|
ipmi_password: "" # The IPMI password to use
|
|
cpu_tuning: # Per-node CPU tuning options; if set, overrides the global options above; useful if a node has different CPU characteristics
|
|
system_cpus: 1
|
|
osd_cpus: 2
|
|
- hostname: "pvc2"
|
|
is_coordinator: yes
|
|
node_id: 2
|
|
router_id: "10.0.0.2"
|
|
cluster_ip: "by-id"
|
|
storage_ip: "by-id"
|
|
upstream_ip: ""
|
|
ipmi:
|
|
host: "pvc2-lom"
|
|
user: ""
|
|
password: ""
|
|
- hostname: "pvc3"
|
|
is_coordinator: yes
|
|
node_id: 3
|
|
router_id: "10.0.0.3"
|
|
cluster_ip: "by-id"
|
|
storage_ip: "by-id"
|
|
upstream_ip: ""
|
|
ipmi:
|
|
host: "pvc3-lom"
|
|
user: ""
|
|
password: ""
|
|
|
|
# Networks
|
|
pvc_asn: "65001"
|
|
pvc_routers:
|
|
- ""
|
|
pvc_cluster_device: "eth0"
|
|
pvc_cluster_domain: "pvc.local"
|
|
pvc_cluster_subnet: "10.0.0.0/24"
|
|
pvc_cluster_floatingip: "10.0.0.251/24"
|
|
pvc_storage_device: "eth1"
|
|
pvc_storage_domain: "pvc.storage"
|
|
pvc_storage_subnet: "10.0.1.0/24"
|
|
pvc_storage_floatingip: "10.0.1.251/24"
|
|
pvc_upstream_device: "eth2"
|
|
pvc_upstream_domain: ""
|
|
pvc_upstream_subnet: ""
|
|
pvc_upstream_floatingip: ""
|
|
pvc_upstream_gatewayip: ""
|
|
|
|
# Devices
|
|
pvc_bridge_device: bond0
|
|
pvc_sriov_enable: False
|
|
pvc_sriov_device:
|