Chunter
Chunter is Project FiFo's hypervisor interaction service. Chunter runs on each hypervisor controlled by Project-FiFo. Chunter interacts with SmartOS to create, update, and destroy vms. Chunter also collects vm and performance data to report back to Howl.
Installation
Please read the Chunter section in the current build section above for basic information on Chunter and some helpful notes before continuing.
To install Chunter we do the following:
- To install the release version use
VERSION=rel
- To install the development version use
VERSION=dev
All the following commands are to be executed in the Global Zone.
First we need to install fifo's zdoor server.
VERSION=rel
cd /opt
curl -O http://release.project-fifo.net/gz/${VERSION}/fifo_zlogin-latest.gz
gunzip fifo_zlogin-latest.gz
sh fifo_zlogin-latest
Now we can install chunter itself
VERSION=rel
cd /opt
curl -O http://release.project-fifo.net/gz/${VERSION}/chunter-latest.gz
gunzip chunter-latest.gz
sh chunter-latest
Make sure the configuration reflects the correct IP of your admin network that sniffle and snarl also reside on. The config file is /opt/chunter/etc/chunter.conf
## The port And IP chunter does listen on, usually it will be
## auto detected as the first network iterface in the system, if it still
## needs to be changed it can be done here.
##
## Default: 192.168.1.21:4000
##
## Acceptable values:
## - an IP/port pair, e.g. 192.168.1.21:10011
ip = 192.168.1.21:4000
Once services have been installed, we enable the service and ensure that it is running
svcadm enable epmd
svcs epmd
svcadm enable fifo/zlogin
svcs fifo/zlogin
svcadm enable chunter
svcs chunter
If the service is running you should see:
STATE STIME FMRI
online Dec_31 svc:/network/chunter:default
Once the service is running FiFo will auto-discover the node and after about a minute the SmartOS Node will appear in the FiFo web browser to be managed.
Chunter will try to guess the systems IP. It will look for a fifo0
vnic. If this doesn't exist it will take the IP of the admin
nic. If Chunter registered with a wrong IP the correct IP can be changed in the config file. After changing the IP address in the config the hypervisor need to be re-registered. This can be done by removing and restarting Chunter svcadm restart chunter
).
Configuration
Configuration file
Chunter's configuration file is located in /opt/chunter/etc/chunter.conf
. It is automatically generated on the first install and will not be overwritten on updates. None the less the newest version of the file is always located in /opt/chunter/etc/chunter.conf.example
.
In addition Chunter keeps a file /opt/chunter/etc/hostid
that helps identifying the host throughout updates, hostname changes, and re-installations.
The configuration file is documented in-line but we'll go over some more interesting settings here.
General
ip
The IP and Port reported to FiFo. This is normally auto detected but in some cases needs to be changed to the right IP.
reserved_memory
The amount of memory reserved on the hypervisor that can not be given out to VMs. This can be very helpful to ensure some memory is left for the global zone and ARC.
S3
Chunter stores backups in the object store (LeoFS), some performance tweaks can be made but should generally be left alone.
s3_upload_chunk_size
Size of the chunks for uploading to the S3 storage - be ware this has to be in sync with the LeoFS setting..
parallel_uploads
Initial number of parallel uploads to S3.
max_paralell_uploads
Maximal number of parallel uploads to S3.
preload
Number of chunks to prefetch when downloading from S3.
s3_download_chunk_size
Size of the chunks for downloading from the S3 storage.
paralell_downloads
Initial number of parallel downloads from S3.
max_paralell_downloads
Maximal number of parallel downloads from S3.
Intervals
Chunter allows the users to configure various intervals that get a balance between accuracy and load. The defaults are sensible values but can be tuned as needed.
update_services_interval
The interval services for a zone are checked. The default is 10s. Changes are noted even when the state is the same at least for the nsq logging.
snapshot_update_interval
The interval the ZFS snapshots are checked. This should not be too fast since it will increase load. The default is every 15 minutes. This also does not change too often so increasing it does not make too much sense.
zonemon_interval
The intervals the zones are checked for their state. This means running zoneadm list -ip
on the node. This is only required if a change is missed due to some hiccup but it ensures that the state of zones is always up to date.
Generally the more often this happen the lower are the chances a state is misrepresented but the higher is the load on the system. This operation is fairly inexpensive.
zpool_interval
The interval in which the zpool is checked for degraded disks. This is a more expensive operation so it should not be executed not too frequently. Generally an interval of 15s means that in a worst case a degraded pool stays undetected for 15s.
arc_interval
The interval in which the systems ARC status is checked. This is purely informational and slowly changing a higher interval is usually not a issue.
Administration
General management
Chunter uses the SMF to manage it's running state so it is restarted in the case of crashes and booted accordingly on system start. Chunter can be enabled, disabled and restarted via: svcadm enable chunter
, svcadm disable chunter
and svcadm restart chunter
Updating
Chunter can be updated by running /opt/chunter/bin/update
this script will check for new updates and install them as needed.
Installing the new package
/opt/chunter/bin/update
Updating the config
After the newest package is installed the config file should be checked for changes and edited if needed. The .example
file will always contain the newest version of the config. diff
is a handy tool to see if some settings need to be added to the existing file.
diff /opt/chunter/etc/chunter.conf /opt/chunter/etc/chunter.conf.example
vi /opt/chunter/etc/chunter.conf
Restarting the service
Chunter can be restarted by running svcadm restart chunter
.
Manually created VM's
Chunter does not automatically detect manually created VMs. To make Chunter aware of them it needs to be restarted: svcadm restart chunter
.
Updated almost 7 years ago