Use Azure Blob Storage as Linux File System with blobfuse

By: 壮大 増田
Posted: November 02, 2021

この記事の背景

Resources

方法としてはおそらく大きく2つある。

  1. Blob Storage の NTFS3.0 Support を使う
Azure Blob Storage でのネットワーク ファイル システム 3.0 のサポート
Blob Storage では、ネットワーク ファイル システム (NFS) 3.0 プロトコルがサポートされるようになりました。 このサポートにより、オブジェクト ストレージのスケールと価格で Linux ファイル システムの互換性が得られます。また、Linux クライアントは、Azure 仮想マシン (VM) またはオンプレミスのコンピューターから Blob Storage にコンテナーをマウントできます。 ハイ パフォーマンス コンピューティング (HPC) などの大規模なレガシ ワークロードをクラウドで実行することは、常に難しい課題でした。 その理由の 1 つは、アプリケーションがデータへのアクセスに NFS やサーバー メッセージ ブロック (SMB) などの従来のファイル プロトコルを使用することが多いためです。 また、ネイティブ クラウド ストレージ サービスでは、階層型名前空間と効率的なメタデータ操作を提供するファイル システムではなく、フラット型名前空間と広範なメタデータを持つオブジェクト ストレージに重点が置かれていました。 Blob Storage では、階層型名前空間がサポートされるようになりました。また、NFS 3.0 プロトコル サポートと組み合わせることで、Azure によって、大規模なクラウド オブジェクト
  1. blobfuse を使って、ローカルディレクトリにBlob Storage上のコンテナをマウントする

今回は、blobfuse を使うことにした。

blobfuse を使う上での注意点

上記のリンク先でも説明されているが、blobfuse はあくまでもLinuxファイルシステムのコマンドをREST APIに変換しているだけである。そのため、全てがローカルディスクと同じように動くわけではない。いくつかのコマンドはアトミックではない。

例えば、ファイルを編集する場合は、ファイルをクローズして初めて、Blob Storage上に変更が適用される。それまでは反映されない、など。

使い方の詳細、注意点やデザインの方針などはREADMEに詳細に記述されている。