1. Blog
  2. Golang
  3. kubernetes
  4. Rust
  5. 关于作者

zfs cheatsheet

basic

$ zfs list

$ zfs list -t snapshot # list snapshots

$ zfs list rpool/ROOT/ubuntu_ex5snj/var/lib/docker # list a dataset
NAME                                      USED  AVAIL     REFER  MOUNTPOINT
rpool/ROOT/ubuntu_ex5snj/var/lib/docker  51.0G  85.3G     5.64G  /var/lib/docker


$ sudo zfs create rpool/ROOT/ubuntu_ex5snj/var/lib/containerd # contaienrd storage
$ sudo zfs create rpool/ROOT/ubuntu_ex5snj/var/lib/containerd/io.containerd.snapshotter.v1.zfs # contaienrd zfs driver

$ sudo zfs create rpool/ROOT/ubuntu_ex5snj/var/lib/containers # open containers zfs sriver parent
$ sudo zfs create rpool/ROOT/ubuntu_ex5snj/var/lib/containers/storage # open containers zfs sriver
$ sudo zfs create -o mountpoint=/var/lib/containers/storage rpool/ROOT/ubuntu_ex5snj/var/lib/containers/storage # same with above


/$ zfs list rpool/ROOT/ubuntu_ex5snj/var/lib/docker -r # list a dataset with children
NAME                                                                                                            USED  AVAIL     REFER  MOUNTPOINT
rpool/ROOT/ubuntu_ex5snj/var/lib/docker                                                                        51.0G  85.3G     5.64G  /var/lib/docker
rpool/ROOT/ubuntu_ex5snj/var/lib/docker/05fcf90bbe921b8299a75492e2b2bdcc5130eb0f9a63bf390325620d3f23edc6        220K  85.3G      140M  legacy
rpool/ROOT/ubuntu_ex5snj/var/lib/docker/0d78181831343daaee7b609a586d94918ab24d3fb7cfb6999c9020755bcf37d5       1.52M  85.3G      322M  legacy

$ zfs destroy -r <zfs-path> # Recursively destroy all children.
$ zfs destroy -r -R <zfs-path>  # Recursively destroy all dependents, including cloned file systems outside the target hierarchy.
$ zfs list rpool/ROOT/ubuntu_ex5snj/var/lib/containers -r -o name -H | xargs -n1 sudo zfs destroy -r #

auto-zsys

ZSys daemon and client for zfs systems written in Go,it auto snapshot on system changes.

zsys has a config file:

$ cat /etc/zsys.conf
history:
  # Keep at least n history entry per unit of time if enough of them are present
  # The order condition the bucket start and end dates (from most recent to oldest)
  gcstartafter: 1
  keeplast: 5 # Minimum number of recent states to keep.
  #    - name:             Abitrary name of the bucket
  #      buckets:          Number of buckets over the interval
  #      bucketlength:     Length of each bucket in days
  #      samplesperbucket: Number of datasets to keep in each bucket
  gcrules:
    - name: PreviousDay
      buckets: 1
      bucketlength: 1
      samplesperbucket: 3
    - name: PreviousWeek
      buckets: 5
      bucketlength: 1
      samplesperbucket: 1
    - name: PreviousMonth
      buckets: 4
      bucketlength: 7
      samplesperbucket: 1
general:
  # Minimal free space required before taking a snapshot
  minfreepoolspace: 20
  # Daemon timeout in seconds
  timeout: 120

zsys has a command tools zsysctl

$ zsysctl show # show snapshot details
Name:           rpool/ROOT/ubuntu_ex5snj
ZSys:           true
Last Used:      current
History:
  - Name:       rpool/ROOT/ubuntu_ex5snj@autozsys_fovr0f
    Created on: 2022-04-19 06:51:25
  - Name:       rpool/ROOT/ubuntu_ex5snj@autozsys_rrwss9
    Created on: 2022-04-18 17:02:25
  - Name:       rpool/ROOT/ubuntu_ex5snj@autozsys_c83eo6
    Created on: 2022-04-18 16:17:35
  - Name:       rpool/ROOT/ubuntu_ex5snj@autozsys_smk3m0
    Created on: 2022-04-18 16:16:04
  - Name:       rpool/ROOT/ubuntu_ex5snj@autozsys_rk5361
    Created on: 2022-04-18 16:07:19
Users:
  - Name:    root
    History:
     - rpool/USERDATA/root_ff8efa@autozsys_fovr0f (2022-04-19 06:51:28)
     - rpool/USERDATA/root_ff8efa@autozsys_rrwss9 (2022-04-18 17:02:27)
     - rpool/USERDATA/root_ff8efa@autozsys_c83eo6 (2022-04-18 16:17:35)
     - rpool/USERDATA/root_ff8efa@autozsys_smk3m0 (2022-04-18 16:16:05)
     - rpool/USERDATA/root_ff8efa@autozsys_rk5361 (2022-04-18 16:07:20)
  - Name:    user
    History:
     - rpool/USERDATA/user_ff8efa@autozsys_j3sl6d (2022-04-22 11:06:34)
     - rpool/USERDATA/user_ff8efa@autozsys_orpji5 (2022-04-20 16:09:45)
     - rpool/USERDATA/user_ff8efa@autozsys_htp8hi (2022-04-19 18:02:34)
     - rpool/USERDATA/user_ff8efa@autozsys_gn9xwp (2022-04-19 14:59:34)
     - rpool/USERDATA/user_ff8efa@autozsys_y3x8bz (2022-04-19 13:58:34)
     - rpool/USERDATA/user_ff8efa@autozsys_fovr0f (2022-04-19 06:51:28)
     - rpool/USERDATA/user_ff8efa@autozsys_rrwss9 (2022-04-18 17:02:27)
     - rpool/USERDATA/user_ff8efa@autozsys_c83eo6 (2022-04-18 16:17:35)
     - rpool/USERDATA/user_ff8efa@autozsys_smk3m0 (2022-04-18 16:16:05)
     - rpool/USERDATA/user_ff8efa@autozsys_rk5361 (2022-04-18 16:07:19)