NAS移行中にタイムスタンプを最も安全に保持する方法は何ですか?

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

タイムスタンプを安全に保持する最も確実な方法は、メタデータ対応のツールでコピーし、結果を検証し、切り替えまで元のデータを変更しないことです。

ドラッグ&ドロップでの移動から始めないでください。まず、どのタイムスタンプが重要かを決め、ソースのファイルシステム、転送プロトコル、宛先のファイルシステム、コピー用ツールがそれらを表現できるかをテストし、ログ付きの初回コピーと小規模な最終同期を実行してください。修正日時(mtime)は通常移植可能ですが、作成日時や変更日時はそうでない場合があります。

保持すべきタイムスタンプを定義する

「タイムスタンプを保持する」とは、システムによって異なるメタデータを指すことがあります。LinuxやUnixでは一般的にmtime、atime、ctimeが公開されますが、NTFSでは作成日時も公開されます。mtime、atime、ctime、作成日時の違いは、移行後に何を比較できるかを決定します。

ユーザーがドキュメント、写真、プロジェクトファイルを最終更新日時で並べ替える場合はmtimeを優先してください。ctimeは作成日時ではなく新しいファイルシステムのメタデータイベントとして扱い、作成日時や誕生日時は別途検証してください。新しく作成された宛先オブジェクトは正当に新しい値を受け取る可能性があります。

タイムスタンプ 通常の意味 移行時の期待
mtime ファイル内容の最終変更日時 保持・検証の主要な値
atime ファイルの最終アクセス日時 スキャンやコピー中に変わる可能性あり
ctime メタデータまたはinodeの状態変更日時 通常、新しいファイルシステムでは変わる
作成日時/誕生日時 そのファイルシステム上でのオブジェクト作成日時 ツール、プロトコル、ターゲットによって対応が異なる

移動ではなくメタデータ対応のコピーを使う

Linux間のパスでは、アーカイブモードが修正日時を含む複数の属性を保持するため、rsyncが一般的な選択肢です。データセットに必要なACL、拡張属性、ハードリンク、プラットフォーム固有のフラグのみを追加し、削除や置換を許可する前にコマンドをプレビューしてください。

Windows環境ではRobocopyがファイルメタデータを保持できますが、ディレクトリのタイムスタンプは明示的なRobocopyオプションが必要です。ミラーフラグは、非破壊テストでソースと宛先の方向が確認されるまで避けてください。ミラーはファイルのコピーだけでなく削除も正確に繰り返すためです。

小規模なデータセットでプロトコルとファイルシステムをテストする

古いファイルと新しいファイル、入れ子のディレクトリ、アクセント付きの名前、関連する場合はシンボリックリンク、既知のタイムスタンプ値を含むサンプルを作成してください。計画している正確なSMB、NFS、SSH、ローカルマウント、またはアプリケーション経路を通じてコピーしてください。接続プロトコルによって結果が変わることがあります。宛先NASが同じでも影響があります。

ファイルブラウザだけでなく、タイムスタンプマニフェストやスクリプト化したstat出力でソースと宛先を比較してください。実例ではCIFSマウントの挙動が要求したタイムスタンプフラグを無効にすることがあるため、コマンドの正常終了はメタデータの忠実性の証明にはなりません。

二段階の切り替えを行い、ロールバック用コピーを保持する

ソースがアクティブなまま大規模な初回コピーを実行し、ファイル数、代表的または重要なセットのコンテンツハッシュ、タイムスタンプ、権限、アプリケーションアクセスを検証してください。その後、書き込みを一時停止して最終的な増分コピーを実行します。ログとマニフェストは両方のデータツリー外に保存してください。

ソースは読み取り専用または回復可能な状態で合意された保持期間中保持してください。タイムスタンプはメタデータの一層に過ぎません。特にmacOS、メディア、アプリケーション管理ファイルの場合は、二つのツリーを同等と判断する前に拡張属性をNAS移行時に確認してください。

よくある質問

rsyncのアーカイブモードはすべてのタイムスタンプを保持しますか?

いいえ。通常は修正日時を保持しますが、アクセス日時、作成日時、ACL、拡張属性、その他のメタデータは別途対応やオプションが必要です。宛先のファイルシステムとプロトコルもそれらを受け入れる必要があります。

ファイルの日付は正しいのにフォルダの日付が変わるのはなぜですか?

一部のツールはファイルのmtimeを復元しますが、子エントリを作成する際にディレクトリのmtimeを更新します。ディレクトリのタイムスタンプを明示的にテストし、ワークフローで必要な場合は該当するディレクトリコピーオプションを有効にしてください。

データをコピーした後にタイムスタンプを修復できますか?

多くの場合、mtimeは変更されていないソースや保存されたマニフェストから再設定可能で、ファイル内容を再コピーする必要はありません。作成日時やctimeは移植性が低いため、修復方法を確認するまではソースを廃棄しないでください。

サポートとヒント

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.