NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62)

简介: cinder-volume 支持多种 volume provider,前面我们一直使用的是默认的 LVM,本节我们将增加 NFS volume provider。 虽然 NFS 更多地应用在实验或小规模 cinder 环境,由于性能和缺乏高可用的原因在生产环境中不太可能使用,但是学习 NFS volume provider 的意义在于:1. 理解 cinder-volume 如何支持多 backend2. 更重要的,可以理解 cinder-volume,nova-compute 和 volume provider 是如何协同工作,共同为 instance 提供块存储。

cinder-volume 支持多种 volume provider,前面我们一直使用的是默认的 LVM,本节我们将增加 NFS volume provider。

虽然 NFS 更多地应用在实验或小规模 cinder 环境,由于性能和缺乏高可用的原因在生产环境中不太可能使用,但是学习 NFS volume provider 的意义在于:
1. 理解 cinder-volume 如何支持多 backend
2. 更重要的,可以理解 cinder-volume,nova-compute 和 volume provider 是如何协同工作,共同为 instance 提供块存储。
3. 举一反三,能够快速理解并接入其他生产级 backend ,比如 Ceph,商业存储等。

下图展示了 cinder、nova 是如何与 NFS volume provider 协调工作的。

NFS Volume Provider
就是我们通常说的 NFS Server,提供远程 NFS 目录,NFS Clinet 可以 mount 这些远程目录到本地,然后像使用本地目录一样创建、读写文件以及子目录。

cinder-volume
存储节点通过 NFS driver 管理 NFS volume provider 中的 volume,这些 volume 在 NFS 中实际上是一个个文件。

nova-compute
计算节点将 NFS volume provider 存放 volume 的目录 mount 到本地,然后将 volume 文件作为虚拟硬盘映射给 instance。

这里有几点需要强调:

  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 之间的连接完成的(紫色连线)。这种设计减少了中间环节,存储节点不直接参与数据传输,保证了读写效率。

  3. 其他 Volume Provider(例如 ceph,swift,商业存储等)均遵循这种控制流与数据流分离的设计。

配置 NFS Volume Provider

在实验环境中,NFS volume provider 的 NFS 远程目录为 192.168.104.11:/storage cinder-volume 服务节点上 mount point 为 /nfs_storage。

在 /etc/cinder/cinder.conf 中添加 nfs backend。

  1. enabled_backends = lvmdriver-1,nfs 让 cinder-volume 使用 nfs backend

  2. [nfs] 中详细配置 nfs backend。包括: a) 指定存储节点上 /nfs_storage 为 nfs 的 mount point。

nfs_mount_point_base = /nfs_storage

b) 查看 /etc/cinder/nfs_shares 活动 nfs 共享目录列表。 nfs_shares_config = /etc/cinder/nfs_shares,其内容为

列表中只有 192.168.104.11:/storage。如果希望有多个 nfs 共享目录存放 volume,则可以添加到该文件中。

c) nfs volume driver。

volume_driver=cinder.volume.drivers.nfs.NfsDriver

d) 设置 volume backend name。在 cinder 中需要根据这里的 volume_backend_name 创建对应的 volume type,这个非常重要。 volume_backend_name = nfs

重启 cinder-volume,cinder service-list 确认 nfs cinder-volume 服务正常工作。

创建 nfs volume type。

打开GUI页面Admin -> System -> Volumes -> Volume Types,点击 “Create Volume Type”。

命名 nfs,点击“Create Volume Type”。


选择 nfs volume tyep,点击下拉菜单“View Extra Specs”

点击“Create”,Key 输入 volume_backend_name ;Value 输入 nfs。

NFS volume provider 准备就绪,下一节我们将创建 NFS 为 backend 的 volume。

 


目录
相关文章
|
KVM 虚拟化
CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)
前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要。不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助。 CPU 虚拟化 KVM 的虚拟化是需要 CPU 硬件支持的。
1982 0
|
Ubuntu Linux 网络安全
理解 virbr0 - 每天5分钟玩转 OpenStack(11)
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。 virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。
2388 0
|
KVM 虚拟化
远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)
上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机。其实 virt-manager 也可以管理其他宿主机上的虚机。只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即可。
1607 0
|
监控 数据格式 XML
教你看懂 OpenStack 日志 - 每天5分钟玩转 OpenStack(29)
instance 从创建到删除的整个生命周期都是由 Nova 管理的。 后面各小节我们以 instance 生命周期中的不同操作场景为例,详细分析 Nova 不同组件如何协调工作,并通过日志分析加深大家对 Nova 的理解。
2302 0
flat network 原理与配置 - 每天5分钟玩转 OpenStack(86)
flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡。 上图中 eth1 桥接到 brqXXX,为 instance 提供 flat 网络。
1385 0
|
安全 网络安全 数据安全/隐私保护
80端口和443端口的概念与区别
总之,80端口和443端口都是用于网络通信的端口号,但它们在安全性和用途上有明显的区别,443端口提供了更高的数据安全性。
2646 0
|
Linux API KVM
虚拟化 - 每天5分钟玩转 OpenStack(2)
  OpenStack是云操作系统,要学习OpenStack,首先需要掌握一些虚拟化和云计算的相关知识。 虚拟化 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
1561 0
|
数据安全/隐私保护
理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)
作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限 维护 OpenStack Services 的 Endpoint Authentication(认证)和 Authorization(鉴权) 学习 Keystone,得理解下面这些概念: User User 指代任何使用 OpenStack 的实体,可以是真正的用户,其他系统或者服务。
1238 0
通过例子学习 Keystone - 每天5分钟玩转 OpenStack(19)
上一节介绍了 Keystone 的核心概念。本节我们通过“查询可用 image”这个实际操作让大家对这些概念建立更加感性的认识。 User admin 要查看 Project 中的 image 第 1 步 登录 当点击时,OpenStack 内部发生了哪些事情?请看下面 Token 中包含了 User 的 Role 信息 第 2 步 显示操作界面 请注意,顶部显示 admin 可访问的  Project 为 “admin” 和 “demo”。
1135 0
|
KVM 虚拟化 网络虚拟化
LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8)
LVM 类型的 Storage Pool 不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上 VG 中的 LV 也可以作为虚拟磁盘分配给虚拟机使用。 不过,LV 由于没有磁盘的 MBR 引导记录,不能作为虚拟机的启动盘,只能作为数据盘使用。
1204 0

热门文章

最新文章