開発者ドキュメント

重複してクラウドへのバックアップを管理する方法

###序章

Duplicacy は、データをクラウドにバックアップするプロセスを合理化することを目的とした、増分バックアップ、同時バックアップ、クライアント側暗号化などの多くの機能を提供するクロスプラットフォームバックアップツールです。 CLI(コマンドラインインターフェイス)Linuxバージョンは、個人使用は無料ですが、商用ユーザーには有料ライセンスが必要です。 さらに、重複はグラフィカルインターフェイスを備えたMacOSとWindowsで利用可能であり、このバージョンでは、個人ユーザーと商用ユーザーの両方がライセンスの料金を支払う必要があります。

ロックフリー重複排除のアイデアに基づいて構築された複製は、さまざまなクラウドストレージサービスへのバックアップを安全に管理するように設計されています。 Duplicacyクライアントが新しいチャンクを作成して保存すると、同じストレージバケットを使用している他のクライアントは、チャンクがすでに存在していることを確認できるため、再度アップロードすることはありません。 これにより、バックアップを追跡するための追加の作業を必要とせずに、別々のクライアントが同一のデータを共有およびバックアップできます。

このチュートリアルでは、CLIバージョンのDuplicacyをインストールし、それを使用してDigitalOceanSpaceで一般的なデータバックアッププロセスを管理する方法の概要を説明します。 また、共有リポジトリを複数のドロップレットから同じスペースにバックアップする方法と、スナップショットを複数のスペースにバックアップしてデータのセキュリティを強化する方法についても説明します。

##前提条件

このチュートリアルに従うには、次のものが必要です。

これらの前提条件が整ったら、Duplicacyをインストールする準備が整います。

##重複のインストール

最新のDuplicacyCLIバージョンは、wgetを使用して、 Duplicacy GitHubリポジトリからダウンロードできます(個人ユーザーにはライセンスは必要ありません)。

server-01とserver-02の両方で次のコマンドを実行して、それぞれに重複をダウンロードします(最新リリースのダウンロードリンクに置き換えます)。

  1. sudo wget -O /opt/duplicacy https://github.com/gilbertchen/duplicacy/releases/download/v2.0.10/duplicacy_linux_x64_2.0.10

次に、ダウンロード場所と/usr/local/bin内の新しいディレクトリの間にシンボリックリンクを作成します。

  1. sudo ln -s /opt/duplicacy /usr/local/bin/duplicacy

最後に、duplicacyを実行可能にします。

  1. sudo chmod 0755 /opt/duplicacy

これで、各ドロップレットに重複がインストールされ、スペースを使用するように構成する準備が整いました。

##リポジトリの初期化と重複の構成

重複はディレクトリレベルからデータをバックアップするため、スペースへのファイルのアップロードを開始する前に、両方のドロップレットの特定のディレクトリまたはリポジトリにデータを関連付ける必要があります。 これを行うには、プロジェクトリポジトリを作成し、Duplicacyのinitコマンドを使用して初期化する必要があります。

initコマンドは、次の構文を受け入れます。

duplicacy init repository_id s3://region@endpoint/space_name

バックアップをスペース内の特定のフォルダーに移動する場合は、initコマンドを実行するときに、スペースの名前の後にフォルダーの名前を追加します。 その際、フォルダ名の後にスラッシュを付けることを忘れないでください。

  1. duplicacy init repository_id s3://region@endpoint/space_name/folder_name/

これらの詳細を入手したら、mkdirコマンドを使用して、各ドロップレットにリポジトリディレクトリを作成する準備が整います。 その後、cdを使用して新しいリポジトリに移動します。

  1. mkdir project-repository
  2. cd project-repository/

project-repository/を作業ディレクトリとして、server-01で次のinitコマンドを実行します。 強調表示された値を独自の詳細に置き換えてください。

  1. duplicacy init project_01 s3://nyc3@nyc3.digitaloceanspaces.com/example_space

次のように、initコマンドで-eオプションを使用して、重複による暗号化を有効にすることを選択できることに注意してください。

  1. duplicacy init -e project_01 s3://nyc3@nyc3.digitaloceanspaces.com/example_space

