| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, | |
| # software distributed under the License is distributed on an | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| # KIND, either express or implied. See the License for the | |
| # specific language governing permissions and limitations | |
| # under the License. | |
| # Sample configuration file for CloudStack agent | |
| # The GUID to identify the agent with, this is mandatory! | |
| # Generate with "uuidgen" | |
| guid= | |
| #resource= the java class, which agent load to execute | |
| resource=com.cloud.hypervisor.kvm.resource.LibvirtComputingResource | |
| #workers= number of threads running in agent | |
| workers=5 | |
| #host= The IP address of management server | |
| host=localhost | |
| # The time interval in seconds after which agent will check if connected host | |
| # is the preferred host (the first host in the comma-separated list is preferred | |
| # one) and will attempt to reconnect to the preferred host when it's connected | |
| # to one of the secondary/backup hosts. The timer task is scheduled after agent | |
| # connects to a management server. On connection, it receives admin configured | |
| # cluster-level 'indirect.agent.lb.check.interval' setting that will be used by | |
| # the agent as the preferred host check interval however the following setting | |
| # if defined overrides the received value. The value 0 and lb algorithm 'shuffle' | |
| # disables this background task. | |
| #host.lb.check.interval=0 | |
| #port = The port management server listening on, default is 8250 | |
| port=8250 | |
| #cluster= The cluster which the agent belongs to | |
| cluster=default | |
| #pod= The pod which the agent belongs to | |
| pod=default | |
| #zone= The zone which the agent belongs to | |
| zone=default | |
| #public.network.device= the public nic device | |
| # if this is commented, it is autodetected on service startup | |
| # public.network.device=cloudbr0 | |
| #private.network.device= the private nic device | |
| # if this is commented, it is autodetected on service startup | |
| # private.network.device=cloudbr1 | |
| #guest.network.device= the guest nic device | |
| # if this is commented, the private nic device will be used | |
| # local storage path, by default, it's /var/lib/libvirt/images/ | |
| #local.storage.path=/var/lib/libvirt/images/ | |
| # Qemu socket path, directory where Qemu sockets are placed. | |
| # These sockets are for the Qemu Guest Agent and SSVM privisioning | |
| # Make sure that AppArmor or SELinux allow libvirt to write there | |
| #qemu.sockets.path=/var/lib/libvirt/qemu | |
| # The UUID for the local storage pool, this is mandatory! | |
| # Generate with "uuidgen" | |
| local.storage.uuid= | |
| # Location for KVM scripts | |
| domr.scripts.dir=scripts/network/domr/kvm | |
| # the timeout for time-consuming operations, such as create/copy snapshot | |
| #cmds.timeout=7200 | |
| # set the vm migrate speed, by default, it will try to guess the speed of the guest network | |
| # In MegaBytes per second | |
| #vm.migrate.speed=0 | |
| # set target downtime at end of livemigration, the 'hiccup' for final copy. Higher numbers | |
| # make livemigration easier, lower numbers may cause migration to never complete. Less than 1 | |
| # means hypervisor default (20ms). | |
| #vm.migrate.downtime=0 | |
| # Busy VMs may never finish migrating, depending on environment. When its available, we will | |
| # want to add support for autoconvergence migration flag which should fix this. Set an upper | |
| # limit in milliseconds for how long live migration should wait, at which point VM is paused and | |
| # migration will finish quickly. Less than 1 means disabled. | |
| #vm.migrate.pauseafter=0 | |
| # Agent hooks is the way to override default agent behavior to extend the functionality without excessive coding | |
| # for a custom deployment. The first hook promoted is libvirt-vm-xml-transformer which allows provider to modify | |
| # VM XML specification before send to libvirt. Hooks are implemented in Groovy and must be implemented in the way | |
| # to keep default CS behaviour is something goes wrong. | |
| # All hooks are located in a special directory defined in 'agent.hooks.basedir' | |
| # | |
| # agent.hooks.basedir=/etc/cloudstack/agent/hooks | |
| # every hook has two major attributes - script name, specified in 'agent.hooks.*.script' and method name | |
| # specified in 'agent.hooks.*.method'. | |
| # Libvirt XML transformer hook does XML-to-XML transformation which provider can use to add/remove/modify some | |
| # sort of attributes in Libvirt XML domain specification. | |
| # agent.hooks.libvirt_vm_xml_transformer.script=libvirt-vm-xml-transformer.groovy | |
| # agent.hooks.libvirt_vm_xml_transformer.method=transform | |
| # | |
| # The hook is called right after libvirt successfuly launched VM | |
| # agent.hooks.libvirt_vm_on_start.script=libvirt-vm-state-change.groovy | |
| # agent.hooks.libvirt_vm_on_start.method=onStart | |
| # | |
| # The hook is called right after libvirt successfuly stopped VM | |
| # agent.hooks.libvirt_vm_on_stop.script=libvirt-vm-state-change.groovy | |
| # agent.hooks.libvirt_vm_on_stop.method=onStop | |
| # | |
| # set the type of bridge used on the hypervisor, this defines what commands the resource | |
| # will use to setup networking. Currently supported NATIVE, OPENVSWITCH | |
| #network.bridge.type=native | |
| # set the driver used to plug and unplug nics from the bridges | |
| # a sensible default will be selected based on the network.bridge.type but can | |
| # be overridden here. | |
| # native = com.cloud.hypervisor.kvm.resource.BridgeVifDriver | |
| # openvswitch = com.cloud.hypervisor.kvm.resource.OvsVifDriver | |
| #libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.BridgeVifDriver | |
| # Set DPDK Support on OpenVswitch | |
| #openvswitch.dpdk.enabled=true | |
| #openvswitch.dpdk.ovs.path=/var/run/openvswitch | |
| # set the hypervisor type, values are: kvm, lxc | |
| hypervisor.type=kvm | |
| # This parameter specifies a directory on the host local storage for temporary storing direct download templates | |
| #direct.download.temporary.download.location=/var/lib/libvirt/images | |
| # This parameter specifies a directory on the host local storage for creating and hosting the config drives | |
| #host.cache.location=/var/cache/cloud | |
| # set the rolling maintenance hook scripts directory | |
| #rolling.maintenance.hooks.dir=/etc/cloudstack/agent/hooks.d | |
| # disable the rolling maintenance service execution | |
| #rolling.maintenance.service.executor.disabled=true | |
| # set the hypervisor URI. Usually there is no need for changing this | |
| # For KVM: qemu:///system | |
| # For LXC: lxc:/// | |
| # hypervisor.uri=qemu:///system | |
| # settings to enable direct networking in libvirt, should not be used | |
| # on hosts that run system vms, values for mode are: private, bridge, vepa | |
| # libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.DirectVifDriver | |
| # network.direct.source.mode=private | |
| # network.direct.device=eth0 | |
| # setting to enable the cpu model to kvm guest globally. | |
| # three option:custom,host-model and host-passthrough. | |
| # custom - user custom the CPU model which specified by guest.cpu.model. | |
| # host-model - identify the named CPU model which most closely matches the host, | |
| # and then request additional CPU flags to complete the match. This should give | |
| # close to maximum functionality/performance, which maintaining good | |
| # reliability/compatibility if the guest is migrated to another host with slightly different host CPUs. | |
| # host-passthrough - tell KVM to passthrough the host CPU with no modifications. | |
| # The difference to host-model, instead of just matching feature flags, | |
| # every last detail of the host CPU is matched. This gives absolutely best performance, | |
| # and can be important to some apps which check low level CPU details, | |
| # but it comes at a cost wrt migration. The guest can only be migrated to | |
| # an exactly matching host CPU. | |
| # | |
| # guest.cpu.mode=custom|host-model|host-passthrough | |
| # This param is only valid if guest.cpu.mode=custom, | |
| # for examples:"Conroe" "Penryn", "Nehalem", "Westmere", "pentiumpro" and so | |
| # on,run virsh capabilities for more details. | |
| # guest.cpu.model= | |
| # | |
| # This param will set the CPU architecture for the domain override what | |
| # the management server would send | |
| # In case of arm64 (aarch64), this will change the machine type to 'virt' and | |
| # adds a SCSI and a USB controller in the domain xml. | |
| # guest.cpu.arch=x86_64|aarch64 | |
| # | |
| # This param will require CPU features on the <cpu> section | |
| # guest.cpu.features=vmx vme | |
| # | |
| # vm.memballoon.disable=true | |
| # Disable memory ballooning on vm guests for overcommit, by default overcommit | |
| # feature enables balloon and sets currentMemory to a minimum value. | |
| # | |
| # vm.diskactivity.checkenabled=false | |
| # Set to true to check disk activity on VM's disks before starting a VM. This only applies | |
| # to QCOW2 files, and ensures that there is no other running instance accessing | |
| # the file before starting. It works by checking the modify time against the current time, | |
| # so care must be taken to ensure the cluster has time synced, otherwise VMs may fail to start. | |
| # | |
| # vm.diskactivity.checktimeout_s=120 | |
| # Timeout for giving up on waiting for VM's disk files to become inactive. Hitting | |
| # this timeout will result in failure to start VM. | |
| # | |
| # vm.diskactivity.inactivetime_ms=30000 | |
| # This is the length of time that the disk needs to be inactive in order to pass the check. | |
| # This means current time minus mtime of disk file needs to be greater than this number. | |
| # It also has the side effect of setting the minimum threshold between a stop and start of | |
| # a given VM. | |
| # | |
| # kvmclock.disable=false | |
| # Some newer linux kernels are incapable of reliably migrating vms with kvmclock | |
| # This is a workaround for the bug, admin can set this to true per-host | |
| # | |
| # vm.rng.enable=false | |
| # This enabled the VirtIO Random Number Generator device for guests. | |
| # | |
| # vm.rng.model=random | |
| # The model of VirtIO Random Number Generator (RNG) to present to the Guest. | |
| # Currently only 'random' is supported. | |
| # | |
| # vm.rng.path=/dev/random | |
| # Local Random Number Device Generator to use for VirtIO RNG for Guests. | |
| # This is usually /dev/random, but per platform this might be different | |
| # | |
| # vm.rng.rate.bytes=2048 | |
| # The amount of bytes the Guest may request/obtain from the RNG in the period | |
| # specified below. | |
| # | |
| # vm.rng.rate.period=1000 | |
| # The number of milliseconds in which the guest is allowed to obtain the bytes | |
| # specified above. | |
| # | |
| # router.aggregation.command.each.timeout=600 | |
| # timeout value for aggregation commands send to virtual router | |
| # | |
| # host.overcommit.mem.mb = 0 | |
| # allows to increase amount of ram available on host virtually to utilize Zswap, KSM features | |
| # and modern fast SSD/3D XPoint devices. Specified amount of MBs is added to the memory agent | |
| # reports to the Management Server | |
| # Default: 0 | |
| # | |
| # host.reserved.mem.mb = 0 | |
| # How much host memory to reserve for non-allocation. | |
| # A useful parameter if a node uses some other software that requires memory, | |
| # or in case that OOM Killer kicks in sometimes. | |
| # If this parameter is used, host.overcommit.mem.mb must be set to 0. | |
| # Default value: 0 | |
| # | |
| # vm.watchdog.model=i6300esb | |
| # The model of Watchdog timer to present to the Guest | |
| # For all models refer to the libvirt documentation. | |
| # Recommend value is: i6300esb | |
| # | |
| # vm.watchdog.action=none | |
| # Action to take when the Guest/Instance is no longer notifiying the Watchdog | |
| # timer. | |
| # For all actions refer to the libvirt documentation. | |
| # Recommended values are: none, reset and poweroff. | |
| # | |
| iscsi.session.cleanup.enabled=false | |
| # Automatically clean up iscsi sessions not attached to any VM. | |
| # Should be enabled for users using managed storage for example solidfire. | |
| # Should be disabled for users with unmanaged iscsi connections on their hosts |