08.存储Cinder→5.场景学习→11.NFS Volume Provider→1.环境搭建

描述详细
  1. cinder、nova 是如何与 NFS volume provider 协调工作:
    1. NFS Volume Provider:就是我们通常说的 NFS Server,提供远程 NFS 目录,NFS Clinet 可以 mount 这些远程目录到本地,然后像使用本地目录一样创建、读写文件以及子目录。
    2. cinder-volume:存储节点通过 NFS driver 管理 NFS volume provider 中的 volume,这些 volume 在 NFS 中实际上是一个个文件。
    3. nova-compute:计算节点将 NFS volume provider 存放 volume 的目录 mount 到本地,然后将 volume 文件作为虚拟硬盘映射给 instance。mount到存储节点是为了管理,mount到计算节点是为了让instance使用volume。虽然这里volume provider和instance(计算节点)位于同一节点,但是仍然需要mount到计算节点。参考见08.存储Cinder→5.场景学习→11.NFS Volume Provider→3.Attach Volume
  2. 说明:
    1. 在 Cinder 的 driver 架构中,运行 cinder-volume 的存储节点和 Volume Provider 可以是完全独立的两个实体。 cinder-volume 通过 driver 与 Volume Provider 通信,控制和管理 volume。
    2. Instance 读写 volume 时,数据流不需要经过存储节点,而是直接对 Volume Provider 中的 volume 进行读写。 正如上图所示,存储节点与 NFS Volume Provider 的连接只用作 volume 的管理和控制(绿色连线);真正的数据读写,是通过计算节点和 NFS Volume Proiver 之间的连接完成的(紫色连线)。这种设计减少了中间环节,存储节点不直接参与数据传输,保证了读写效率。
      1. 其他 Volume Provider(例如 ceph,swift,商业存储等)均遵循这种控制流与数据流分离的设计。
paste-97912369446915.jpg
  1. 配置NFS Volume Provider
    1. enabled_backends = lvmdriver-1,nfs :
      1. 让 cinder-volume 使用 nfs backend
    2. nfs_mount_point_base = $state_path/mnt:
      1. 指定nfs客户端上mount point为$state_path/mnt
      2. 其中paste-252969278767107.jpg
      3. paste-111995567210499.jpg
    3. 查看 /etc/cinder/nfs_shares 活动 nfs 共享目录列表。nfs_shares_config = /etc/cinder/nfs_shares,其内容为172.16.1.55:/storage
      1. NFS volume provider 的 NFS 远程目录为 172.16.1.55:/storage,其中172.16.1.55是计算节点的管理网ip
      2. 如果希望有多个 nfs 共享目录存放 volume,则可以添加到该文件中。
    4. nfs volume driver
    5. 设置 volume backend name,根据这里的 volume_backend_name 创建对应的 volume type
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
root@controller:~# vim /etc/cinder/cinder.conf
[DEFAULT]
enabled_backends = lvmdriver-1,

[lvmdriver-1]
image_volume_cache_enabled = True
volume_clear = zero
lvm_type = auto
iscsi_helper = tgtadm
volume_group = stack-volumes-lvmdriver-1
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name = lvmdriver-1
[nfs]





root@controller:~# cat /etc/cinder/nfs_shares
  1. 重启服务、查看服务
1
root@controller:~# systemctl restart devstack@c-vol.service
paste-115616224641027.jpg
  1. 创建nfs volume type
    1. 打开GUI页面Admin ->  Volume -> Volume Types,点击 “Create Volume Type”。
    2. 命名 nfs,点击“Create Volume Type”。
    3. 选择 nfs ,点击下拉菜单“View Extra Specs”,点击Create,Key 输入 volume_backend_name ;Value 输入 nfs。
paste-115977001893891.jpg

paste-116084376076291.jpg


  1. 在重启cinder-volume服务后,发现报错:
1
2
3
Jun 24 14:43:20 controller cinder-volume[10143]: 
ERROR cinder.service [-]
Manager for service cinder-volume controller@nfs is reporting problems, not sending heartbeat. Service will appear "down".

  1. 之后会出现服务down掉的情况
paste-129046587375619.jpg
  1. 解决办法是:
    1. 在nfs服务器上执行:
1
2
3
4
root@compute:/# vim /etc/exports
/storage *(rw,sync,no_subtree_check,no_root_squash)
root@compute:/# mkdir /storage
root@compute:/# systemctl restart nfs-kernel-server.service

  1. 然后再次重启cinder-volume服务,并查看cinder-volume日志,发现服务正常了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值