Directory - dir¶
The directory storage driver is a basic backend that stores its data in a standard file and directory structure. This driver is quick to set up and allows inspecting the files directly on the disk, which can be convenient for testing. However, Incus operations are not optimized for this driver.
dir driver in Incus¶
The dir driver in Incus is fully functional and provides the same set of features as other drivers.
However, it is much slower than all the other drivers because it must unpack images and do instant copies of instances, snapshots and images.
Unless specified differently during creation (with the source configuration option), the data is stored in the /var/lib/incus/storage-pools/ directory.
Quotas¶
The dir driver supports storage quotas when running on either ext4 or XFS with project quotas enabled at the file system level.
Configuration options¶
The following configuration options are available for storage pools that use the dir driver and for storage volumes in these pools.
Storage pool configuration¶
rsync.bwlimitThe upper limit to be placed on the socket I/O when rsync must be used to transfer storage entities
| Key: | rsync.bwlimit |
| Type: | string |
| Default: |
|
| Scope: | global |
| Key: | rsync.compression |
| Type: | bool |
| Default: |
|
| Scope: | global |
Tip
In addition to these configurations, you can also set default values for the storage volume configurations. See Configure default values for storage volumes.
Storage volume configuration¶
| Key: | initial.gid |
| Type: | int |
| Default: | same as |
| Condition: | custom volume with content type |
| Key: | initial.mode |
| Type: | int |
| Default: | same as |
| Condition: | custom volume with content type |
| Key: | initial.uid |
| Type: | int |
| Default: | same as |
| Condition: | custom volume with content type |
| Key: | security.shifted |
| Type: | bool |
| Default: | same as |
| Condition: | custom volume |
| Key: | security.size |
| Type: | string |
| Default: | same as |
| Condition: | appropriate driver |
| Key: | security.unmapped |
| Type: | bool |
| Default: | same as |
| Condition: | custom volume |
snapshots.expiryControls when snapshots are to be deleted (expects an expression like 1M 2H 3d 4w 5m 6y)
| Key: | snapshots.expiry |
| Type: | string |
| Default: | same as |
| Condition: | custom volume |
snapshots.expiry.manualControls when snapshots are to be deleted (expects an expression like 1M 2H 3d 4w 5m 6y)
| Key: | snapshots.expiry.manual |
| Type: | string |
| Default: | same as |
| Condition: | custom volume |
snapshots.patternPongo2 template string that represents the snapshot name (used for scheduled snapshots and unnamed snapshots) [1]
| Key: | snapshots.pattern |
| Type: | string |
| Default: | same as |
| Condition: | custom volume |
snapshots.scheduleCron expression (<minute> <hour> <dom> <month> <dow>), a comma-separated list of schedule aliases (@hourly, @daily, @midnight, @weekly, @monthly, @annually, @yearly), or empty to disable automatic snapshots (the default)
| Key: | snapshots.schedule |
| Type: | string |
| Default: | same as |
| Condition: | custom volume |
Storage bucket configuration¶
To enable storage buckets for local storage pool drivers and allow applications to access the buckets via the S3 protocol, you must configure the core.storage_buckets_address server setting.
Storage buckets do not have any configuration for dir pools.
Unlike the other storage pool drivers, the dir driver does not support bucket quotas via the size setting.