diff options
author | Christian Pointner <equinox@spreadspace.org> | 2021-05-19 18:55:24 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2021-05-19 18:55:24 +0200 |
commit | a23e7f8055818a1d95b005998f094a249f71b490 (patch) | |
tree | 587f74d54eff1d6de7c497fc956840b85e16dceb /roles/storage/zfs/syncoid | |
parent | initial version of syncoid autosuspender (diff) |
syncoid: autosuspend cleanup and cooldown
Diffstat (limited to 'roles/storage/zfs/syncoid')
-rw-r--r-- | roles/storage/zfs/syncoid/tasks/main.yml | 15 | ||||
-rw-r--r-- | roles/storage/zfs/syncoid/templates/run.service.j2 | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/roles/storage/zfs/syncoid/tasks/main.yml b/roles/storage/zfs/syncoid/tasks/main.yml index 7c489baa..bab61a89 100644 --- a/roles/storage/zfs/syncoid/tasks/main.yml +++ b/roles/storage/zfs/syncoid/tasks/main.yml @@ -69,6 +69,21 @@ - name: enable autosuspend when: zfs_syncoid_autosuspend block: + - name: generate syncoid post script + copy: + content: | + #!/bin/bash + + echo "running sanoid --prune to cleanup old snapshots" + sleep 5 + systemctl start --wait sanoid-prune.service + + echo "wait 60s (autosuspend cooldown period)" + sleep 60 + echo "done." + dest: /var/lib/syncoid/syncoid_post + mode: 0755 + - name: install autosuspend script template: src: autosuspend.py.j2 diff --git a/roles/storage/zfs/syncoid/templates/run.service.j2 b/roles/storage/zfs/syncoid/templates/run.service.j2 index 0d214595..33283576 100644 --- a/roles/storage/zfs/syncoid/templates/run.service.j2 +++ b/roles/storage/zfs/syncoid/templates/run.service.j2 @@ -6,6 +6,9 @@ Type=oneshot {% for path,config in item.value.paths.items() %} ExecStart=/var/lib/syncoid/syncoid_wrapper --dumpsnaps --quiet {{ config.recursive | default(false) | ternary('-r ', '') }}{{ config.skip_parent | default(false) | ternary('--skip-parent ', '') }}{% for re in config.exclude | default([]) %}--exclude='{{ re }}' {% endfor %}{% if 'ssh_port' in item.value %}--sshport {{ item.value.ssh_port }} {% endif %}root@{{ item.value.ssh_hostname }}:{{ path }} {{ zfs_syncoid_target_pool }}/{{ item.key }}/{{ path }} {% endfor %} +{% if zfs_syncoid_autosuspend %} +ExecStart=/var/lib/syncoid/syncoid_post +{% endif %} {% if 'periodic' in item.value %} TimeoutStartSec={{ item.value.periodic.timeout }} {% endif %} |