BLOGTIMES
2019/02/10

zfs で Permanent error が出たら

  zfs  omnios 
このエントリーをはてなブックマークに追加

zfs の send/recv で旧サーバから新サーバにスナップショット転送しようとしたら 、何度やっても以下のようなエラーを吐いて失敗するファイルシステムがあるので困ってしまいました。

warning: cannot send 'tank/foo@snap-daily-1-2019-02-10-030100': I/O error cannot receive new filesystem stream: checksum mismatch or incomplete stream

イヤな予感がしてふと zpool の状態を確認してみてびっくり。
Permanent error とか言われていました。。。。

root@fileserver:~# zpool status -v tank pool: tank state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://illumos.org/msg/ZFS-8000-8A scan: scrub in progress since Mon Feb 11 20:14:01 2019 66.7M scanned out of 3.85T at 1.45M/s, (scan is slow, no estimated time) 0 repaired, 0.00% done config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 17 c1t0d0 ONLINE 0 0 34 logs c1t2d0 ONLINE 0 0 0 cache c1t3d0 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: tank/share@snap-daily-1-2019-02-10-030100:/path/to/file tank/foo@snap-daily-1-2019-02-10-030100:/some/file tank/foo:<0x1ea362> tank/foo:<0x1ea363> /tank/foo/some/file /tank/bar/other/file

どうもこれが問題の原因のようです。
そもそも zfs って checksum を勝手に照合しているからファイルの不整合って起きないんじゃ・・・と思っていましたが、破損が検出できるだけで壊れるときは壊れるんですね。
最近、電源の事故があってブッチリ切れたりしましたから、そのときかなぁとは思います。

こうなってしまうと破損したファイルは諦めるしかなく、当該のファイルやスナップショットを削除することで send/recv ができるようになります

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10758
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン