![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160719-1468883531655083681.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138152979039688.jpg)
上一节我们将 NFS volume provider 配置就绪,本节将创建 volume。
创建 volume
创建 NFS volume 操作方法与 LVM volume 一样,唯一区别是在 volume type 的下拉列表中选择“nfs”。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137757754020446.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153151056803.jpg)
点击“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。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137757102087194.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153286006982.jpg)
volume_create_manager 首先执行 ExtractVolumeRefTask, OnFailureRescheduleTask, ExtractVolumeSpecTask, NotifyVolumeActionTask 为 volume创建做准备。
然后由 CreateVolumeFromSpecTask 真正创建 volume。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137756768012850.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153358058034.jpg)
首先 mount 远程 NFS 目录。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137759025019513.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153460073994.jpg)
执行 stat、du 命令检查 NFS 目录。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137760056097775.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153596091816.jpg)
执行 truncate 创建 volume 文件。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137758846043790.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153717075337.jpg)
设置 volume 文件为可读写。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137759121017747.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153869054081.jpg)
create 操作完成。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137760042056435.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138153930062944.jpg)
Volume 在 NFS 上以文件存在,命名为“volume-<volume ID>”。 ![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137760289094317.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138154075088978.jpg)
GUI volume 列表中可以看到新创建的 volume。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469137760325070472.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160722-1469138154159063821.jpg)
基于 NFS Volume 已经准备就绪,下一节我们其 attach 到 instance。