Volume 除了可以用作 instance 的数据盘,也可以作为启动盘(Bootable Volume),那么如何使 volume 成为 bootable 呢?
现在我们打开 instance 的 launch 操作界面。
这里有一个下拉菜单“Instance Boot Source”。以前我们 launch instance 要么直接从 image launch(Boot from image),要么从 instance 的 snapshot launch(Boot from snapshot)。
这两种 launch 方式下,instance 的启动盘 vda 均为镜像文件,存放路径为计算节点 /opt/stack/data/nova/instances/<Instance ID>/disk,例如:
下拉列表的后三项则可以将 volume 作为 instance 的启动盘 vda,分别为:
Boot from volume
直接从现有的 bootable volume launch
Boot from image (create a new volume)
创建一个新的 volume,将 image 的数据 copy 到 volume,然后从该 volume launch
Boot from volume snapshot (create a new volume)
通过指定的 volume snapshot 创建 volume,然后从该 volume launch,当然前提是该snapshot 对应的源 volume 是 bootable 的。
下面我们以 Boot from image (create a new volume)为例,看如何从 volume 启动。
选择 cirros 作为 image,instance 命名为“c3” 如果希望 terminate instance 的时候同时删除 volume,可以勾选“Delete on Terminate”
c3 成功 Launch 后,volume 列表中可以看到一个新 bootable volume,以 volume ID 命名,并且已经 attach 到 c3。
该 volume 已经配置为 c3 的启动盘 vda。
如果用该 volume 创建 snapshot,之后就可以通过 Boot from volume snapshot (create a new volume) 部署新的 instance,这个操作留给大家练习。
这里再给大家留个练习:boot from volume 的 instance 也可以执行 live migrate,请大家思考一下 volume 是如何 migrate 到目标节点的,并通过日志验证。
到这里,cinder 的主要操作就讲解完了。
前面的实验使用的是 LVM provider,cinder 当然也支持其他 provider。
为了让大家对这点有感性认识,下一节我们将接入 NFS volume provider。