cloudfoundry / bosh

Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
https://bosh.io
Apache License 2.0
2.03k stars 657 forks source link

mount option for ephemeral disk (alternative to cron scheduling fstrim) #2534

Open gberche-orange opened 2 weeks ago

gberche-orange commented 2 weeks ago

Is your feature request related to a problem? Please describe.

As a bosh operator, in order to reclaim space on ephemeral thin-provisioned disk, I need bosh to support specifying the mount option to discard

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vsan.doc/GUID-C75E80AE-2DA8-4314-98E5-B7F8CE98E1BF.html

Deleting or removing files frees space within the file system. This free space is mapped to a storage device until the file system releases or unmaps it. vSAN supports reclamation of free space, which is also called the unmap operation. vSAN also supports the SCSI UNMAP commands issued directly from a guest operating system to reclaim storage space. vSAN supports offline unmaps and inline unmaps. On Linux OS, offline unmaps are performed with the fstrim(8) command, and inline unmaps are performed when the mount -o discard command is used.

Currently, bosh only supports controlling mount options on persistent disks:

https://bosh.io/docs/manifest-v2/#instance-groups

persistent_disk_mount_options [Array of strings, optional]: Mount options when mounting persistent disk. Example: ["noatime"].

whereas ephemeral disk mount points can not be changed:

# mount | grep /var/vcap/data
/dev/sdb1 on /var/vcap/data type ext4 (rw,relatime)

Describe the solution you'd like

A new property ephemeral_disk_mount_options which I can set to ['discard']

Describe alternatives you've considered

Scheduling a cron to periodically execute fstrim

Additional context Add any other context or screenshots about the feature request here.

rkoster commented 2 weeks ago

This sounds like a useful feature, happy to review a PR for this.