第 6 章 配置 OpenStack 使用 NFS 后端
本章介绍了如何配置 OpenStack 卷服务(openstack-cinder-volume
)来使用一个存在的 NFS 服务器作为一个额外的后端。另外,本章还介绍了如何创建一个云硬盘类型,从而可以在创建云硬盘时使用它来设置 NFS 共享作为后端。
先决条件:
- 要作为后端的 NFS 共享已被正确配置。
- 提供 OpenStack 卷服务的节点有到 NFS 共享的读/写访问权限。
-
具有运行 OpenStack 卷服务的系统的
root
访问权限。
基于的假设:
- 您的 OpenStack 环境不是通过 Red Hat Enterprise Linux OpenStack Platform Installer 进行部署的。
-
您的 OpenStack Block Storage 服务使用默认的后端(通过 Packstack 部署的、名为
lvm
的后端)。
6.1. 配置 SELinux 复制链接链接已复制到粘贴板!
当客户端启用了 SELinux 时,如果需要从这个客户端访问一个实例上的 NFS 卷,则需要启用 virt_use_nfs 布尔值。以 root
身份运行以下命令来启用这个布尔值(并使它在重启后仍然有效):
setsebool -P virt_use_nfs on
# setsebool -P virt_use_nfs on
在需要访问实例上的 NFS 共享的所有客户端主机上运行这个命令(包括所有 Compute 节点)。
6.3. 创建一个新的后端定义 复制链接链接已复制到粘贴板!
在默认情况下,Packstack 在 /etc/cinder/cinder.conf
中为 LVM 定义一个后端:
在 /etc/cinder/cinder.conf
中定义了一个 NFS 共享后,可以按照以下步骤为它配置一个额外的后端:
-
以
root
身份登录到运行 OpenStack 卷服务的节点上。 为 NFS 后端创建一个新定义,把卷服务设置为使用定义了 NFS 共享的文件(
/etc/cinder/nfs_share
):openstack-config --set /etc/cinder/cinder.conf nfs nfs_shares_config /etc/cinder/nfs_shares
# openstack-config --set /etc/cinder/cinder.conf nfs nfs_shares_config /etc/cinder/nfs_shares
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,我们使用
nfsbackend
作为一个定义的名称。配置卷服务使用 NFS 卷驱动(名为
cinder.volume.drivers.nfs.NfsDriver
):openstack-config --set /etc/cinder/cinder.conf nfs volume_driver cinder.volume.drivers.nfs.NfsDriver
# openstack-config --set /etc/cinder/cinder.conf nfs volume_driver cinder.volume.drivers.nfs.NfsDriver
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 NFS 后端定义一个卷后端名(在以下命令中是
nfs
):openstack-config --set /etc/cinder/cinder.conf nfs volume_backend_name nfsbackend
# openstack-config --set /etc/cinder/cinder.conf nfs volume_backend_name nfsbackend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 nfs_mount_options 配置关键字中添加需要的挂载选项(
MOUNTOPTIONS
):openstack-config --set /etc/cinder/cinder.conf nfs nfs_mount_options _MOUNTOPTIONS_
# openstack-config --set /etc/cinder/cinder.conf nfs nfs_mount_options _MOUNTOPTIONS_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,以下项应该出现在 /etc/cinder/cinder.conf
中:
[nfs] nfs_shares_config = /etc/cinder/nfs_shares volume_driver = cinder.volume.drivers.nfs.NfsDriver volume_backend_name = nfsbackend nfs_mount_options =
[nfs]
nfs_shares_config = /etc/cinder/nfs_shares
volume_driver = cinder.volume.drivers.nfs.NfsDriver
volume_backend_name = nfsbackend
nfs_mount_options =
现在,您可以启用 NFS 后端(使用 /etc/cinder/cinder.conf
中的 enabled_backends
配置关键字)。Packstack 创建的默认后端应该已在这里列出:
enabled_backends=lvm
enabled_backends=lvm
在这个列表中添加新的 NFS 后端定义:
enabled_backends=lvm,nfs
enabled_backends=lvm,nfs
当 NFS 后端被启用后,重启 OpenStack 卷服务:
openstack-service restart cinder-volume
# openstack-service restart cinder-volume
6.4. 为 NFS 后端创建一个云硬盘类型 复制链接链接已复制到粘贴板!
现在,新创建的 NFS 后端已经有效,但在创建新的云硬盘时还不能使用。为了使新的云硬盘可以使用这个 NFS 后端,您需要首先为它创建一个云硬盘类型。
查看存在的云硬盘类型。在默认情况下,使用 lvm 后端的云硬盘类型应该已经存在(名为 iscsi):
+--------------------------------------+-------+ | ID | Name | +--------------------------------------+-------+ | f8d31dc8-a20e-410c-81bf-6b0a971c61a0 | iscsi | +--------------------------------------+-------+
+--------------------------------------+-------+ | ID | Name | +--------------------------------------+-------+ | f8d31dc8-a20e-410c-81bf-6b0a971c61a0 | iscsi | +--------------------------------------+-------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 NFS 后端创建一个新的、名为
nfstype
的云硬盘类型:cinder type-create nfstype
# cinder type-create nfstype
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用后端的名称(
nfsbackend
)把nfstype
云硬盘类型配置为使用 NFS 后端:cinder type-key nfstype set volume_backend_name=nfsbackend
# cinder type-key nfstype set volume_backend_name=nfsbackend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查新创建的云硬盘类型被正确创建并配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以通过 dashboard 创建并配置云硬盘类型。如需了解更多信息,请参阅 第 4.2.3 节 “使用云硬盘类型进行云硬盘分组设置”。
6.5. 测试新的 NFS 后端 复制链接链接已复制到粘贴板!
为了测试新的 NFS 后端,在创建一个名为 nfsvolume
的云硬盘时调用云硬盘类型 nfstype
:
当云硬盘被成功创建后,在 NFS 服务器上检查 NFS 共享。一个相应的云硬盘(它的名字中包括新创建云硬盘的 ID)应该在那里出现:
drwxrwxrwx. 2 root root 4.0K Jan 6 15:14 . drwxr-xr-x. 18 root root 4.0K Jan 5 04:03 .. -rw-rw-rw-. 1 nfsnobody nfsnobody 1.0G Jan 6 15:14+ +volume-0cd7ac45-622a-47b0-9503-7025bbedc8ed
drwxrwxrwx. 2 root root 4.0K Jan 6 15:14 .
drwxr-xr-x. 18 root root 4.0K Jan 5 04:03 ..
-rw-rw-rw-. 1 nfsnobody nfsnobody 1.0G Jan 6 15:14+ +volume-0cd7ac45-622a-47b0-9503-7025bbedc8ed