暗号化が有効になっている場合、Duplicacyは、スペースとのやり取りに暗号化パスワードを使用するたびに、暗号化パスワードの入力を求めるプロンプトを表示します。

initコマンドが実行されると、Duplicacyはアクセスキーとシークレットキーの入力を求めます。これらはコントロールパネルのAPIページからコピーできます。

Output
Enter S3 Access Key ID:ExampleAccessKeyGBBI Enter S3 Secret Access Key:ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

そして、それは以下を出力します:

Output
/home/sammy/project-repository will be backed up to s3://nyc3@nyc3.digitaloceanspaces.com/example_space with id project_01

initコマンドを実行すると、リポジトリ内に.duplicacy/という名前のディレクトリが作成され、preferencesという名前のファイルが保持されます。 このファイルには、スペースに関する情報と、指定した暗号化またはストレージオプションが含まれています。 後で重複構成を変更することにした場合は、preferencesファイルを直接編集するか、削除することができます。 次回そのリポジトリでinitコマンドを実行すると、ファイルが再作成されます。

次に、2番目のドロップレットinitコマンドを繰り返します。

  1. duplicacy init project_01 s3://nyc3@nyc3.digitaloceanspaces.com/example_space

アクセスキーを再度追加すると、最初のドロップレットとは少し異なる出力が表示されます。

Output
The storage 's3://nyc3@nyc3.digitaloceanspaces.com/example_space' has already been initialized Compression level: 100 Average chunk size: 4194304 Maximum chunk size: 16777216 Minimum chunk size: 1048576 Chunk seed: 6475706c6963616379 /home/sammy/project-repository will be backed up to s3://nyc3@nyc3.digitaloceanspaces.com/example_space with id project_01

これで両方のサーバーのリポジトリが初期化されましたが、重複を構成するために実行する必要のあるもう1つの手順があります。 現状では、重複により、データをバックアップするたびにアクセスキーとシークレットキーの入力を求められますが、これはかなりすぐに面倒になります。 これを回避するには、Duplicacyのsetコマンドを使用して、Spaceの資格情報をDuplicacyのpreferencesファイルに書き込むことができます。 各サーバーで次のコマンドを実行して、Duplicacyにアクセスキーとシークレットキーをそれぞれ保存させます。

  1. duplicacy set -key s3_id -value ExampleAccessKeyGBBI
  2. duplicacy set -key s3_secret -value ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

これで、Duplicacyを使用して、各DropletsのリポジトリをいずれかのSpaceにバックアップする準備が整いました。

##複数のソースから1つのリポジトリをバックアップする

分散したチームは、ファイルの競合やデータの損失を防ぐ、目立たないクラウドバックアップソリューションの恩恵を受けることができます。 リポジトリ全体のスナップショットを取得し、それを1つのコマンドでSpaceにアップロードすることにより、Duplicacyは、複数のマシン間でのファイルの競合を回避しながら、バックアップを合理化します。

Duplicacyのバックアップ機能をテストするには、touchを使用して、各ドロップレットproject-repositoryにいくつかのダミーファイルを入力します。

  1. touch /project-repository/file-1.txt
  2. touch /project-repository/file-2.txt

次に、 server-01 で、Duplicacyのbackupコマンドを使用してリポジトリのスナップショットを作成し、Spaceにアップロードします。 リポジトリは1つの保存場所のみで開始したため、ファイルをバックアップするために他のオプションを指定する必要はありません。

  1. duplicacy backup

結果の出力は次のようになります。

Output
No previous backup found Indexing /home/mark/project-repository Listing all chunks Packed file-1.txt (0) Packed file-2.txt (0) Backup for /home/sammy/project-repository at revision 1 completed

次に、server-02からリポジトリをバックアップしてみてください。

  1. duplicacy backup
Output
Last backup at revision 1 found Indexing /home/sammy/project-repository Backup for /home/sammy/project-repository at revision 2 completed

server-01server-02のリポジトリが同一であるため、backupを実行したときのようにDuplicacyがファイルをパックしなかったことに気付くでしょう。 ]最初のドロップレットのコマンド。 わずかに異なるスナップショットをバックアップするとどうなるかを確認するには、 server-02 でダミーファイルの1つを開き、それにテキストを追加します。

  1. nano file-1.txt
