Storage Gateway で構築した iSCSI ディスクに保存されたファイルを読み取り、EBS ボリュームへ保存する方法を教えてください
困っていること
Storage Gateway を利用してiscsi 構築したディスクのにおいて、「デバイス \Device\xxxxx\xxxxx に不良ブロックがあります。」が複数回発生しました。
システムが動かないため、EBS を立てて、Storage Gateway で立てたディスクからファイル移動を開始 (Windows 上から切り取り、貼り付け) したものの、ファイル移動が 0byte でした。
一度キャンセルしようと思い、再起動を実施。しかしながら再起動後のクライアント接続にて、対象のディスクに対して「ディスク構造が壊れているため、読み取ることが出来ません」とエラーが表示されています。
上記の背景より、Storage Gateway で構築した iSCSI ディスクに保存されたファイルを読み取り、EBS ボリュームへ保存する方法を教えてください。
どう対応すればいいの?
前提として、既に「ディスク構造が壊れているため、読み取ることが出来ません」となっていることから、後述する CHKDSK による復旧が必ずしも対象ボリュームデータを復元できるとは限らない点があることを、予めご認識ください。
このような状況では、対象のボリュームが Windows ファイルシステムとしての整合がとれていない状況と考えられますので、ドキュメント 記載の通り CHKDSK を利用して復旧する必要がございます。
留意点としては、CHKDSK の実行にはデータの読み書きが大量に行われることが推測され、Storage Gateway 経由にて実行する場合 S3 からのダウンロードなどに時間がかかることが予想されます。
ボリュームの整合性を確認し、エラーがある場合は修正する ゲートウェイが Microsoft Windows イニシエータを使用してそのボリュームに接続している場合は、Windows CHKDSK ユーティリティを使用して、ボリュームの整合性を確認し、ボリュームにエラーがある場合はエラーを修正できます。Windows では、ボリュームの破損が検出されたときに自動的に CHKDSK ツールを実行できます。または、ユーザー自身がこのツールを実行することもできます。
補足
当該事象より、早急な復旧を試みたい要件もあるかと思いますが、ファイルシステムの整合が取れていない場合、CHKDSK による復旧を試みる必要があるものと推察できます。
下記 AWS re:Post 記載の手順を参考に、対象のボリューム (vol-xxxxxxxxxxxxxxxxx) の EBS スナップショットを取得いただき、そのスナップショットから作成したボリュームを別の Windows インスタンスにアタッチして CHKDSK を行うことを並行してお試しいただくことも、ご検討ください。
直接インスタンスから EBS ボリュームにアクセス可能となるため、Storage Gateway 経由にて CHKDSK を実施されるよりも短時間での実行が可能です。