Drives - guydavis/machinaris GitHub Wiki
Machinaris supports optional drive monitoring with smartctl
from inside the Docker container.
The grid view above is good for small farms, however a filterable table-view is available for those with many drives on many Workers.
Configuration
You'll need to enable the RAWIO capability for the Machinaris containers (Chia blockchain only, one per host machine), that will be monitoring the hosts drives. Please add a device mapping for each raw drive device to be monitored.
Docker-Compose
Extend the docker-compose.yml
generated using the Machinaris setup wizard by adding the new cap_add
and devices
sections below under your 'machinaris' container section, at the same level as 'environment', 'ports', and 'volumes':
cap_add:
- SYS_RAWIO
devices:
- /dev/sda:/dev/sda
- /dev/sdb:/dev/sdb
- /dev/sdb:/dev/sdb
...
Unraid
For Unraid, add the new capability and devices using this example for Unraid "Extra Parameters" field, available when editing the Docker configuration for the Machinaris container (Chia blockchain only) in the Unraid Admin UI.
-h $HOSTNAME -v /run/udev:/run/udev:ro --cap-add SYS_RAWIO --device=/dev/sda --device=/dev/sdb --device=/dev/sdd --device=/dev/sde --device=/dev/sdg --device=/dev/sdh --device=/dev/sdi --device=/dev/sdo --device=/dev/sdq
Alerting
Alerts are sent via Chiadog notification settings when SMART indicates a problem with a drive.
Temperature
Currently, the default color-coded system of temperature alerts is:
- Less than 40 deg. Celsius is green (good).
- Between than 40 and 50 deg. Celsius is yellow (warning).
- More than 50 deg. Celsius is red (alert).
These temperature levels can be modified by clicking the Settings (gear icon) in the top-right of the Drives page.
Known Issues
Windows Support
Unfortunately, it seems that Docker on a Windows host is not able to expose native devices, like drives, into a Linux container such as Machinaris. Please let us know if you are aware of a workaround!
Override Command
Certain drive hardware does not automatically get handled well by the general smartctl -a /dev/sdX
command that is run for reach device, such as /dev/sde
, /dev/sdf
, etc. In some cases, the smartcl --scan
that Machinaris runs in-container does not report the device you mapped. In that case, place the following JSON config file at path ~/.machinaris/machinaris/config/drives_overrides.json
:
{
"/dev/sdf": { }
}
This ensures that Machinaris will check that drive with a smartcl -a /dev/sdf
call.
In other cases, where you wish to override the smartctl command to specify the device type: smartctl -a -d scsi /dev/sdX
(example), you can enter additional parameters per device. place the following JSON config file at path
~/.machinaris/machinaris/config/drives_overrides.json
:
{
"/dev/sdi": { "device_type": "sata" },
"/dev/sde": { "device_type": "scsi" }
}
In this example, just the two specified devices will have an override device type (aka -d TYPE
) parameter passed to smartctl.