Boot from Volume - 每天5分钟玩转 OpenStack(61)

 

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。

时间: 2024-09-01 19:25:36

Boot from Volume - 每天5分钟玩转 OpenStack(61)的相关文章

docker managed volume - 每天5分钟玩转 Docker 容器技术(40)

docker managed volume 与 bind mount 在使用上的最大区别是不需要指定 mount 源,指明 mount point 就行了.还是以 httpd 容器为例: 我们通过 -v 告诉 docker 需要一个 data volume,并将其 mount 到 /usr/local/apache2/htdocs.那么这个 data volume 具体在哪儿呢? 这个答案可以在容器的配置信息中找到,执行 docker inspect 命令: docker inspect 21a

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库.现在容器已经删除,今天将演示在 docker2 中重新使用这个卷. 在 dokcer2 上执行如下命令,启动 MySQL 容器: docker run --name mydb_on_docker2 -v mysqldata:/var/lib/mysql -d mysql 新容器也使用相同的卷 mysqldata,不过这次不需要指定环境变量 MYSQL_ROOT_PASSW

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack.   为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所

你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)

​这是 OpenStack 实施经验分享系列的第 13 篇.   instance snapshot 操作可用于备份或者将 instance 保存为新的 image.如果在生产系统中执行 snapshot 操作,必须确保此操作快速且安全.这里有两个关键点: 快速. 为保证数据的一致性,snapshot 时需要 pause instance,操作完后再 resume.在这个过程中 instance 是无法对外服务的,为了减少对业务的影响,我们希望 snapshot 越快越好. 安全. 即数据一致性

cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)

本节介绍几个 cloud-init 的典型应用:设置 hostanme,设置用户初始密码,安装软件.  设置 hostname cloud-init 默认会将 instance 的名字设置为 hostname.但这样不太方便,有时希望能够将二者分开,可利用 cloud-init 的set_hostname 模块实现.set_hostname 它会查询 metadata 中 hostname 信息,默认值就是 instance 的名字.我们可以指定自己的 hostname,方法是将下面的内容传给

学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)

作为 OpenStack 的核心教程,我们已经到了最后总结的部分. OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder 和 Neutron.请大家看下图: 此图截自 https://www.openstack.org/software/project-navigator/,这是 OpenStack 官方定义的 6 个 Core Service.每个模块都会从三个维度来衡量: ADOPTION - 采用度 MATUR

Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户,所有 cinder 的请求都首先由 nova-api 处理.cinder-api 向外界暴露若干 HTTP REST API 接口.在 keystone 中我们可以查询 cinder-api 的 endponits. 客户端可以将请求发送到 endponits 指定的地址,向 cinder-api 请求操作. 当然,作为最终用户的我们不会直接发送 Rest API 请求

准备 LVM Volume Provider - 每天5分钟玩转 OpenStack(49)

Cinder 真正负责 Volume 管理的组件是 volume provider. Cinder 支持多种 volume provider,LVM 是默认的 volume provider.Devstack 安装之后,/etc/cinder/cinder 已经配置好了 LVM,如下图所示: 上面的配置定义了名为"lvmdriver-1"的 volume provider,也称作 back-end.其 driver 是 LVM,LVM 的 volume group 名为"st

Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)

上一节我们成功地通过 attach 操作为 instance 添加了 volume,而与之相对的操作是 detach,就是将 volume 从 instance 上卸载下来. 下图是 Detach 操作的流程图 向 cinder-api 发送 detach 请求 cinder-api 发送消息 nova-compute detach volume cinder-volume 删除 target 下面我们详细讨论每一个步骤. 向 cinder-api 发送 attach 请求 客户(可以是 Ope