Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

时间:2022-07-16 08:32:20

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

前面我们讨论了 volume 的 attach 和 detach 操作,今天讨论如何扩大 volume 的容量。为了保护现有数据,cinder 不允许缩小 volume。

Extend 操作用于扩大 Volume 的容量,状态为 Available 的 volume 才能够被 extend。如果 volume 当前已经 attach 给 instance,需要先 detach 后才能 extend。

Extend 实现比较简单,流程图如下:

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

  1. 向 cinder-api 发送 extend 请求

  2. cinder-api 发送消息

  3. cinder-volume 执行 extend 操作

下面我们详细讨论每一个步骤。

向 cinder-api 发送 extend 请求

客户(可以是 OpenStack 最终用户,也可以是其他程序)向 cinder-api 发送请求:“请 extend 指定的 volume。

这里我们将 extend volume “vol-2”。

进入 GUI 操作菜单 Project -> Compute -> Volumes。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

vol-2 当前大小为 1GB。其在存储节点上对应的 LV 信息如下:

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

选择 volume “vol-2”,点击 “Extend Volume”。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

指定新的容量为 3GB,点击 “Extend Volume”。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

cinder-api 将接收到 extend volume 的请求。日志文件在 /opt/stack/logs/c-api.log。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

cinder-api 发送消息

cinder-api 发送消息 extend 消息。cinder-api 没有打印发送消息的日志,只能通过源代码查看。/opt/stack/cinder/cinder/volume/api.py,方法为 extend。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

cinder-volume extend volume

cinder-volume 执行 lvextend 命令 extend volume。 日志为 /opt/stack/logs/c-vol.log

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

LV 被 extend 到 3GB。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

Extend 操作完成后,GUI 也会更新 volume 的状态信息。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

以上就是 extend volume 的分析,下一节我们讨论 delete 操作。

Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)