Merge pull request #72 from saveriomiroddi/implement_trimming

Implement pools trimming service
This commit is contained in:
Saverio Miroddi 2020-03-23 19:52:50 +01:00 committed by GitHub
commit 93dd574143
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1141,6 +1141,45 @@ function update_zed_cache_Debian {
chroot_execute "sed -Ei 's|$c_installed_os_data_mount_dir/?|/|' /etc/zfs/zfs-list.cache/$v_rpool_name"
}
# We don't care about synchronizing with the `fstrim` service for two reasons:
#
# - we assume that there are no other (significantly) large filesystems;
# - trimming is fast (takes minutes on a 1 TB disk).
#
# The code is a straight copy of the `fstrim` service.
#
function configure_pools_trimming {
print_step_info_header
chroot_execute "cat > /lib/systemd/system/zfs-trim.service << UNIT
[Unit]
Description=Discard unused ZFS blocks
ConditionVirtualization=!container
[Service]
Type=oneshot
ExecStart=/sbin/zpool trim $v_bpool_name
ExecStart=/sbin/zpool trim $v_rpool_name
UNIT"
chroot_execute " cat > /lib/systemd/system/zfs-trim.timer << TIMER
[Unit]
Description=Discard unused ZFS blocks once a week
ConditionVirtualization=!container
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
TIMER"
chroot_execute "systemctl daemon-reload"
chroot_execute "systemctl enable zfs-trim.timer"
}
function configure_remaining_settings {
print_step_info_header
@ -1236,6 +1275,7 @@ distro_dependent_invoke "install_and_configure_bootloader"
sync_efi_partitions
configure_boot_pool_import
distro_dependent_invoke "update_zed_cache" --noforce
configure_pools_trimming
configure_remaining_settings
prepare_for_system_exit