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。