有什么方法可以在同一台机器上运行 NBD(网络块设备)客户端和服务器而不会使系统死锁?
我已经筋疲力尽地寻找这个问题的答案。如果有人可以提供帮助,我将不胜感激。
更新:
我正在编写一个与谷歌存储系统对话的 NBD 服务器。我想在 NBD 上挂载一个文件系统并备份我的文件。如果我最终不得不在另一台机器上运行服务器,我会非常失望。我已经有的几个想法似乎无济于事:
- 告诉文件系统使用 O_DIRECT 标志打开块设备以绕过 linux 缓冲区缓存
- 使用原始设备(不幸的是,原始设备是字符设备,FSes 拒绝将它们用作底层设备)