データ検証に関する問題のトラブルシューティング - AWS DataSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データ検証に関する問題のトラブルシューティング

デフォルトでは、AWS DataSync は転送終了時にデータの整合性を検証します。DataSync がデータの検証を完了する前に変更または削除されるファイルなど、一般的な検証エラーや警告を診断するには、次の情報を使用します。

検証に関する問題では、表示されるタスク実行エラーに加えて、CloudWatch ログ (またはタスクレポート) を確認することが有益です。DataSync の拡張モードタスクでは JSON 構造化ログが提供されるのに対し、基本モードタスクでは非構造化ログが提供されます。

ファイルの内容に不一致がある

タスク実行が終了したときに、次のエラーが表示されます。

Transfer and verification completed. Verification detected mismatches. Files with mismatches are listed in Cloud Watch Logs

CloudWatch ログを確認すると、送信元と送信先のロケーションで内容が異なるために検証に失敗したログが見つかるはずです。これは、転送中にファイルが変更された場合に発生する可能性があります。

例えば、次のログは、file1.txt に異なる mtimesrcHash、および dstHash 値があることを示しています。

基本モードのログの例
[NOTICE] Verification failed <> /directory1/directory2/file1.txt [NOTICE] /directory1/directory2/file1.txt srcMeta: type=R mode=0755 uid=65534 gid=65534 size=534528 atime=1633100003/684349800 mtime=1602647222/222919600 extAttrsHash=0 [NOTICE] srcHash: 0c506c26bd1e43bd3ac346734f1a9c16c4ad100d1b43c2903772ca894fd24e44 [NOTICE] /directory1/directory2/file1.txt dstMeta: type=R mode=0755 uid=65534 gid=65534 size=511001 atime=1633100003/684349800 mtime=1633106855/859227500 extAttrsHash=0 [NOTICE] dstHash: dbd798929f11a7c0201e97f7a61191a83b4e010a449dfc79fbb8233801067c46

DataSync では、mtime準備前にファイルに最後に書き込みが行われた時刻を表します。転送を検証する場合、DataSync は送信元と送信先のロケーションの mtime の値を比較します。このような検証の失敗は、ファイルの mtime が両方のロケーションで同じでない場合に発生します。srcHashdstHash の違いは、ファイルの内容が両方のロケーションで一致しないことを示しています。

実行するアクション

以下の操作を実行します。

  1. エポックタイムコンバーターを使用して、送信元または送信先のファイルまたはオブジェクトが最近変更されたかどうかを判断します。これにより、どのバージョンが最新かを特定できます。

  2. このエラーが再発しないようにするには、メンテナンス期間中、送信元と送信先でアクティビティがないときに実行するようにタスクをスケジュールします。

ファイルの SMB メタデータに不一致がある

タスク実行が終了したときに、次のエラーが表示されます。

Transfer and verification completed. Verification detected mismatches. Files with mismatches are listed in Cloud Watch Logs

Server Message Block (SMB) プロトコルをサポートするストレージシステム間で転送する際、ファイルの拡張 SMB 属性が送信元と送信先の間で一致しない場合に、このエラーが表示されることがあります。

例えば、次のログは、file1.txt がロケーション間で異なる extAttrsHash 値を持つことを示しています。これは、ファイルの内容は一致するものの、送信先で拡張属性が設定されていないことを表します。

基本モードのログの例
[NOTICE] Verification failed <> /directory1/directory2/file1.txt [NOTICE] /directory1/directory2/file1.txt srcMeta: type=R mode=0755 uid=65534 gid=65534 size=1469752 atime=1631354985/174924200 mtime=1536995541/986211400 extAttrsHash=2272191894 [NOTICE] srcHash: 38571d42b646ac8f4034b7518636b37dd0899c6fc03cdaa8369be6e81a1a2bb5 [NOTICE] /directory1/directory2/file1.txt dstMeta: type=R mode=0755 uid=65534 gid=65534 size=1469752 atime=1631354985/174924200 mtime=1536995541/986211400 extAttrsHash=3051150340 [NOTICE] dstHash: 38571d42b646ac8f4034b7518636b37dd0899c6fc03cdaa8369be6e81a1a2bb5

拡張属性に関連するエラーメッセージが表示される場合もあります。

[ERROR] Deferred error: WriteFileExtAttr2 failed to setextattrlist(filename="/directory1/directory2/file1.txt"): Input/output error
実行するアクション

このエラーは通常、アクセスコントロールリスト (ACL) を送信先にコピーするためのアクセス許可が不十分な場合に発生します。この問題を解決するには、送信先タイプに基づいて以下の設定ガイドを確認してください。

転送するファイルがソースロケーションにない

タスク実行が終了したときに、次のエラーが表示されます。

Transfer and verification completed. Selected files transferred except for files skipped due to errors. If no skipped files are listed in Cloud Watch Logs, please contact AWS Support for further assistance.

ログには、ファイルがソースロケーションにないことを示すエラーが表示される場合があります。このエラーは、DataSync が準備を完了した後、ファイルを転送する前にファイル (file1.dllfile2.dll など) が削除された場合に発生する可能性があります。

基本モードのログの例
[ERROR] Failed to open source file /file1.dll: No such file or directory [ERROR] Failed to open source file /file2.dll: No such file or directory
実行するアクション

このような状況を回避するには、ソースロケーションにアクティビティがないときに実行するようにタスクをスケジュールします

例えば、メンテナンス期間中、ユーザーとアプリケーションがそのロケーションでアクティブに作業していないときにタスクを実行できます。

