📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

macOS でファイルシステムをマウントする



macOS では、TiDB Cloud ファイルシステムをローカルディレクトリとしてマウントし、通常使用しているアプリケーションやツールでそのファイルにアクセスできます。次のいずれかのマウント方法を選択してください。

  • WebDAV: ほとんどのワークフローに推奨されます。追加のマウントソフトウェアは不要です。
  • macFUSE: レイヤーまたはチェックポイントのマウント、ローカルの読み取り専用マウントの作成、ファイルシステムをアンマウントせずに保留中の書き込みをフラッシュすることをサポートします。macFUSE のインストールが必要です。

--driver オプションを指定しない場合、TiDB Cloud CLI (ti) は macOS では、macFUSE がインストールされていても WebDAV でファイルシステムをマウントします。FUSE を使用するには、--driver fuse を指定してください。レイヤーおよびチェックポイントのマウントでは常に FUSE が必要です。このガイドの例では、どのマウント方法が使用されるかが分かるように、--driver を明示的に指定しています。

前提条件

開始する前に、以下を確認してください。

WebDAV でマウントする

ほとんどのワークフローでは、追加のマウントソフトウェアをインストールせずにファイルシステムをマウントできる WebDAV を使用してください。

Bash または Zsh を使用し、WebDAV の手順全体を通して同じシェルを開いたままにしてください。これにより、例で使用する変数を引き続き利用できます。

  1. ローカルのマウントディレクトリを準備します。すでに $HOME/workspace にファイルシステムがマウントされている場合は、そのディレクトリを再利用する前にアンマウントしてください。

    ti fs unmount-file-system --mount-path "$HOME/workspace"

    次に、ディレクトリが存在しない場合は作成します。

    mkdir -p "$HOME/workspace"
  2. リモートディレクトリを選択し、リモート読み取りを確認するために小さなサンプルファイルをアップロードします。トークンが特定のリモートディレクトリへのアクセスのみを許可している場合は、以下の / を /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"

    生成されるファイル名は、既存ファイルの上書きを避けるのに役立ちます。アップロードが成功してから次に進んでください。

  3. WebDAV でファイルシステムをマウントします。

    ti fs mount-file-system \ --remote-path "$remote_path" \ --mount-path "$HOME/workspace" \ --driver webdav

    選択したリモートディレクトリがローカルマウントのルートになります。たとえば、remote_path="/workspace" の場合、リモートの /workspace ディレクトリには $HOME/workspace を通じてアクセスできます。詳細は、ファイルシステムの一部のみをマウントする を参照してください。

    マウントはアンマウントするまでバックグラウンドで実行されます。ターミナルを閉じてもアンマウントされません。

  4. ファイルを一覧表示し、ローカルマウント経由でアップロードしたサンプルを読み取ります。

    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"
  5. 完了したら、アプリケーションによるマウント先への書き込みを停止し、開いているファイルを閉じてから、ファイルシステムをアンマウントします。

    ti fs unmount-file-system --mount-path "$HOME/workspace"

    WebDAV は drain-file-system をサポートしていません。アンマウントに失敗した場合は、マシンとローカルマウントデータをそのまま保持し、続行する前に 安全に終了する を参照してください。

  6. アンマウントが正常に完了したら、更新内容がサービスに反映されたことを確認します。

    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 を使用してファイルシステムをマウントするには、次の手順を実行します。

  1. macFUSE をインストールし、お使いの macOS バージョンで必要なインストール手順またはセキュリティ承認手順を完了します。

    ti をインストールしても macFUSE はインストールされません。

  2. ローカルのマウントディレクトリを準備します。すでに $HOME/workspace にファイルシステムがマウントされている場合は、ディレクトリを再利用する前にアンマウントします。

    ti fs unmount-file-system --mount-path "$HOME/workspace"

    次に、ディレクトリが存在しない場合は作成します。

    mkdir -p "$HOME/workspace"
  3. 必要なリモートディレクトリとアクセスモードに応じて、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 が必要であり、チェックポイントのマウントは常に読み取り専用です。詳細は、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。

  4. 作業が完了したら、アプリケーションによるマウント先への書き込みを停止し、開いているファイルを閉じてから、アンマウントします。

    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 のトラブルシューティング を参照してください。

次のステップ

このページは役に立ちましたか?