macOS でファイルシステムをマウントする
macOS では、TiDB Cloud ファイルシステムをローカルディレクトリとしてマウントし、通常使用しているアプリケーションやツールでそのファイルにアクセスできます。次のいずれかのマウント方法を選択してください。
- WebDAV: ほとんどのワークフローに推奨されます。追加のマウントソフトウェアは不要です。
- macFUSE: レイヤーまたはチェックポイントのマウント、ローカルの読み取り専用マウントの作成、ファイルシステムをアンマウントせずに保留中の書き込みをフラッシュすることをサポートします。macFUSE のインストールが必要です。
--driver オプションを指定しない場合、TiDB Cloud CLI (ti) は macOS では、macFUSE がインストールされていても WebDAV でファイルシステムをマウントします。FUSE を使用するには、--driver fuse を指定してください。レイヤーおよびチェックポイントのマウントでは常に FUSE が必要です。このガイドの例では、どのマウント方法が使用されるかが分かるように、--driver を明示的に指定しています。
前提条件
開始する前に、以下を確認してください。
既存の TiDB Cloud ファイルシステムがあること。まだない場合は、ファイルシステムを作成して使用する を参照してください。
有効なトークンを使用してファイルシステムにアクセスできるように
tiが設定されていること。既存のファイルシステムにアクセスする を参照してください。ファイルの一覧表示と読み取りを行うには、トークンにリモートディレクトリに対する
listおよびread権限が必要です。ファイルの作成または変更にはwriteも必要で、ファイルの削除にはdeleteが必要です。以下の WebDAV の確認手順では、オーナートークンまたは 4 つすべての権限を持つスコープ付きトークンを使用します。読み取り専用アクセスについては、読み取り専用アクセスに WebDAV を使用する を参照してください。
WebDAV でマウントする
ほとんどのワークフローでは、追加のマウントソフトウェアをインストールせずにファイルシステムをマウントできる WebDAV を使用してください。
Bash または Zsh を使用し、WebDAV の手順全体を通して同じシェルを開いたままにしてください。これにより、例で使用する変数を引き続き利用できます。
ローカルのマウントディレクトリを準備します。すでに
$HOME/workspaceにファイルシステムがマウントされている場合は、そのディレクトリを再利用する前にアンマウントしてください。ti fs unmount-file-system --mount-path "$HOME/workspace"次に、ディレクトリが存在しない場合は作成します。
mkdir -p "$HOME/workspace"リモートディレクトリを選択し、リモート読み取りを確認するために小さなサンプルファイルをアップロードします。トークンが特定のリモートディレクトリへのアクセスのみを許可している場合は、以下の
/を/workspaceなどのそのディレクトリに置き換えてください。remote_path="/" test_file="mount-check-$(date +%s)-$$.txt" printf 'Hello from the service\n' | ti fs copy-file \ --from-stdin --to-remote "${remote_path%/}/$test_file"生成されるファイル名は、既存ファイルの上書きを避けるのに役立ちます。アップロードが成功してから次に進んでください。
WebDAV でファイルシステムをマウントします。
ti fs mount-file-system \ --remote-path "$remote_path" \ --mount-path "$HOME/workspace" \ --driver webdav選択したリモートディレクトリがローカルマウントのルートになります。たとえば、
remote_path="/workspace"の場合、リモートの/workspaceディレクトリには$HOME/workspaceを通じてアクセスできます。詳細は、ファイルシステムの一部のみをマウントする を参照してください。マウントはアンマウントするまでバックグラウンドで実行されます。ターミナルを閉じてもアンマウントされません。
ファイルを一覧表示し、ローカルマウント経由でアップロードしたサンプルを読み取ります。
ls "$HOME/workspace" cat "$HOME/workspace/$test_file"catの想定出力:Hello from the serviceディレクトリ一覧の表示だけでは、ファイルの読み取りが機能していることは確認できません。ファイル操作に 30 秒以上かかる場合は、Ctrl+C で中断し、続行する前に マウントは成功するがファイルアクセスがハングする を参照してください。
読み取りが成功したら、マウント経由でサンプルファイルを更新します。
printf 'Hello from macOS\n' > "$HOME/workspace/$test_file"完了したら、アプリケーションによるマウント先への書き込みを停止し、開いているファイルを閉じてから、ファイルシステムをアンマウントします。
ti fs unmount-file-system --mount-path "$HOME/workspace"WebDAV は
drain-file-systemをサポートしていません。アンマウントに失敗した場合は、マシンとローカルマウントデータをそのまま保持し、続行する前に 安全に終了する を参照してください。アンマウントが正常に完了したら、更新内容がサービスに反映されたことを確認します。
ti fs read-file --path "${remote_path%/}/$test_file"想定出力:
Hello from macOS確認が成功したら、サンプルファイルを削除します。
ti fs delete-file --path "${remote_path%/}/$test_file"
アンマウントするとローカルマウントは削除されますが、ファイルシステムやそのデータは削除されません。
読み取り専用アクセスに WebDAV を使用する
WebDAV は --read-only オプションをサポートしていません。
WebDAV 経由で読み取り専用アクセスを強制するには、read と list 権限のみを持つスコープ付きトークンを使用し、--read-only を付けずに通常どおりマウントしてください。サービス側でトークンにより読み取り専用アクセスが強制されます。
例については、共有ディレクトリをマウントする を参照してください。
ローカルマウント自体を読み取り専用にする必要がある場合は、--driver fuse --read-only を付けて macFUSE を使用してください。
macFUSE を使用してマウントする
次のような FUSE の機能が必要な場合は、WebDAV ではなく FUSE を使用します。
- レイヤーまたはチェックポイントをマウントする。
- ローカルの読み取り専用マウントを作成する。
- マウントを維持したまま、
drain-file-systemで保留中の書き込みをフラッシュする。
macOS で macFUSE を使用してファイルシステムをマウントするには、次の手順を実行します。
macFUSE をインストールし、お使いの macOS バージョンで必要なインストール手順またはセキュリティ承認手順を完了します。
tiをインストールしても macFUSE はインストールされません。ローカルのマウントディレクトリを準備します。すでに
$HOME/workspaceにファイルシステムがマウントされている場合は、ディレクトリを再利用する前にアンマウントします。ti fs unmount-file-system --mount-path "$HOME/workspace"次に、ディレクトリが存在しない場合は作成します。
mkdir -p "$HOME/workspace"必要なリモートディレクトリとアクセスモードに応じて、FUSE のマウントコマンドを選択します。必要に合うコマンドのみを実行してください。
FUSE でファイルシステムのルートをマウントするには、次を実行します。
ti fs mount-file-system \ --mount-path "$HOME/workspace" \ --driver fuseマウントはアンマウントするまでバックグラウンドで実行されます。ターミナルを閉じてもアンマウントされません。
FUSE マウントと、それにアクセスするアプリケーションは、同じ OS ユーザーとして実行してください。
トークンが特定のリモートディレクトリへのアクセスのみを許可している場合は、
--remote-pathで指定します。たとえば、ファイルシステムのルートではなく/workspaceをマウントするには、次を使用します。ti fs mount-file-system \ --remote-path /workspace \ --mount-path "$HOME/workspace" \ --driver fuse詳細は、ファイルシステムの一部のみをマウントする を参照してください。
ローカルマウントを読み取り専用にするには、選択したマウントコマンドに
--read-onlyを追加します。ファイルシステムのルートを読み取り専用でマウントするには、次を使用します。ti fs mount-file-system \ --mount-path "$HOME/workspace" \ --driver fuse \ --read-onlyレイヤーおよびチェックポイントのマウントには FUSE が必要であり、チェックポイントのマウントは常に読み取り専用です。詳細は、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。
作業が完了したら、アプリケーションによるマウント先への書き込みを停止し、開いているファイルを閉じてから、アンマウントします。
ti fs unmount-file-system --mount-path "$HOME/workspace"FUSE のアンマウントが正常に完了すると、保留中の書き込みがフラッシュされます。通常のアンマウントの前に
drain-file-systemを実行する必要はありません。マウントログにforce_quitまたは保留中の書き込みが報告された場合は、FUSE の書き込み動作 を参照してください。
アンマウントするとローカルマウントは削除されますが、ファイルシステムやそのデータは削除されません。
アンマウントせずに FUSE の書き込みをフラッシュする
FUSE マウントを維持したまま保留中の書き込みをファイルシステムに反映させる必要がある場合は、まず対象ファイルへのアプリケーションの書き込みを停止し、それらのファイルを閉じます。その後、マウントを drain します。
ti fs drain-file-system \
--mount-path "$HOME/workspace" \
--timeout 30s
drain が正常に完了すると、マウントを維持したまま保留中の書き込みがファイルシステムに到達したことを確認できます。
drain がタイムアウトするかエラーを返した場合は、マウントとマシンを利用可能な状態のままにし、セッションを終了したり、別のユーザーまたは環境で更新内容を利用可能にしたりする前に、エラーを解決してファイルを確認してください。
WebDAV は drain-file-system をサポートしていません。コマンド構文については、drain-file-system を参照してください。
マウントの問題をトラブルシューティングする
WebDAV マウントの開始に失敗した場合は、次を確認してください。
- ローカルのマウントディレクトリが存在し、書き込み可能であること。
- 同じローカルディレクトリを別のマウントがすでに使用していないこと。
- 根本原因について、
tiが報告する診断ログのパスを確認すること。
FUSE マウントの開始に失敗した場合は、次を確認してください。
- macFUSE がインストールされていること。
- macFUSE に必要な macOS のセキュリティ承認を完了していること。
- マウントと、それにアクセスするアプリケーションが同じ OS ユーザーとして実行されていること。
- 同じローカルディレクトリを別のマウントがすでに使用していないこと。
tiが報告する診断ログのパスを確認すること。
ファイル操作に 30 秒以上かかる場合は、Ctrl+C で中断し、マウントは成功するがファイルアクセスがハングする を参照してください。
アンマウントに失敗した場合は、エラーを解決し、必要なファイルがファイルシステムに到達したことを確認するまで、マウントプロセスとマシンを実行したままにしてください。保留中の書き込みが残っている可能性がある間は、ローカルのマウントデータを削除しないでください。
その他のマウントエラーについては、TiDB Cloud Filesystem のトラブルシューティング を参照してください。
次のステップ
- 読み取り専用マウント、ファイルシステムの一部のみのマウント、その他の一般的なマウントオプションについては、ファイルシステムをマウントする を参照してください。
- FUSE を通じてレイヤーとチェックポイントを操作するには、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。
- 別のユーザーまたは環境にファイルシステムへのアクセスを提供するには、マシン間でファイルシステムを共有する を参照してください。