OpenStack's multiattach Feature (by quqi99)

**作者:张华 发表于:2017-12-22
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明**

什么是multiattach特性

OpenStack’s multiattach Feature允许一个read only volume经iscsi/FC被attached到多个VM。

代码实现原理

  • 用户首先通过cinder定义一个shareable标志的volume.
  • 在attach的时候,nova需要修改即使在in-use状态下仍然可以attach, nova为每一个attachment指定read-write或者read-only, cinder端修改在available和in-use状态下仍然可attach,multiattach标志设置可以被attach多次。attach之后将volume和instance的关系记录到attachment表中。libvirt端需要将这个volume设置shareable标, 这样hypervisor将不会在volume上设置独占锁及相关针对vm的SELinux隔离设置。
  • 在detach的时候,nova需要传递attachment_id到clinderclient告诉cinder哪个attahment需要detach, 然后cinder结合instance_id与attachment_id做detach。如果cinder设置了multiattach标志又没有传attachment_id(os-detach->attachment_id)过来应该失败。

数据表设计:
volume_attachment(id, volume_id, attached_host, instance_uuid, mountpoint, attach_time, attach_mode, sttach_status, time)

代码实现:
1, cinder side
https://review.openstack.org/#/c/85847/
2, cinderclient side
https://review.openstack.org/#/c/85856/
3, nova side
https://review.openstack.org/#/c/526182/
https://review.openstack.org/#/c/525787/
https://review.openstack.org/#/c/330285/
https://review.openstack.org/#/c/527468/

CLI如何使用:
openstack volume create –size 1 –multi-attach multi_attach_test

已知问题

RDB驱动不支持multiattach - https://review.openstack.org/#/c/283695/, 关于它的讨论 - https://openstack.nimeyo.com/103230/openstack-dev-multi-attach-volume-for-rbd,但根据这个说法(https://bugs.launchpad.net/cinder/+bug/1535815/comments/6)似乎用这个特性是安全的。

容器虚机通过multiattach特性使用同一个存储卷

我们知道Docker容器本身是无状态的,意味着容器退出后不会保存任何数据。但实际使用场景,肯定是需要保存业务数据的,Docker通过volume实现数据的持久化存储以及共享。Docker有很多种使用OpenStack Cinder的驱动:

什么是REX-Ray:

Cinder不仅是给nova用的,也可以绕开nova单独使用,见https://specs.openstack.org/openstack/cinder-specs/specs/mitaka/use-cinder-without-nova.html

cinder local-attach [--mountpoint /mnt/disk] [--multipath True] [--enforce-multipath True] [--mode rw] <volume_id>

如果通过rexray/cinder让Docker容器使用了cinder ceph volume的话,如果这个volume是有状态需要需要在容器和虚机间共享的话,这个volume也可以通过上面说的nova multiattach特性给nova instance使用的, 还可以使用这个特性’cinder local-attach’特性给non-nova instance使用。

备份网址

https://zhhuabj.github.io/2017/12/22/OpenStack-s-multiattach-Feature/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quqi99

你的鼓励就是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值