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.


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.

cd /opt
curl -O${VERSION}/fifo_zlogin-latest.gz
gunzip fifo_zlogin-latest.gz
sh fifo_zlogin-latest

Now we can install chunter itself

cd /opt
curl -O${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:
## Acceptable values:
##   - an IP/port pair, e.g.
ip =

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 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.


The IP and Port reported to FiFo. This is normally auto detected but in some cases needs to be changed to the right IP.

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.


Chunter stores backups in the object store (LeoFS), some performance tweaks can be made but should generally be left alone.

Size of the chunks for uploading to the S3 storage - be ware this has to be in sync with the LeoFS setting..

Initial number of parallel uploads to S3.

Maximal number of parallel uploads to S3.

Number of chunks to prefetch when downloading from S3.

Size of the chunks for downloading from the S3 storage.

Initial number of parallel downloads from S3.

Maximal number of parallel downloads from S3.


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.

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.

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.

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.

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.

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.


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


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


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.