blobってストレージだよね?fuseってなんかきいたことあるような・・という感じからblobfuseをつかってみました
ひとまず①はblobfuseってなんじゃらふぉいというせつめいデス。
#Blobfuseとは
##ざっくりいうと…AzureBlob用のドライバ
さすがにAzureBlob用のドライバはざっくりしすぎですが、
BlobfuseとはAzureBlobStorage向けの仮想ファイルシステムを提供するためのLinux用のドライバです。オープンソースプロジェクトで開発されています。
(公式サイト) https://github.com/Azure/azure-storage-fuse(英語)
でも、なぜ仮想ファイルシステム用のドライバが必要なの?
Azure Blob Storage はオブジェクト ストレージ サービスであるため、Rest API経由でファイルを操作し、 "/"で区切った階層的な名前空間を持っていません。(=ファイルシステムがありません。)
ファイルシステムがないということはLinuxから利用しようと思ってもマウントできず、ファイルシステムがないのでmkdirしたりrenameなどでファイル名変更したりもできないんです
そこで登場するのが Blobfuse デス。
大容量でお得なBlobStorage。RestAPI経由で操作するだけでなく、マウントしてファイル操作したいこともありますよね。そんな要望を実現するのがBlobfuse デス。
#Blobfuse 仕組み
BlobfuseはLinux FUSE カーネルモジュールと通信するためのオープンソースライブラリ libfuse とAzure Storage Blob REST APIとを利用して、Blobストレージにフォワードスラッシュ '/' を区切り記号とした仮想ディレクトリ スキームによってこの名前空間を提供します。
Blobfuse 用法
公式ドキュメントからの抜粋になりますが、仮想ファイルシステムとしてマウントする以外にも下記のような用法があります。
Blob読み書きのキャッシュとして利用できるのは便利ですね
機能(公式ドキュメント翻訳)
- Linux上でのBlobストレージコンテナーのマウント
- Linuxのよくあるファイルシステムオペレーションの実現
(mkdir, opendir, readdir, rmdir, open, read, create, write, close, unlink, truncate, stat, renameなど) - アクセス時間を改善するためのローカルキャッシュ
- 大きなBlobへ高速にアクセスのための並列ダウンロードおよびアップロード
- 読み取り専用で複数のノードが同じコンテナをマウント
制約事項
Blobfuseはあくまで仮想的にファイルシステムを実現するドライバのため、標準仕様のposixに準拠していないことがあります。OSのファイルシステムの仕様=Blobfuseの仕様ではありません。
公式ページに使用が記載されていますのでご利用の際は検証の上ご利用ください><
次回は・・
お待ちかねのBlobfuseのインストール作業に入っていきます。
#参考ドキュメント
・blobfuseソースコードリポジトリ
・blobfuse を使用して Blob Storage をファイル システムとしてマウントする方法(MS公式)