場合によっては、このエラーに関連付けられたログが見つからないことがあります。その場合は、AWS サポートセンターにお問い合わせください。

DataSync が送信先のデータを検証できない

タスク実行が終了したときに、次のエラーが表示されます。

Transfer and verification completed. Verification detected mismatches. Files with mismatches are listed in Cloud Watch Logs

DataSync が送信先ロケーションにある特定のフォルダやファイルを検証できないことを示すログが見つかるはずです。このエラーは次のようになります。

基本モードのログの例
[ERROR] Failed to read metadata for destination file /directory1/directory2/file1.txt: No such file or directory

ファイルの場合、次のような検証の失敗が見つかることがあります。

基本モードのログの例
[NOTICE] Verification failed <> /directory1/directory2/file1.txt [NOTICE] /directory1/directory2/file1.txt srcMeta: type=R mode=0755 uid=65534 gid=65534 size=61533 atime=1633099987/747713800 mtime=1536995631/894267700 extAttrsHash=232104771 [NOTICE] srcHash: 1426fe40f669a7d36cca1b5329983df31a9aeff8eb9fe3ac885f26de2f8fff6b [NOTICE] /directory1/directory2/file1.txt dstMeta: type=R mode=0755 uid=65534 gid=65534 size=0 atime=0/0 mtime=0/0 extAttrsHash=0 [NOTICE] dstHash: 0000000000000000000000000000000000000000000000000000000000000000
実行するアクション

これらのログは、転送後、検証前に送信先のデータが削除されたことを示します (ログは、同じ時間枠内にデータが送信元ロケーションにアップロードされた場合と同じようになります)。

このような状況を回避するには、送信先ロケーションにアクティビティがないときに実行するようにタスクをスケジュールします

例えば、メンテナンス期間中、ユーザーとアプリケーションがそのロケーションでアクティブに作業していないときにタスクを実行できます。

DataSync がオブジェクトのメタデータを読み取れない

タスク実行が終了したときに、次のエラーが表示されます。

Transfer and verification completed. Selected files transferred except for files skipped due to errors. If no skipped files are listed in Cloud Watch Logs, please contact AWS Support for further assistance.

Amazon S3 HeadObject リクエストが失敗したために DataSync が file1.png を読み取れないことを示すログが見つかるはずです。DataSync は、タスクの準備中および検証中に S3 ロケーションで HeadObject リクエストを行います

基本モードのログの例
[WARN] Failed to read metadata for file /file1.png: S3 Head Object Failed
実行するアクション

この問題を修正するには、DataSync に S3 バケットを操作するための適切なレベルのアクセス許可があるかどうかを確認します。

  • DataSync が Amazon S3 ロケーションにアクセスするために使用する IAM ロールで、s3:GetObject アクセス許可が付与されていることを確認します。詳細については、「必要なアクセス許可」を参照してください。

  • S3 バケットがサーバー側の暗号化を使用している場合は、DataSync がそのバケット内のオブジェクトにアクセスできることを確認してください。詳細については、「サーバー側の暗号化を使用して S3 バケットにアクセスする」を参照してください。

オブジェクトのシステム定義メタデータに不一致がある

S3 バケット間の拡張モードタスクの実行が終了したときに、次のエラーが表示されます。

Verification failed due to a difference in metadata

オブジェクトの Amazon S3 システム定義メタデータの不一致を示すログが見つかるはずです。この例では、送信元のオブジェクトには Content-Type メタデータがありませんが、送信先のオブジェクトにはあります。このエラーは、DataSync がオブジェクトを転送したときに、送信先 S3 バケットがオブジェクトに "ContentType": "application/octet-stream" メタデータを自動的に適用したために発生しました。

拡張モードのログの例
{ "Action": "VERIFY", "Source": { "LocationId": "loc-0b3017fc4ba4a2d8d", "RelativePath": "encoding/content-null", "Metadata": { "Type": "Object", "ContentSize": 24, "LastModified": "2024-12-23T15:48:15Z", "S3": { "SystemMetadata": { "ETag": "\"68b9c323bb846841ee491481f576ed4a\"" }, "UserMetadata": {}, "Tags": {} } } }, "Destination": { "LocationId": "loc-abcdef01234567890", "RelativePath": "encoding/content-null", "Metadata": { "Type": "Object", "ContentSize": 24, "LastModified": "2024-12-23T16:00:03Z", "S3": { "SystemMetadata": { "ContentType": "application/octet-stream", "ETag": "\"68b9c323bb846841ee491481f576ed4a\"" }, "UserMetadata": { "file-mtime": "1734968895000" }, "Tags": {} } } }, "TransferType": "CONTENT_AND_METADATA", "ErrorCode": "MetadataDiffers", "ErrorDetail": "Verification failed due to a difference in metadata" }
実行するアクション

このエラーを回避するには、送信元ロケーションのオブジェクトを更新して Content-Type メタデータプロパティを追加します。

データの検証期間について

DataSync の検証には、ファイルの全内容に対する SHA256 チェックサムと、ロケーション間のファイルメタデータの正確な比較が含まれます。検証にかかる時間は、関連するファイルまたはオブジェクトの数、ストレージシステム内のデータのサイズ、これらのシステムのパフォーマンスなど、いくつかの要因によって決まります。

実行するアクション

検証時間に影響を与える可能性のある要因を考慮すると、何もする必要はありません。ただし、タスクの実行が検証中ステータスで停止しているように見える場合は、AWS サポートセンターにお問い合わせください。