上一节我们将 NFS volume provider 配置就绪,本节将创建 volume。
创建 volume
创建 NFS volume 操作方法与 LVM volume 一样,唯一区别是在 volume type 的下拉列表中选择“nfs”。
点击“Create Volume”,cinder-api,cinder-scheduler 和 cinder-volume 共同协作创建 volume “nfs-vol-1”。这个流程与 LVM volume 一样。
下面我们重点分析 cinder-volume 的日志,看看 NFS volume provider 是如何创建 volume 的。
日志在 /opt/stack/logs/c-vol.log。
cinder-volume 也会启动 Flow 来完成 volume 创建工作,Flow 的名称为 volume_create_manager。
volume_create_manager 首先执行 ExtractVolumeRefTask, OnFailureRescheduleTask, ExtractVolumeSpecTask, NotifyVolumeActionTask 为 volume创建做准备。
然后由 CreateVolumeFromSpecTask 真正创建 volume。
首先 mount 远程 NFS 目录。
执行 stat、du 命令检查 NFS 目录。
执行 truncate 创建 volume 文件。
设置 volume 文件为可读写。
create 操作完成。
Volume 在 NFS 上以文件存在,命名为“volume-<volume ID>”。
GUI volume 列表中可以看到新创建的 volume。
基于 NFS Volume 已经准备就绪,下一节我们其 attach 到 instance。