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

前書き

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

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

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

前提条件

このチュートリアルを進めるには、次のものが必要です。

  • * https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [初期サーバーセットアップガイド]を使用して設定された* 2つのUbuntu 16.04 Droplets 。 サーバーには任意の名前を付けることができますが、わかりやすくするために、このチュートリアルではサーバーを server-01 および server-02 *と呼びます。

  • * 2つのDigitalOcean Spaces *。 これらを実行する方法については、https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces [DigitalOcean Spacesの紹介]を参照してください。

  • *スペースのアクセスキーとシークレットキー。*これらを生成するには、DigitalOceanコントロールパネルのhttps://cloud.digitalocean.com/settings/api/tokens[APIページ]にアクセスします。

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

複製のインストール

「+ wget +」を使用して、https://github.com/gilbertchen/duplicacy/releases [Duplicacy GitHub repository]から最新のDuplicacy CLIバージョンをダウンロードできます(個人ユーザーにはライセンスは不要です)。

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

sudo wget -O /opt/duplicacy https://github.com/gilbertchen/duplicacy/releases/download/v/duplicacy_linux_x64_

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

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

最後に、 `+ duplicacy +`を実行可能にします:

sudo chmod 0755 /opt/duplicacy

これで、各Dropletに複製がインストールされ、Spaceを使用するように設定する準備ができました。

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

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

`+ init +`コマンドは次の構文を受け入れます:

duplicacy init  s3://@/
  • + repository_id +:これは、異なるリポジトリを区別するためにDuplicacyが使用するラベルです。 このチュートリアルの次のステップで説明するように、複数のソースから同じリポジトリをバックアップする予定の場合、リポジトリIDは両方のドロップレットで同じである必要があります。

  • + region +: `+ region +`は、ドロップレットが配置されているリージョンの名前です。

  • + endpoint +:エンドポイントは、特定のリソースがどこにあるかを指定するためにサーバーサイドWeb APIによって使用される静的な場所です。 DigitalOcean Spacesの場合、エンドポイントは、「。digitaloceanspaces.com +」のように、「。digitaloceanspaces.com +」が後に続くリージョンになります。 Spaceのエンドポイント名は、[設定]タブのSpacesコントロールパネルから直接コピーすることもできます。

  • + space_name +:これは、作成中に指定されたスペースの名前です。 これはスペースのURLではないことに注意してください。 SpaceのURLが「+ https://.nyc3.digitaloceanspaces.com+」の場合、その名前は「++」になります。

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

duplicacy init  s3://@///

これらの詳細が手元にあれば、 `+ mkdir `コマンドを使用して、各ドロップレットに*リポジトリディレクトリを作成する準備ができています。 その後、 ` cd +`で新しいリポジトリに移動します:

mkdir
cd /

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

duplicacy init  s3://@.digitaloceanspaces.com/

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

duplicacy init  project_01 s3://[email protected]/example_space

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

`+ init +`コマンドが実行されると、Dupplicacyはアクセスキーとシークレットキーの入力を求めます。これらのキーはコントロールパネルのhttps://cloud.digitalocean.com/settings/api/tokens[APIページ]からコピーできます。

OutputEnter S3 Access Key ID:
Enter S3 Secret Access Key:

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

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

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

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

duplicacy init  s3://@.digitaloceanspaces.com/

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

OutputThe storage 's3://@.digitaloceanspaces.com/' has already been initialized
Compression level: 100
Average chunk size: 4194304
Maximum chunk size: 16777216
Minimum chunk size: 1048576
Chunk seed: 6475706c6963616379
will be backed up to s3://@.digitaloceanspaces.com/ with id

サーバーの両方のリポジトリが初期化されましたが、Dupplicacyを設定するためにもう1つのステップが必要になる場合があります。 現状では、Dupplicacyはデータをバックアップするたびにアクセスキーとシークレットキーの入力を求めますが、これはかなり面倒です。 これを回避するには、Duplicacyの `+ set `コマンドを使用して、Spaceの認証情報をDuplicacyの ` preferences +`ファイルに書き込むことができます。 それぞれのサーバーで以下のコマンドを実行して、複製とアクセスキーをそれぞれ保存します:

duplicacy set -key s3_id -value
duplicacy set -key s3_secret -value

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

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

分散チームは、ファイルの競合やデータの損失を防ぐ控えめなクラウドバックアップソリューションの恩恵を受けることができます。 リポジトリ全体のスナップショットを取得し、単一のコマンドでスペースにアップロードすることにより、Dupplicacyはバックアップを合理化すると同時に、複数のマシン間でのファイルの競合を回避します。

Duplicacyのバックアップ機能をテストするには、 `+ touch +`を使用して、それぞれのドロップレットに* ++を*ダミーファイルをいくつか追加します。

touch
touch

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

duplicacy backup

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

OutputNo 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 *からリポジトリをバックアップしてみます。

duplicacy backup
OutputLast backup at revision 1 found
Indexing /home/sammy/project-repository
Backup for /home/sammy/project-repository at revision 2 completed
  • server-01 server-02 のリポジトリは同一であるため、最初のドロップレットで「+ backup +」コマンドを実行したときのようにDuplicacyはファイルをパックしませんでした。 少し異なるスナップショットをバックアップするとどうなるかを確認するには、 server-02 *のダミーファイルの1つを開き、それにテキストを追加します。

nano file-1.txt

project-repository / file-1.txt

「+ CTRL-X 」、「 Y 」、次に「 ENTER 」と入力してファイルを保存して閉じ、もう一度「 backup +」コマンドを実行します。

duplicacy backup
OutputStorage set to s3://[email protected]/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の一部としてアップロードしました。

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

duplicacy restore -overwrite -r 2

`+ restore `コマンドを実行した後、Duplicacyが実際に ` file-1.txt +`を書き換えたかどうかを確認するには、内容があるかどうかを確認します。

cat file-1.txt

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

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

複数のオフサイトの場所にバックアップを保存することは、https://www.digitalocean.com/community/tutorials/importance-off-site-backups [長年の一般的なデータセキュリティ慣行]です。 ただし、ファイルを複数の宛先にバックアップするプロセスは退屈で、生産性が低下する可能性があります。 ただし、クラウド内の複数の場所にデータをバックアップするための迅速なソリューションを提供できるサードパーティ製のバックアップツールがいくつかあります。

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

複製の `+ add +`コマンドは次の構文を使用します。

duplicacy add   s3://@/

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

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

duplicacy add   s3://@/

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

duplicacy backup
duplicacy copy -from default -to space_02

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

結論

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

Duplicacyの使用方法について詳しく知りたい場合は、https://github.com/gilbertchen/duplicacy/wiki [GitHubのプロジェクトwiki]をご覧ください。 または、バックアップ戦略全般について詳しく知りたい場合は、https://www.digitalocean.com/community/tutorials/how-to-choose-an-effective-backup-strategy-for-のガイドをご覧くださいyour-vps [VPSの効果的なバックアップ戦略を選択する方法]またはhttps://www.digitalocean.com/community/tutorials/object-storage-vs-block-storage-services[Object Storage vs. ブロックストレージサービス]。

Related