I recently moved some data on a box with limited space. I decided I should
limit the snapshots so that space would not become an issue. I just check
back a week later to find out the box is hitting the borderline. Doing I
quick check I realized that the snapshot_limit is not being respected.
# uname -a
FreeBSD R1 11.0-STABLE FreeBSD 11.0-STABLE #17 r312232: Sun Jan 15 10:59:10
EST 2017 root at
S1:/usr/src/11-STABLE/obj/usr/src/11-STABLE/src/sys/MYKERNEL
amd64
# zfs create zroot/bhyve/test
# zfs set snapshot_limit=0 zroot/bhyve/test
# zfs snapshot zroot/bhyve/test at 1
# zfs snapshot zroot/bhyve/test at 2
# zfs snapshot zroot/bhyve/test at 3
# zfs list -t snapshot | grep zroot/bhyve/test
zroot/bhyve/test at 1 0 -
88K -
zroot/bhyve/test at 2 0 -
88K -
zroot/bhyve/test at 3 0 -
88K -
# zfs get all zroot/bhyve/test | grep snapshot
zroot/bhyve/test usedbysnapshots 0 -
zroot/bhyve/test snapshot_limit 0 local
zroot/bhyve/test snapshot_count 3 local
Also wanted to verify 0 was not being mistaken for none.
# for snapshot in `zfs list -t snapshot | grep zroot/bhyve/test | awk
'{print $1}'`; do zfs destroy $snapshot ; done
# zfs get all zroot/bhyve/test | grep snapshot
zroot/bhyve/test usedbysnapshots 0 -
zroot/bhyve/test snapshot_limit 0 local
zroot/bhyve/test snapshot_count 0 local
# zfs set snapshot_limit=1 zroot/bhyve/test
# zfs snapshot zroot/bhyve/test at 1
# zfs snapshot zroot/bhyve/test at 2
# zfs snapshot zroot/bhyve/test at 3
# zfs get all zroot/bhyve/test | grep snapshot
zroot/bhyve/test usedbysnapshots 0 -
zroot/bhyve/test snapshot_limit 1 local
zroot/bhyve/test snapshot_count 3 local
Also tested on head
FreeBSD S1 12.0-CURRENT FreeBSD 12.0-CURRENT #26 r312388: Wed Jan 18
12:38:52 EST 2017
root at S1:/usr/src/head/obj/usr/src/head/src/sys/MYKERNEL-NODEBUG
amd64
On Thu, Feb 02, 2017 at 09:31:58PM -0500, Ultima wrote:> I recently moved some data on a box with limited space. I decided I should > limit the snapshots so that space would not become an issue. I just check > back a week later to find out the box is hitting the borderline. Doing I > quick check I realized that the snapshot_limit is not being respected. > > # uname -a > FreeBSD R1 11.0-STABLE FreeBSD 11.0-STABLE #17 r312232: Sun Jan 15 10:59:10 > EST 2017 root at S1:/usr/src/11-STABLE/obj/usr/src/11-STABLE/src/sys/MYKERNEL > amd64 > > # zfs create zroot/bhyve/test > # zfs set snapshot_limit=0 zroot/bhyve/test > # zfs snapshot zroot/bhyve/test at 1 > > > # zfs snapshot zroot/bhyve/test at 2 > # zfs snapshot zroot/bhyve/test at 3 > # zfs list -t snapshot | grep zroot/bhyve/test > zroot/bhyve/test at 1 0 - > 88K - > zroot/bhyve/test at 2 0 - > 88K - > zroot/bhyve/test at 3 0 - > 88K - > # zfs get all zroot/bhyve/test | grep snapshot > zroot/bhyve/test usedbysnapshots 0 - > zroot/bhyve/test snapshot_limit 0 local > zroot/bhyve/test snapshot_count 3 local > > Also wanted to verify 0 was not being mistaken for none. > > # for snapshot in `zfs list -t snapshot | grep zroot/bhyve/test | awk > '{print $1}'`; do zfs destroy $snapshot ; done > > # zfs get all zroot/bhyve/test | grep snapshot > zroot/bhyve/test usedbysnapshots 0 - > zroot/bhyve/test snapshot_limit 0 local > zroot/bhyve/test snapshot_count 0 local > > # zfs set snapshot_limit=1 zroot/bhyve/test > # zfs snapshot zroot/bhyve/test at 1 > # zfs snapshot zroot/bhyve/test at 2 > # zfs snapshot zroot/bhyve/test at 3 > # zfs get all zroot/bhyve/test | grep snapshot > zroot/bhyve/test usedbysnapshots 0 - > zroot/bhyve/test snapshot_limit 1 local > zroot/bhyve/test snapshot_count 3 local > > > Also tested on head > FreeBSD S1 12.0-CURRENT FreeBSD 12.0-CURRENT #26 r312388: Wed Jan 18 > 12:38:52 EST 2017 > root at S1:/usr/src/head/obj/usr/src/head/src/sys/MYKERNEL-NODEBUG > amd64Hi, I suspect this line from the manpage is key: The limit is not enforced if the user is allowed to change the limit Regards, Gary