Ubuntu Weekly Recipe

第657回オブジェクトストレージ、MinIOを使用する[クライアント編]

今回は第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 マルチユーザー環境向けにパスワードを設定するか質問される
図1

「Add backup」をクリックし、バックアップの設定を行います図2⁠。⁠General(全般⁠⁠」では、設定するバックアップ名と「Passphrase」を指定してください。⁠Passphrase」はなくてもいいといえばそうなのですが、エラーメッセージが表示されるので設定しておくのがいいでしょう。

図2 ⁠General(全般⁠⁠」の設定
図1

「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(バックアップ先⁠⁠」の設定
図1

「The bucket name should start with your username, prepend automatically?」というダイアログが表示された場合は、⁠No」をクリックしてください図4⁠。MinIOではユーザー名は特に使用しません。接続を確認できたら「Next」をクリックしてください。

図4 バケットにユーザーネームを付与するか質問される
図1

「Source data(バックアップ元⁠⁠」では「Home」にチェックを入れ、ホームフォルダー全体をバックアップの対象とします図5⁠。ただし「Filters」「Exclude folder」「$HOME/.cache」を入力し、⁠.cache」フォルダー以下をバックアップの対象から外してください。⁠Exclude」にも「Temporary Files」がありますが、⁠.cache」フォルダー以下は含まれないようです。設定が終わったら「Next」をクリックしてください。

図5 ⁠Source data(バックアップ元⁠⁠」の設定
図1

「Schedule」は任意に決定してください。週1回くらいでいい気がします図6⁠。設定が終わったら「Next」をクリックしてください。

図6 ⁠Schedule(スケジュール⁠⁠」の設定
図1

「General options(全般のオプション⁠⁠」では、バックアップファイルのサイズやバックアップの保存期間を指定します図7⁠。⁠Backup retention」「Smart backup retention」に変更するのがおすすめです。ここまで完了したら「Save」をクリックし、設定を保存してください。

図7 ⁠General options(全般のオプション⁠⁠」の設定
図1

もし「Your passphrase is easy to guess. Consider changing passphrase」というダイアログが表示されたら、⁠Use weak passphrase」をクリックするでおおむね問題ないでしょう。バックエンドにMinIOを採用している場合は、それほどパスフレーズの強度に気を配らなくても問題ないはずです。

設定が完了したら「Home」をクリックし、⁠Run now」をクリックして初回バックアップを行ってください図8⁠。

図8 設定が完了し、バックアップが実行可能になった
図1

おすすめ記事

記事・ニュース一覧