上一節我們將 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。