🐷

ADLS Gen2 で NFS マウントしたときのトランザクション課金に関する注意事項

2022/12/23に公開

Azure Data Lake Storage Gen2 (以下 ADLS Gen2) は NFS 3.0 をサポートしているので、仮想マシンに NFS マウントしてファイルシステムとしてアクセスすることができます。ただし、以下のドキュメントにあるように NFS 3.0 のすべての機能をサポートしているわけではないことは認識されている方が多いと思います。

https://learn.microsoft.com/ja-jp/azure/storage/blobs/network-file-system-protocol-known-issues

これ以外に、書き込み操作及び読み取り操作にかかる料金に注意が必要です。単価に関する考え方は NFS を経由せずに操作する場合と同じになるのですが、NFS 経由で操作する場合は 4MB ごとに操作が適用されるのではなく、OS の NFS マウントのバッファサイズごとに操作が適用されます。

例えば、書き込み操作の最大バッファサイズは NFS マウント時の wsize パラメータで指定されますが、最近の Linux でも最大値は 1MB なので、12MB のファイルを NFS 経由で書き込む場合には、3 操作ではなく最小でも 12 操作になります。このため wsize が小さい値になっている場合に大容量ファイルを頻繁に書き込むような場合には操作数が大きくなり、予想外の料金がかかる場合があります。

wsize のデフォルト値は Linux ディストリビューションによって異なりますので、NFS マウント時に明示的に指定する、もしくは/etc/mountd でバッファサイズを確認しておくことをお勧めします。

Discussion