前面我们讨论了 volume 的 attach 和 detach 操作,今天讨论如何扩大 volume 的容量。为了保护现有数据,cinder 不允许缩小 volume。
Extend 操作用于扩大 Volume 的容量,状态为 Available 的 volume 才能够被 extend。如果 volume 当前已经 attach 给 instance,需要先 detach 后才能 extend。
Extend 实现比较简单,流程图如下:
-
向 cinder-api 发送 extend 请求
-
cinder-api 发送消息
-
cinder-volume 执行 extend 操作
下面我们详细讨论每一个步骤。
向 cinder-api 发送 extend 请求
客户(可以是 OpenStack 最终用户,也可以是其他程序)向 cinder-api 发送请求:“请 extend 指定的 volume。
这里我们将 extend volume “vol-2”。
进入 GUI 操作菜单 Project -> Compute -> Volumes。
vol-2 当前大小为 1GB。其在存储节点上对应的 LV 信息如下:
选择 volume “vol-2”,点击 “Extend Volume”。
指定新的容量为 3GB,点击 “Extend Volume”。
cinder-api 将接收到 extend volume 的请求。日志文件在 /opt/stack/logs/c-api.log。
cinder-api 发送消息
cinder-api 发送消息 extend 消息。cinder-api 没有打印发送消息的日志,只能通过源代码查看。/opt/stack/cinder/cinder/volume/api.py,方法为 extend。
cinder-volume extend volume
cinder-volume 执行 lvextend 命令 extend volume。 日志为 /opt/stack/logs/c-vol.log
LV 被 extend 到 3GB。
Extend 操作完成后,GUI 也会更新 volume 的状态信息。
以上就是 extend volume 的分析,下一节我们讨论 delete 操作。