用了很长时间的openstack,回过头来,回想一些细节问题,可能还是没有彻底理解。比如:
cinder中有attach volume的API
nova中也有volulme attachment create的API
那么两者有什么区别的?
下面详细介绍。
openstack 给节点挂载云盘有两种方式:
1)nova boot时候,添加 --block-device选项
2)创建好的虚机,动态attach-volume
针对这两种方法,在openstack nova模块中的实现方式也就不一样。
一个是在server.py目录下
一个是在volume.py文件下,有个volume_attachment controller。
个人感觉,这个就是对restful API的最好诠释,把要操作的对象,转化为可以增删改成的资源。
对于server资源,可以crud
对于volumeattachment(把一个挂载动作抽象为资源),也可以增产改查
为什么nova中不抽象为针对volume的CRUD操作?因为volume的声明周期管理是cinder的职责,nova仅仅是云盘的使用者,用volumeattachment更合适。
步骤:
1)cinder create volume
2)nova volume-attach instance-id volume-id
3)nova get volume info,reserver