这是一个用于openstack对象存储(swift)的nbd服务器。
swiftnbd的Python项目详细描述
工作原理
swift nbd 将nbd请求(带偏移量和长度的读/写)转换为swift对象 操作,如下图所示:
尽管这种策略可以用于任何块接口,但选择NBD是因为它的简单性。 NBD服务器可以通过网络为块提供服务,但建议在本地使用。 因为与swift的通信将成为瓶颈,所以本地主机上nbd可能会产生开销。 预期不显著。
块设备一次只能由一个位置使用。当客户端连接到服务器时, 通过向容器添加元数据信息,将用作存储的容器标记为已锁定 直到客户机断开连接并解锁容器。
服务器实现新版本的NBD协议,NBD客户端3.1或更高版本 推荐。对于较早版本的协议(nbd client<;=2.9.16),请使用swiftnbd 0.9.4。
支持python 2和gevent的最新版本是0.9.8。
参考文献:
- openstack对象存储:http://www.openstack.org/software/openstack-storage/" rel="nofollow">http://www.openstack.org/software/openstack storage/
- NBD: http://nbd.sourceforge.net/
- NBD协议:https://github.com/yoe/nbd/blob/master/doc/proto.txt" rel="nofollow">https://github.com/yoe/nbd/blob/master/doc/proto.txt
- python中的nbd服务器示例:http://lists.canonical.org/pipermail/kragen-hacks/2004-may/000397.html" rel="nofollow">http://lists.canonical.org/pipermail/kragen hacks/2004-may/000397.html