Linux でファイルシステムをマウントする
Linux では、TiDB Cloud Filesystem は FUSE を使用して、ローカルディレクトリ経由でファイルシステムのデータを利用できるようにします。ファイルシステムをマウントすると、アプリケーションやツールは通常のローカルファイルパスを使ってファイルシステムにアクセスできます。
前提条件
開始する前に、以下を確認してください。
- TiDB Cloud CLI (
ti) をインストールする。 - ファイルシステムとそのトークンを
tiから利用できるようにします。詳細は 既存のファイルシステムにアクセスする を参照してください。 fuse3パッケージをインストールできる Linux ホストを使用します。コンテナの場合は、代わりに Docker と Docker Compose に従ってください。
マウントと、それにアクセスするアプリケーションは、同じ OS ユーザーとして実行してください。
FUSE ユーザースペースツールをインストールする
Ubuntu または Debian では、
fuse3パッケージをインストールします。sudo apt-get update sudo apt-get install -y --no-install-recommends fuse3FUSE のマウントヘルパーがインストールされていることを確認します。
command -v fusermount3このコマンドは、次のように
fusermount3へのパスを出力します。/usr/bin/fusermount3FUSE デバイスが利用可能であることを確認します。
ls -l /dev/fuseこのコマンドは
/dev/fuseのエントリを表示します。
fusermount3 が見つからない場合は、fuse3 パッケージがインストールされていることを確認してください。/dev/fuse が存在しない場合、またはマウント時に使用できない場合は、ホスト管理者に FUSE を有効化し、ユーザーにそのデバイスへのアクセス権を付与するよう依頼してください。
他の Linux ディストリビューションでは、fusermount3 を提供する FUSE パッケージをインストールし、同じ確認を行ってください。
ファイルシステムをマウントして確認する
マウント用のローカルディレクトリを作成します。
mkdir -p "$HOME/workspace"マウントにアクセスするアプリケーションを実行するのと同じ OS ユーザーが所有するディレクトリを使用してください。
ファイルシステムをマウントします。
ti fs mount-file-system --mount-path "$HOME/workspace"Linux では、
tiはデフォルトで FUSE を使用します。このコマンドは、マウントの準備が完了するまで待機してから終了します。コマンド終了後もマウントはバックグラウンドで動作し続けるため、ターミナルを閉じてもアンマウントされません。
マウントが成功すると、
$HOME/workspace経由でファイルシステムにアクセスできます。ファイルシステムトークンが特定のリモートパスへのアクセスのみを許可している場合は、前述のマウントコマンドの代わりに次のコマンドを使用してください。
ti fs mount-file-system \ --remote-path /workspace \ --mount-path "$HOME/workspace"この例では、リモートの
/workspaceディレクトリがローカルマウントのルートになります。詳細は ファイルシステムの一部のみをマウントする を参照してください。ローカルマウント経由の書き込みを防ぐには、マウントコマンドに
--read-onlyを追加します。たとえば、ファイルシステムのルートを読み取り専用でマウントするには、次のようにします。ti fs mount-file-system \ --mount-path "$HOME/workspace" \ --read-only--read-onlyオプションは、このローカルマウントにのみ影響します。ファイルシステムサービス側で読み取り専用アクセスを強制するには、読み取り専用権限を持つスコープ付きトークンを使用してください。マウントされたファイルシステムにアクセスできることを確認します。
ls "$HOME/workspace"このコマンドは、マウントされたパスのルートにあるファイルとディレクトリを一覧表示します。
書き込み可能なマウントを使用していて、トークンに書き込み権限がある場合は、テストファイルを作成して読み取ることもできます。
TEST_FILE="mount-check-$(date +%s).txt" printf 'Hello from Linux\n' > "$HOME/workspace/$TEST_FILE" cat "$HOME/workspace/$TEST_FILE"出力例:
Hello from Linux作業が完了したら、マウントされたディレクトリに書き込みを行っているアプリケーションを停止し、開いているファイルを閉じてから、ファイルシステムをアンマウントします。
ti fs unmount-file-system --mount-path "$HOME/workspace"アンマウントが成功すると、保留中の FUSE 書き込みをフラッシュしてからマウントを停止します。
上記のテストファイルを作成した場合は、アンマウント後に、そのファイルがファイルシステムから直接利用できることを必要に応じて確認できます。
ti fs read-file --path "/$TEST_FILE"出力例:
Hello from Linux
アンマウントするとローカルマウントは削除されますが、ファイルシステムやそのデータは削除されません。
アンマウントせずに FUSE 書き込みをフラッシュする
マウントを維持したまま保留中の書き込みをファイルシステムに到達させる必要がある場合は、まず対象ファイルへの書き込みを行うアプリケーションを停止し、それらのファイルを閉じてください。その後、マウントを drain します。
ti fs drain-file-system \
--mount-path "$HOME/workspace" \
--timeout 30s
drain が成功すると、マウントを維持したまま保留中の書き込みがファイルシステムに到達したことを確認できます。drain がタイムアウトした場合やエラーを返した場合は、マウントとマシンを利用可能な状態に保ち、エラーを解消し、セッションを終了したり他のユーザーに更新の準備ができたと伝えたりする前に、ファイルを確認してください。コマンド構文については、drain-file-system を参照してください。
マウント権限エラーをトラブルシュートする
マウントが Permission denied で失敗する場合は、次の項目を順に確認してください。
マウントディレクトリに現在のユーザーの書き込み権限があることを確認します。
ls -ld "$HOME/workspace"/dev/fuseが存在することを確認します。ls -l /dev/fuseアプリケーションを実行するのと同じ OS ユーザーとしてマウントを作成していることを確認します。
FUSE マウントを
rootとして作成し、その後でマウントディレクトリの所有権を変更して別のユーザーにアクセスさせようとしないでください。代わりに、アプリケーションユーザーとしてマウントを作成してください。別のマウントがすでに同じパスを使用していないか確認します。
mount | grep "$HOME/workspace"マウントが表示された場合は、新しいマウントを作成する前に、
ti fs unmount-file-system --mount-path "$HOME/workspace"またはfusermount3 -u "$HOME/workspace"でアンマウントしてください。tiが診断ログのパスを報告した場合は、そのログを調べて根本的なエラーを確認してください。
AppArmor などの追加のセキュリティ制御があるシステムでは、ディレクトリ権限が正しく見えていても、オペレーティングシステムがマウントを拒否することがあります。
追加のマウントエラーについては、TiDB Cloud Filesystem のトラブルシューティング を参照してください。
Ubuntu 26.04 のマウントパス制限
Ubuntu 26.04 では、fusermount3 の AppArmor プロファイルにより、一部のパスで FUSE マウントができないことがあります。特に、/workspace のようなトップレベルディレクトリでは、ファイル権限が正しく見えていても Permission denied で失敗する場合があります。
このガイドのコマンドでは、マウントディレクトリとして /workspace ではなく $HOME/workspace を使用してください。
/workspace の所有者を変更したり、root としてマウントを実行したりしても、AppArmor の制限は回避できません。
アプリケーションで /workspace が必須の場合は、ホスト管理者に依頼して /etc/apparmor.d/local/fusermount3 でそのパスを許可してもらってください。
mount fstype=@{fuse_types} options=(nosuid,nodev) options in (ro,rw,noatime,dirsync,nodiratime,noexec,sync) -> /workspace/{,**/},
umount /workspace/{,**/},
その後、管理者は AppArmor プロファイルを再読み込みできます。
sudo apparmor_parser -r /etc/apparmor.d/fusermount3
プロファイルの更新後、/workspace で再度マウントを試してください。
AppArmor が失敗の原因かどうかを確認する方法については、Ubuntu 26.04 で /workspace 配下の FUSE マウントが拒否される を参照してください。
次のステップ
- 読み取り専用マウント、レイヤーまたはチェックポイントのマウント、およびその他の一般的なマウントオプションについては、ファイルシステムをマウントする を参照してください。
- レイヤーまたはチェックポイントをマウントして操作する方法については、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。
- 別のユーザーまたは環境にファイルシステムへのアクセスを提供する方法については、マシン間でファイルシステムを共有する を参照してください。