tldr
重複除去を構成したディスクを別環境に持っていくときは移行先でも重複除去をインストールしておかないとデータが読めないよ。
障害内容
環境
OS
windows server 2019 → 2022
ストレージ構成
- OS
- SSD
- データ
- HDD複数台 記憶域プールを構成
プール内に複数のボリュームを作成
問題の生じたボリュームはReFSでフォーマットされ、重複除去を構成していた
経緯
サーバーのハードウエアトラブルで故障したため、ハードウエアをリプレイスし再構築することにした。
OSをクリーンインストールし、Windows server 2019 → 2022 にアップグレードした。
データディスクは旧環境で使用していた物を新環境にそのまま再接続した。
記憶域プールは正常に動作し、プール内のボリュームは全て正常にマウントされた。
しかし、1台のみファイルが正常に開けない問題が生じた。
事象
- 記憶域プール内にある複数のボリュームの内1台のみデータが読み取れない事象が発生した。
- 数KB程度の小さいファイルは問題なく開けるがそれ以上のサイズのほとんどのファイルが開けない。
- ディレクトリ構造は正しく表示される。
- ファイルのプロパティを見るとサイズは正しく表示されるが、ディスク上のサイズが0バイトとなる。
- ファイルをコピーしようとすると「予期しないエラーのため、ファイルをコピーできません。」「エラー 0x80070780: ファイルにアクセスできません。」が発生する。
- イベントログ等に不審な点は無し
- 書き込みや移行後に書き込んだファイルの読み取りに問題は無し
試した施策
ディスクイメージの作成・退避
disk2vhd での問題の生じたディスクのイメージ化。読み取り専用状態での退避。
結果的に壊れてた訳ではなかったので意味は無かったですが、本当に壊れてる可能性を考慮すれば無駄では無かったかと思います。
修復を試している間に事態が悪化して取り返しの付かないことになるのを防げます。
作成したイメージを元の環境のコピー環境にマウント
元の2019の環境をp2vで残していたので作成したイメージを仮想環境にマウントしましたが、RAWと表示され開けませんでした。
こちらは今のところ原因不明のままです。
問題が生じなければこの環境には重複除去が入っていたのでファイルも開けたはずなのですが、結果的にファイルシステム自体破損しているとの疑念を深める結果となってしまいました。
ReFSUtil
ReFSUtil とはReFS用のボリューム診断、修復ツールです。
破損したReFSボリューム内のファイルをサルベージすることができます。
サルベージを実施したところ破損した元と同じサイズのファイルが出てきましたが、開いたところ内容が破損していました。
サルベージした結果、System Volume Information内にやたらと大容量のファイルがたくさんあったのは原因に気づく手がかりの一つにはなったかもしれません。
原因
移行先で重複除去機能をインストールしていなかった
対処
重複除去機能をインストールし、OS再起動で解決。
あとがき
些細なミスではありますが、特に決め手となるような情報は少なく、重複除去を設定したことすら忘れて居たため解決まで時間がかかってしまった。
今回は記憶域プール+ReFS環境で発生しましたが、通常のドライブやNTFSでも同じ事象が発生することを確認しました。
同様のトラブルに遭遇した人の助けとなるように記録を残します。