AlmaLinux 10で快適!rcloneを使ってGoogle Driveも爆速マウントする方法
この記事の要約(読了目安: 10秒)
- 対象者: Dropbox編に続き、Google Driveも本格的なバックアップ先として活用したい方。
- 何ができるようになるか: 自分専用のAPI Client IDを作成し、Google Drive内の特定フォルダを
/mnt/GoogleDriveに爆速・安定マウントできます!
1. はじめに
前回の「Dropbox編」、無事に設定できましたか?「DropboxができるならGoogle Driveも!」と欲が出てくるのが、私たちエンジニアですよね(笑)。
というわけで、シリーズ第2弾はGoogle Driveマウント編です!Google Driveは世界中で利用者が多いため、デフォルトの共有キーだと通信制限がかかりやすいという弱点があります。今回はその弱点を克服するべく、「自分専用のClient ID」を作ってマウントする、ワンランク上の設定手順をご紹介します!
2. 今回の環境
- OS: AlmaLinux 10
- Tool: rclone v1.72.1 (EPEL版)
- マウント対象: Google Drive内の
SERVERS/srv-01.example.jpフォルダ - マウント先: Linux側の
/mnt/GoogleDrive
3. 事前準備:Google Cloud ConsoleでClient IDを作ろう
「自分専用の高速道路」を作るための、ちょっとした一手間です。ここを乗り越えれば、爆速なバックアップ環境が手に入ります!
Client ID作成のステップ
- Google Cloud Consoleにログインします。
- プロジェクトの作成: 「新しいプロジェクト」を作成(名前は
rclone-backupなど何でもOK)。 - APIの有効化: 「APIとサービス」→「ライブラリ」から Google Drive API を検索して「有効にする」をポチッ。
- 同意画面の設定: メニューの「OAuth 同意画面」で、User Typeを「外部」にして作成。アプリ名などは適当で大丈夫ですが、メールアドレスだけ入力して保存します。
- ※「公開ステータス」は「テスト」のままで問題ありません。
- 認証情報の作成: 「認証情報」→「認証情報を作成」→ OAuth クライアント ID を選択。
- アプリケーションの種類は 「デスクトップ アプリ」 を選びます。
- IDとシークレットの取得: 画面に表示される
クライアント IDとクライアント シークレットをメモしておきましょう!
4. リモート設定(rclone config)
いよいよLinux側の設定です!実際のログを交えて進めていきます。
[root@dev ~]# rclone config
n) New remote
e/n/d/r/c/s/q> n
Enter name for new remote.
name> GoogleDrive
Option Storage.
Storage> 22 # Google Driveを選択
Option client_id.
# ここで、先ほどメモした自分専用の ID を入力!
client_id> [ここに自分のクライアントIDを貼り付け]
Option client_secret.
# 続いてシークレットも入力!
client_secret> [ここに自分のクライアントシークレットを貼り付け]
仕上げの対話手順
ここからが認証のハイライト!一つずつ確実に選んでいきましょう。
- scope:
1(Driveの全権限) を選択します。 - service_account_file: 何も入力せず Enter。
- Edit advanced config? n (No)を選択。
- Use web browser…: n (No)を選択。
- 表示された
rclone authorize "drive" --client-id "..."をWindows/Mac側で実行し、ブラウザ経由でトークンを取得します。
- 表示された
- result (config_token): 手元のPCで表示された長いトークンを
result>に貼り付けます。 - Configure this as a Shared Drive?: ここは通常 n (No)でOKです!
- ※会社などで「共有ドライブ(旧チームドライブ)」をマウントしたい場合のみ
yを選びます。
- ※会社などで「共有ドライブ(旧チームドライブ)」をマウントしたい場合のみ
- Keep this “GoogleDrive” remote?: 最後に y を押して保存完了です!
5. いざマウント!Google Drive専用の設定
FUSEの user_allow_other 設定が済んでいない方は、前回の記事を参考に有効化しておいてくださいね。
# マウントポイントの作成
mkdir -p /mnt/GoogleDrive
# マウントの実行
# --vfs-cache-mode full は Google Drive 操作の快適さに直結します!
rclone mount GoogleDrive:SERVERS/srv-01.example.jp /mnt/GoogleDrive \
--vfs-cache-mode full \
--allow-other \
--umask 0000 \
--daemon
ここがポイント!
Google DriveはDropboxに比べて、ファイルの認識に若干のタイムラグが出ることがあります。
Google DriveはDropboxに比べて、ファイルの認識に若干のタイムラグが出ることがあります。
--vfs-cache-mode full を付けておけば、キャッシュのおかげで操作感が劇的に改善しますよ!
6. Systemdで自動マウント化
再起動のたびにコマンドを打つのは大変なので、サービスとして登録しましょう!
/etc/systemd/system/rclone-googledrive.service
[Unit]
Description=rclone Google Drive Mount Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount GoogleDrive:SERVERS/srv-01.example.jp /mnt/GoogleDrive \
--config=/root/.config/rclone/rclone.conf \
--vfs-cache-mode full \
--allow-other \
--umask 0000
ExecStop=/bin/fusermount3 -u /mnt/GoogleDrive
Restart=on-failure
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
サービス開始!
systemctl daemon-reload
systemctl enable --now rclone-googledrive.service
コラム:Google Drive編の「ここがミソ!」
- 自分専用 Client ID の威力: 設定は少し面倒ですが、APIの利用制限を自分一人で独占できるため、通信の安定性が格段に上がります。本気バックアップなら必須です!
- Dropboxとの共演:
/mnt/Dropboxと/mnt/GoogleDriveを並行運用すれば、クラウドストレージ間でのcpも可能。最強の多重バックアップ環境の完成です。
お疲れ様でした!これであなたのサーバーは2つの強力な翼を手に入れました。
どんどんデータを放り込んで、快適なバックアップライフを送りましょう!