lxc のインスタンスの動作が微妙におかしいので、停止してみみてみた。
srubでエラーになる。
there are uncorrectable errors
エラーを見てくる。、
dmesg| grep -e "BTRFS warning.*path:" dmesg| grep -e "BTRFS warning.*path:" | sed -e 's/^.*path\: //'
LXCのログも見る。
lxc monitor --type=logging --pretty
ログを見ながらscrubする
btrfs scrub start /mnt journalctl --dmesg -f --grep 'BTRFS'
-- Logs begin at Thu 2020-09-10 14:48:11 JST. -- May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): bdev /dev/loop1 errs: wr 704175, rd 69641, flush 0, corrupt 0, gen 0 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): bdev /dev/loop1 errs: wr 704175, rd 69642, flush 0, corrupt 0, gen 0 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): bdev /dev/loop1 errs: wr 704175, rd 69643, flush 0, corrupt 0, gen 0 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): unable to fixup (regular) error at logical 221216776192 on dev /dev/loop1 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): unable to fixup (regular) error at logical 221216247808 on dev /dev/loop1 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): unable to fixup (regular) error at logical 221216903168 on dev /dev/loop1 May 13 04:37:05 m75q-1 kernel: BTRFS error (device loop1): unable to fixup (regular) error at logical 221216780288 on dev /dev/loop1 May 13 04:37:05 m75q-1 kernel: BTRFS warning (device loop1): i/o error at logical 221216641024 on dev /dev/loop1, physical 193282576384, root 4115, inode 103249193, offset 76156928, length 4096, links 1 (path: rootfs/var/log/journal/67abe395f45b472> May 13 04:37:05 m75q-1 kernel: BTRFS warning (device loop1): i/o error at logical 221215981568 on dev /dev/loop1, physical 193281916928, root 4115, inode 103249193, offset 75497472, length 4096, links 1 (path: rootfs/var/log/journal/67abe395f45b472> May 13 04:37:05 m75q-1 kernel: BTRFS info (device loop1): scrub: finished on devid 1 with status: 0 May 13 04:49:16 m75q-1 kernel: BTRFS info (device loop1): scrub: started on devid 1
ハードウェアエラーだって・・・・
Ideally, a corrupt checksum only happens due to hardware issues (e.g., "bit rot" on disk).
その状態でもbtrfs restore はできるので、btrfs のスナップショットとサブボリュームの管理がlxdからうまく行えてないんじゃないかと疑問を感じた。
btrfsの場合、マウントできるのでファイルを取り出した。
lxc storage list | grep default pv /var/snap/lxd/common/lxd/disks/default.img | pigz default.img.gz losetup -f --show /var/snap/lxd/common/lxd/disks/default.img mount /dev/loopX /mnt snap stop lxd btrfs scrub /mnt btrfs restore /dev/loopX