LinuxでAlibaba Cloudをマウント — NetDriveの実験的ビルド

読了目安 8 分 provider-guide alibaba-cloud linux
Alex
AlexPrincipal Engineer
NetDriveの実験的なLinuxビルドで、Alibaba Cloud OSSバケットをUbuntuのマウントポイントとしてマウントする方法。RAMキー、エンドポイント設定、検証手順を解説。

Ubuntuマシン上で動くデータパイプラインが、Alibaba Cloud OSSバケットに保存されたモデルチェックポイントを読み込む必要があるが、チームのツール群は各スクリプトに組み込まれたSDK呼び出しではなく、通常のファイルシステムパスを前提としている。チェックポイントが数百GBに及ぶ場合、バケット全体を先にダウンロードするのでは本末転倒だ。NetDriveのLinuxビルドはそのOSSバケットを通常のUbuntuマウントポイントとしてマウントするため、学習スクリプトのopen()呼び出しは、WindowsやmacOSでマウントされたバケットと同様に、そのオブジェクトへ直接到達できる。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

LinuxでAlibaba Cloud OSSをマウント

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • OSSバケットが通常のUbuntuマウントポイントとして表示される
  • ファイルはオンデマンドでストリーミング — 同期クライアント不要、バケット全体の事前ダウンロードも不要
  • S3、Wasabi、Tencent Cloudなど20以上のプロバイダーと並行して動作
WindowsmacOS
Linux版NetDriveをダウンロード →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

このケースでSDKよりマウントポイントが優れている理由

Alibaba Cloud自体のツール群 — ossutil CLIやOSS SDK — は、それを呼び出すよう専用に書かれたスクリプトには問題なく機能する。しかし、消費側が自分でコントロールできないものである場合には相性が悪い。たとえばtorch.load()がローカルパスを開くことを前提とする学習ジョブ、ログのエクスポートディレクトリ全体に対するgrep、あるいはオブジェクトストレージAPIを扱うよう書き直される見込みのないレガシーツールなどだ。NetDriveはそうした読み込みをマウントポイント経由でバケットに対して解決するため、パスでファイルを開くものであれば、変更を加えずにそのまま動作する。

Alibaba Cloudサポートは、Tencent Cloudが追加されたのと同じリリースであるバージョン3.17.799(2022年11月)以降、NetDriveに搭載されている。現行リリースの3.19.7が、他のすべてのプラットフォームと同様、Linuxビルドでも推奨バージョンだ。

クラウドストレージアカウントをローカルドライブとしてマウントするNetDrive — Linuxビルドがマウントポイントで提供するのと同じコアの動作

UbuntuへのNetDriveのインストール

Linux版NetDriveは、Ubuntuのパッケージリポジトリではなく、GitHub経由で配布されている。

  1. github.com/NetDrive/installerにアクセスし、使用中のUbuntuバージョンに対応するリリースをダウンロードする。
  2. そのリポジトリのリリースノートに従い、NetDriveがマウントを行う前に必要なドライバコンポーネントをインストールする。
  3. NetDrive本体のパッケージをインストールする。
  4. NetDriveを起動する。初回起動時にドライバコンポーネントが読み込まれ、sudoを求められる場合がある。

サポートされる最小バージョンはUbuntu 16.04だ。アップデートはapt upgradeではなくGitHubのリリースとして配信されるため、その旨を運用手順書に記載しておくこと。Linux版は、NetDriveの比較ページ全体で使われているのと同じ実験的というラベルが付いている — テストの大部分はWindowsとmacOSに対して行われているため、Linux版のOSSマウントは、自分でテストしていない無人稼働の本番ジョブよりも、開発機や学習用ノード、CIランナーに向いている。

接続前に必要なもの

  • AccessKey IDとAccessKey Secret — Alibaba Cloudコンソールで、OSS権限に絞ったRAMユーザーを作成し、そのユーザーの下でアカウントのルートキーではないキーペアを生成する。
  • OSSエンドポイントoss-cn-hangzhou.aliyuncs.comoss-us-west-1.aliyuncs.comのような、バケットのリージョン別エンドポイント。バケットのOverviewページで確認できる。
  • バケット名 — マウントするバケットの正確な名前。

手順:UbuntuでAlibaba Cloudに接続する

  1. NetDriveのDrive Managerを開き+ Add Driveをクリックする。
  2. 接続タイプの一覧からSelect Alibaba Cloudを選ぶ。
  3. AccessKey IDとSecret、OSSエンドポイント、バケット名を入力する
  4. マウントポイントを設定する/mnt/oss-checkpointsのようなパス、あるいは書き込み権限のある任意の空ディレクトリ。
  5. Connectをクリックする。 NetDriveが認証を行い、そのパスにバケットをマウントする。

依存する前にマウントを検証する

GUIだけを信用せず、ターミナルからマウントが実際に行われたことを確認する。

# Confirm the mount is listed
mount | grep oss

# Or just try listing it
ls /mnt/oss-checkpoints

マウント後にクラウドドライブが正常に接続されたことを確認する

一覧表示が最初は空で返ってくる場合、少し待ってみること — オブジェクト数の多いバケットは、ルートの内容を揃えるまでに数秒かかることがある。それでも空のままなら、まずAccessKeyペアとエンドポイントを確認する — リージョンのエンドポイントの不一致は、OSS接続が初回試行で認証に失敗する最も一般的な原因だ。

書き込みの多いジョブ — 実行後に処理済みの出力オブジェクトをまとめてバケットへ書き戻すような場合 — では、NetDriveはその転送処理をトリガーしたプロセスをブロックせず、バックグラウンドでキューに入れて処理する。

マウントされたクラウドドライブへのファイル転送の進捗を示すバックグラウンドアップロードキュー

Linuxビルドで想定しておくべきこと

  • 別系統のリリースサイクル — Linuxのドライバコンポーネントは独自のスケジュールで配信されるため、WindowsやmacOSに適用された修正が同じ週にLinuxへ届くとは限らない。
  • aptとの連携なし — インストールとアップデートは、Ubuntu標準のパッケージマネージャーではなくGitHubのリリース経由で行われる。
  • WindowsとmacOSが検証済みの本命 — NetDrive自体のガイダンスでは、この2つを本番投入可能として扱っており、Linuxは実験的というラベルが付いている。無人稼働の本番ジョブをLinux版OSSマウントに任せる前に、自分の環境で十分にテストすること。

まとめ

UbuntuでAlibaba Cloud OSSをマウントすることで、aptではなくGitHub上に置かれたインストーラを通じて、WindowsやmacOSでNetDriveが提供するのと同じドライブ形式のアクセスをLinuxマシンでも得られる。より広くテストされたプラットフォームでの同じプロバイダーについては、WindowsでNetDriveを使ってAlibaba CloudをマウントするまたはmacOSでNetDriveを使ってAlibaba Cloudをマウントするを参照。Linux全般についてはUbuntuLinuxでのNetDriveを参照。

— Alex, NetDrive