project-repository / file-1.txt
The quick brown fox jumped over the lazy dogs.

CTRL - XYENTERの順に入力してファイルを保存して閉じ、backupコマンドをもう一度実行します。

  1. duplicacy backup
Output
Storage set to s3://nyc3@nyc3.digitaloceanspaces.com/example_space Last backup at revision 2 found Indexing /home/sammy/project-repository Packed file-1.txt (45) Backup for /home/sammy/project-repository at revision 3 completed

リポジトリ内のファイルの1つに新しい変更があったため、Duplicacyはそのファイルをパックし、リビジョン3の一部としてアップロードしました。

restoreコマンドを使用すると、-rオプションを使用してリビジョン番号を指定することにより、リポジトリを以前のリビジョンに戻すことができます。 次のように、-overwriteオプションが指定されていない限り、既存のファイルは上書きされないことに注意してください。

  1. duplicacy restore -overwrite -r 2

restoreコマンドを実行した後、内容が含まれているかどうかを確認することで、重複が実際にfile-1.txtを書き換えたことを確認できます。

  1. cat file-1.txt

このコマンドで出力が生成されない場合、file-1.txtは空のファイルに戻り、リポジトリを以前のリビジョンに正常にロールバックしています。

##複数の保管場所へのバックアップ

複数のオフサイトの場所にバックアップを保存することは、長年にわたって一般的なデータセキュリティ慣行でした。 ただし、ファイルを複数の宛先にバックアップするプロセスは、面倒で生産性の低下を引き起こす可能性があります。 ただし、クラウド内の複数の場所にデータをバックアップするための迅速なソリューションを提供できるサードパーティのバックアップツールは多数あります。

重複でこの機能を示すには、server-01のリポジトリに2番目のスペースを追加します。 initコマンドを再度実行してこれを行うことはできません。これは、そのリポジトリがすでにDuplicacyによって開始されており、最初のスペースに関連付けられているためです。 これらのシナリオでは、addコマンドを使用して、すでに初期化されているリポジトリを別のストレージバケットに接続する必要があります。

Duplicacyのaddコマンドは、次の構文を使用します。

  1. duplicacy add storage_id repository_id s3://region@endpoint/example_space_02

これは、前に使用したinitコマンドとほぼ同じように見えますが、主な違いは、新しい保存場所のIDを指定する必要があることです。 上記のinitコマンドを実行すると、Duplicacyはdefault IDを最初のストレージバケットに割り当てました。これは、バックアップを送信するデフォルトの場所であるためです。 2番目のスペースに指定するストレージ名は任意の名前にすることができますが、それがどのスペースを表しているかを覚えておくために、わかりやすい名前にすることが役立つ場合があります。

その情報を念頭に置いて、2番目のスペースをリポジトリに追加します。

  1. duplicacy add space_02 project_01 s3://nyc3@nyc3.digitaloceanspaces.com/example_space_02

これで、リポジトリを2番目のスペースにバックアップする準備が整いました。 これを行うには、最初にリポジトリをデフォルトの保存場所にバックアップしてから、Duplicacyのcopyコマンドを使用して、同じバックアップを2番目の保存場所にコピーすることをお勧めします。

  1. duplicacy backup
  2. duplicacy copy -from default -to space_02

これにより、各チャンクとスナップショットが最初のスペースから2番目のスペースにコピーされます。 copyコマンドは非破壊的であり、既存のファイルを上書きしないことに注意することが重要です。

##結論

DigitalOcean Spacesと組み合わせると、重複により、ユーザーはクラウドバックアップを柔軟に管理できます。 複数のコンピューターから同じリポジトリーをバックアップする必要がある場合、または1つのリポジトリーをクラウド内の複数の場所にバックアップする必要がある場合、重複はバックアップソリューションの不可欠な部分になる可能性があります。

Duplicacyの使用方法について詳しく知りたい場合は、GitHubプロジェクトwikiを確認してください。 または、一般的なバックアップ戦略について詳しく知りたい場合は、次のガイドを参照してください。 VPSの効果的なバックアップ戦略を選択する方法または私たちの比較オブジェクトストレージと ブロックストレージサービス 。

モバイルバージョンを終了