正確に言及されることが少ないようだが、SMB は次のような特徴があり、ネットワーク上の距離が速度に大きく影響する。
- TCP の上にネイティブファイルシステムに近い粒度でサーバーと会話するため、距離がダイレクトに速度に影響する
- ほぼすべてのケースで 1 connection / session が限界であるため、複数のコネクションを束ねて遅延を隠蔽することができない。
現実的には、同一県内・隣接する県内の光回線同士 (ping <= 10 ms) ならまあ実用になる、それより遠い光回線同士は要検証、片方がモバイル回線 (ping >= 40 ms) なら実用にならない。
SMB 2.0 以降はインターネットを想定して云々という記述が 2010 年以前には見られるが、解決していないはずである。SMB 2.0 ? 以降は複数のコマンドを一つのパケットで扱えるため、Microsoft はこれを以て VPN/WAN 向けに最適化されたと宣伝してそれを鵜呑みにした人々が信じているだけである。SMB は安定性を重視しているのか、コマンドの追加は良く行われるものの、プロトコルそのものの拡張はほとんど行われていない。
SMB over QUIC が実装されれば大分マシになるのではないか。SMB Multichannel を同じインターフェースでサポートすればいいだけに見えるが…
余談
サードパーティーでは
- Google の Drive File Stream (ミドルウェアは dokan を拡張したものと思われる)
- rclone mount (WinFsp)
- WebDrive
- RaiDrive (CBFS Connect)
- Mountain Duck (CBFS Connect)
- JPCYBER S3 Drive (CBFS Connect)
- https://github.com/dokan-dev/dokany
とかの fuse-like な実装が見られるものの、Microsoft のクラウドストレージ SharePoint Online は WebDAV で接続する始末である。Windows の WebDAV クライアントは最低限のメンテナンスしかされていないように見える。
似たような機能を充実させると SMB とか Windows Server の価値が大きく損なわれるので仕方ないのかもしれない。