Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bterfs+SnapperでDiskFullになって困った話

 Bterfs+SnapperでDiskFullになって困った話

Kenichiro MATOHARA

November 14, 2020
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. / DiskFull>< DiskFull>< Debian sid amd64のデスクトップ環境でBtrfs + Snapperを既定値で有 効にしていた(なんかSPACE_LIMITとかあるから食いつぶさないだ ろうとか思ってた)

    まだまだ空き容量があるつもりだったのにDiskに書き込めなくなる (historyも使えなくて辛い) rm *.isoとかしても空かない? rmしてもSnapshotは消えないのでdisk空かない…… 8 / 26
  2. / Btrfsの容量確認 Btrfsの容量確認 dfでは正しい値が得られない btrfsコマンドを使う $ df -h / $

    btrfs filesystem df / $ sudo btrfs filesystem usage / $ sudo btrfs filesystem show 9 / 26
  3. / disk内容の圧縮をしてみる disk内容の圧縮をしてみる Btrfsは透過圧縮が可能 圧縮形式はzlib, lzo, zstd(v4.14〜) 圧縮レベルも指定可能 compress=zlib:2 mount時に透過圧縮が指定できる

    -o compress=zstd マウント以降のファイル変更に圧縮が反映される → それ以前の ファイルは圧縮されない 特定のファイルを圧縮したい場合は, chattr +c する 手動で圧縮(ボリューム単位でなく,特定のファイル,ディレクト リ単位でok) $ sudo btrfs filesystem defragment -r -v -czstd $COMPRESS_PATH 12 / 26
  4. / スナップショットのファイルを スナップショットのファイルを 消したい 消したい スナップショットを書き込み可能にして削除する 1 書き込みが出来るようにする 2 確認

    $ sudo btrfs property set /path/to/.snapshots/<snapshot_num>/snapshot ro false $ sudo btrfs property get /path/to/.snapshots/<snapshot_num>/snapshot ro=false 1 2 13 / 26
  5. / snapperSで全てのスナップショッ snapperSで全てのスナップショッ トから指定ファイル削除 トから指定ファイル削除 というものでできそう うまく動かない メンテされて無さそう? snapperS $

    sudo snapperS rm -f /home/matoken/Downloads/iso/Parrot-security-4.9.1_x64.iso2 -r 1-100 File "snapperS", line 31 print "Specify the absolute path of the file starting with a /" ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Specify the absolute p Tested on Ubuntu 15.04 and 15.10 with snapper v0.2.4 and btrfs-progs v4.0 (bug reports welcome!). 14 / 26
  6. / とりあえず手動一括削除 とりあえず手動一括削除 1 全てのスナップショットを書き込み可能にする 2 該当ファイルを一括削除 3 スナップショットを書き込み不可に戻す $

    sudo snapper --csvout list | grep ^root, | grep -v ,current, | cut -f3 -d, | \ xargs -I{} sudo btrfs property set /.snapshots/{}/snapshot ro false $ sudo snapper --csvout list | grep ^root, | grep -v ,current, | cut -f3 -d, | \ xargs -I{} sudo rm -r /.snapshots/{}/snapshot/home/matoken/Downloads/iso/* $ sudo snapper --csvout list | grep ^root, | grep -v ,current, | cut -f3 -d, | \ xargs -I{} sudo btrfs property set /.snapshots/{}/snapshot ro true 1 2 3 15 / 26
  7. / スナップショットの削除設定 スナップショットの削除設定 (GUIのほうが便利?) (GUIのほうが便利?) rsyncで別マシンにデイリーバックアップをしているので端末上に はそんなにたくさん必要ない 30分毎に残す,毎日4個残す,週に1つ残す # limits

    for timeline cleanup -TIMELINE_MIN_AGE="1800" -TIMELINE_LIMIT_HOURLY="10" -TIMELINE_LIMIT_DAILY="10" -TIMELINE_LIMIT_WEEKLY="0" -TIMELINE_LIMIT_MONTHLY="10" -TIMELINE_LIMIT_YEARLY="10" +TIMELINE_MIN_AGE="900" +TIMELINE_LIMIT_HOURLY="48" +TIMELINE_LIMIT_DAILY="4"" +TIMELINE_LIMIT_WEEKLY="1" +TIMELINE_LIMIT_MONTHLY="0" +TIMELINE_LIMIT_YEARLY="0" 17 / 26
  8. / 奥付 奥付 発表 2020-11-14(土) 発表者 ライセンス CC BY-NC-SA 4.0

    小江戸らぐ 11月のオフな集まり(第220回)@オンライン(Zoom) Kenichiro Matohara(matoken) 26 / 26