ui: expose GC atime safety check flag in datastore tuning options

Allow to edit the atime safety check flag via the datastore tuning
options edit window.

Do not expose the flag for datastore creation as it is strongly
discouraged to create datastores on filesystems not correctly handling
atime updates as the garbage collection expects. It is nevertheless
still possible to create a datastore via the cli and pass in the
`--tuning gc-atime-safety-check=false` option.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
This commit is contained in:
Christian Ebner 2025-04-05 11:05:08 +02:00 committed by Thomas Lamprecht
parent b18eab64a9
commit bb8e7e2b48
2 changed files with 17 additions and 0 deletions

View File

@ -846,6 +846,10 @@ Ext.define('PBS.Utils', {
sync = PBS.Utils.tuningOptions['sync-level'][sync ?? '__default__']; sync = PBS.Utils.tuningOptions['sync-level'][sync ?? '__default__'];
options.push(`${gettext('Sync Level')}: ${sync}`); options.push(`${gettext('Sync Level')}: ${sync}`);
let gc_atime_safety_check = tuning['gc-atime-safety-check'];
delete tuning['gc-atime-safety-check'];
options.push(`${gettext('GC Access Time Safety Check')}: ${gc_atime_safety_check ?? true}`);
for (const [k, v] of Object.entries(tuning)) { for (const [k, v] of Object.entries(tuning)) {
options.push(`${k}: ${v}`); options.push(`${k}: ${v}`);
} }

View File

@ -271,6 +271,19 @@ Ext.define('PBS.Datastore.Options', {
deleteEmpty: true, deleteEmpty: true,
value: '__default__', value: '__default__',
}, },
{
xtype: 'proxmoxcheckbox',
name: 'gc-atime-safety-check',
fieldLabel: gettext('GC atime Check'),
autoEl: {
tag: 'div',
'data-qtip': gettext('Ensure underlying storage honors access time updates'),
},
value: 1,
uncheckedValue: 0,
defaultValue: 1,
deleteDefaultValue: true,
},
], ],
}, },
}, },