Help us understand the problem. What is going on with this article?

実践編!Amazon S3/Google Cloud Storage エンタープライズデータ保護のテクニック 中編

はじめに

前回は 実践編!Amazon S3/Google Cloud Storage エンタープライズデータ保護のテクニック 前編 としてデータ保護が必要な理由や実装のために必要なモジュール、検証環境を説明してきました。今回は続編として、アクセラレーターやリカバリにおける注意事項について解説していきます!

3-2-1 ルール

みなさんはデータ保護の実装で必須と言われている 3-2-1 ルールをご存知でしょうか。3-2-1 ルールとは

  • 3つのコピー
  • 2つのメディア
  • 1つの異なるロケーション

を意味します。データ被災に対する基本的な考え方で、これに加えて保持期限ベースの世代管理あるいはシングルクラウド非依存といった実装をします。商用レベルの実装です。例えば以下のように設計します。

  • MSDP on EBS & S3 & Glacier
  • EBS & S3
  • Tokyo & North Virginia

これに加えて保持期限やシングルクラウド非依存という要件を考慮していくと S3 Sync やCCR だけではどうにもなりません。また、これらをスクリプトだけ実装していくとなるとメンテナンスや突然のエンジニアの退職など匠の技への依存がITリスクになります。大規模クラウドでは商用ソフトウェアでなければ、長期間の運用シナリオに堪えるのはなかなかに困難です。

S3やGCS が強固なので保護しないという考え方は、3-2-1ルールに則らないため、データ被災の可能性が高まります。これらの考え方はRAIDなので保護しない、スナップショットがあるので保護しない、というのと同様であり、企業や政府のデータでは絶対に避けるべきアプローチです。

s3fs の制約

以下の制約を考慮する必要があります。

• ファイルの内容のみがオブジェクトの階層と共にバックアップされます。s3fs は S3 ストレージを NFS 共有として公開するため、オブジェクトのメタデータ属性の一部は失われます。これにはアクセス許可、ACL、タグなどが含まれます。

• ホットストレージのみがサポートされます。このソリューションは、NFS マウントができないため、Amazon Glacier などのコールドストレージには適用されません。

• s3fs のインストールは、原則、NetBackup アプライアンスのメディアサーバーではサポートされていません。アプライアンス以外のメディアサーバーに s3fs をインストールします。NetBackup アプライアンスのメディアサーバーのみがある場合は、s3fs を別の Linux クライアントにインストールし、NetBackup アプライアンス のメディアサーバーにバックアップします。

• s3fs は、S3 ないしその互換ストレージから何らかの機能が欠損していることを自動検出できません。たとえば、Google Cloud ではマルチパートアップロード(復元)はサポートされていません。ただし、s3fs は Google クラウドでマルチパートアップロードを使用しようと試みて失敗します。そのような場合にはs3fsのオプションである-nomultipartを使用してください。

• s3fs は結果整合性 (Eventual Consistency) を保証しています。このため、復元中に間欠的な問題が発生する可能性があります。詳細はこちらを確認してください。

• s3fs マウントポイントへの直接復元は部分的に成功します。宛先マウントポイント (バケット) のアクセス時間および変更時刻を変更できないという警告が記録されます。この場合、データが失われるわけではありません。この警告を回避するにはマウントポイント内のディレクトリに復元します。次の警告がログに記録されます。

Warning bpbrm (pid=26322) from client <hostname>: WRN - Couldn't change access and modification times of /mnt/restore_full2/0/000/001/337.txt: Input/output error
Warning bpbrm (pid=26322) from client <hostname>: WRN - Couldn't change access and modification times of /mnt/restore_full2/0/000/009/101.txt:

ジョブは、次のようなエラーと共に部分的な成功を返しますが、リストアは成功します。

Error bpbrm (pid=26322) client restore EXIT STATUS 5: the restore failed to recover the requested files Standard policy restore error (2800)

• s3fs は Linux プラットフォームでのみサポートされています。

既知の事象

s3fs では次の点に配慮する必要があります。

s3fs データキャッシュを使用しない場合、または、新しいオブジェクトの追加または古いオブジェクトの削除のみを行う場合は s3fs バージョン 1.85 を使用します。データキャッシュを使用し、オブジェクトが更新される場合は、こちらの問題が修正されたバージョンを使用します。

https://github.com/s3fs-fuse/s3fs-fuse/issues/1047

修正プログラムを適用せずにキャッシュを有効にした場合は、バックアップ対象のオブジェクトが更新されるとデータが破損する可能性があります。s3fs マウントされたバケット上の多数の小さなファイルの復元中にいくつかのエラーが発生する場合があります。問題が報告されたファイルの復元を再試行して対応します。詳細は以下を確認してください。

https://github.com/s3fs-fuse/s3fs-fuse/issues/1086

おわりに

どこがハードボイルドや!きちんと制約が出ているというのは真面目にみなさんのお役に立つために検証した結果です!ぜひ、オブジェクトストレージに格納されたデータも 3-2-1 ルールを守り、データ被災のリスクを減らしていきましょう!次回は後編としてベストプラクティスと検証結果を公開します!

商談のご相談はこちら

本稿からのお問合せをご記入の際には「コメント/通信欄」に#GWCのタグを必ずご記入ください。ご記入いただきました内容はベリタスのプライバシーポリシーに従って管理されます。

その他のリンク

【まとめ記事】ベリタステクノロジーズ 全記事へのリンク集もよろしくお願い致します!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away