今回は第655回 で紹介したオブジェクトストレージサーバー、MinIOのクライアントとして使用できるソフトウェアを3つ紹介します。
MinIOのクライアント
第655回 で述べたとおり、MinIOはオブジェクトストレージサーバーで、Amazon S3互換APIを採用しています。ということは、さまざまなS3互換APIに対応したソフトウェアが使用できるということです。もちろん世の中に数多あるS3互換API対応ソフトウェアをすべて紹介することはできないので、今回は3つだけ紹介します。
そのうちの一つはもちろんMinIOクライアントです。ローカルにある指定したフォルダーの中身をMinIOに同期する用途とします。
また、MinIOのバケットを直接マウントするためにs3fs-fuse を取り上げます。その名のとおりFUSE を使用していますが、GVfs では対応しないため、別途インストールが必要です。
最後はDuplicati です。オープンソースでマルチプラットフォームなバックアップアプリケーションです。つまりWindowsでも動作するということです。UbuntuでもWindowsでも動作するバックアップアプリケーションというのはなかなか貴重な存在でしょう。
MinIOクライアントでフォルダーの同期
MinIOもMinIOクライアントも、第655回のものを引き続き使用します。「 systemdでデーモンとして管理する」の項で説明したように/opt/minio以下にインストールした状態として以下解説しますが、ホームフォルダーにインストールした状態のままでも特に問題はありません。なお使用するエイリアスも「test」のままです。
例として「s3fs-bucket」というバケットを作成し、そこに「~/Pictures」フォルダーを同期します。
まずはMinIOをアップデートしましょう。
$ cd ~/minio-client/
$ ./mc admin update test
バケットを作成します。
$ ./mc mb test/s3fs-bucket
同期します。
$ ./mc mirror ~/Pictures/ test/minio-client
同期が完了したら終了します。
フォルダーの変更を監視して自動的に同期させ、かつローカルのファイルが削除された際にMinIOのファイルも削除する場合は次のコマンドを実行します。
$ ./mc mirror --remove --watch --quiet ~/Pictures/ test/minio-client
s3fs-fuseでマウント
手元にファイルを置かずにMinIOのバケットを直接マウントするには、まず「s3fs-fuse」パッケージをインストールします。次のコマンドを実行してください。
$ sudo apt install s3fs
アクセスキーとシークレットキーの入力を省略するため、次のコマンドを実行してください。
$ echo unique-minioadmin:secure-minioadmin-password > ~/.passwd-s3fs
$ chmod 600 ~/.passwd-s3fs
ここでのアクセスキーの例は「unique-minioadmin」 、シークレットキーの例は「secure-minioadmin-password」で、「 :」で接続しています。
「s3fs-bucket」というバケットを作成します。MinIOクライアントで次のコマンドを実行してください。
$ ./mc mb test/s3fs-bucket
ローカルのマウント先を作成します。
$ mkdir ~/s3fs-local
マウントを実行します。
$ s3fs s3fs-bucket ~/s3fs-local/ -o passwd_file=~/.passwd-s3fs,use_path_request_style,url=http://192.168.12.102:9000,uid=$(id -u),gid=$(id -g)
「ファイル」( Nautilus)にも表示されるので扱いやすいでしょう。
ログイン時に自動マウントする方法は紹介しませんが、systemdのユーザー権限でデーモンにするのがいいではないかと思います。
Duplicatiでバックアップ
Duplicati は前述のとおりオープンソースでマルチプラットフォームなバックアップアプリケーションです。特徴はバックアップ場所の選択肢が多彩 なことです。その中にAmazon S3(互換API)がある、というわけです。
DuplicatiはUbuntuのリポジトリにパッケージは存在しないため、公式サイトのダウンロードページ から「Debian/Ubuntu 2.0.5.1」をダウンロードしてください(本記事掲載時点) 。ダウンロードしたパッケージをダブルクリックするとUbuntuソフトウェアが起動しますので、インストールしてください。依存パッケージも一緒にインストールされます。
事前にバックアップ用のバケットを作成します。MinIOクライアントで次のコマンドを実行してください。
$ ./mc mb test/duplicati
メニューからDuplicatiを起動すると、GNOME Shellの右上にアイコンが表示されるので、ここをクリックして「Open」をクリックするとWebブラウザー(通常はFirefox)が起動します。
まず「First run setup」が表示されます。Duplicatiのログインにパスワードを設定するかどうか質問されますが、ここではユーザーは自分だけとして「No, my machine has only a single account」をクリックします(図1 ) 。
図1 マルチユーザー環境向けにパスワードを設定するか質問される
「Add backup」をクリックし、バックアップの設定を行います(図2 ) 。「 General(全般) 」では、設定するバックアップ名と「Passphrase」を指定してください。「 Passphrase」はなくてもいいといえばそうなのですが、エラーメッセージが表示されるので設定しておくのがいいでしょう。
図2 「 General(全般) 」の設定
「Destination(バックアップ先) 」では「Storage Type」を「Amazon S3」に、「 Server」を「Custom server url」にし、下の欄にIPアドレスまたはホスト名とポート番号を続けて指定します(図3 ) 。「 Bucket name」は先ほど作成したバケットを入力します。「 Folder path」は好きなフォルダー名を入力します。Ubuntuのホスト名がわかりやすくていいでしょう。「 AWS AccessID」には「アクセスキー」を、「 AWS Access Key」には「シークレットキー」を入力してください。入力が終わったら「Test connection」をクリックし、接続できるかどうかを確認してください。
図3 「 Destination(バックアップ先) 」の設定
「The bucket name should start with your username, prepend automatically?」というダイアログが表示された場合は、「 No」をクリックしてください(図4 ) 。MinIOではユーザー名は特に使用しません。接続を確認できたら「Next」をクリックしてください。
図4 バケットにユーザーネームを付与するか質問される
「Source data(バックアップ元) 」では「Home」にチェックを入れ、ホームフォルダー全体をバックアップの対象とします(図5 ) 。ただし「Filters」で「Exclude folder」に「$HOME/.cache」を入力し、「 .cache」フォルダー以下をバックアップの対象から外してください。「 Exclude」にも「Temporary Files」がありますが、「 .cache」フォルダー以下は含まれないようです。設定が終わったら「Next」をクリックしてください。
図5 「 Source data(バックアップ元) 」の設定
「Schedule」は任意に決定してください。週1回くらいでいい気がします(図6 ) 。設定が終わったら「Next」をクリックしてください。
図6 「 Schedule(スケジュール) 」の設定
「General options(全般のオプション) 」では、バックアップファイルのサイズやバックアップの保存期間を指定します(図7 ) 。「 Backup retention」を「Smart backup retention」に変更するのがおすすめです。ここまで完了したら「Save」をクリックし、設定を保存してください。
図7 「 General options(全般のオプション) 」の設定
もし「Your passphrase is easy to guess. Consider changing passphrase」というダイアログが表示されたら、「 Use weak passphrase」をクリックするでおおむね問題ないでしょう。バックエンドにMinIOを採用している場合は、それほどパスフレーズの強度に気を配らなくても問題ないはずです。
設定が完了したら「Home」をクリックし、「 Run now」をクリックして初回バックアップを行ってください(図8 ) 。
図8 設定が完了し、バックアップが実行可能になった