配置 NFS 存储后端

本节解释如何配置 OpenStack 块存储以使用 NFS 存储。您必须能够从托管 cinder 卷服务的服务器访问 NFS 共享。

注意

在以下发行版中,cinder 卷服务名为 openstack-cinder-volume

  • CentOS

  • Fedora

  • openSUSE

  • Red Hat Enterprise Linux

  • SUSE Linux Enterprise

在 Ubuntu 和 Debian 发行版中,cinder 卷服务名为 cinder-volume

配置块存储以使用 NFS 存储后端

  1. root 用户身份登录到托管 cinder 卷服务的系统。

  2. /etc/cinder/ 目录中创建一个名为 nfs_shares 的文本文件。

  3. cinder 卷服务应用于后端存储的每个 NFS 共享,向 /etc/cinder/nfs_shares 添加一个条目。每个条目应单独成行,并使用以下格式

    HOST:SHARE
    

    其中

    • HOST 是 NFS 服务器的 IP 地址或主机名。

    • SHARE 是现有且可访问的 NFS 共享的绝对路径。


  4. /etc/cinder/nfs_shares 设置为由 root 用户和 cinder 组拥有

    # chown root:cinder /etc/cinder/nfs_shares
    
  5. /etc/cinder/nfs_shares 设置为 cinder 组的成员可读

    # chmod 0640 /etc/cinder/nfs_shares
    
  6. 配置 cinder 卷服务以使用之前创建的 /etc/cinder/nfs_shares 文件。为此,打开 /etc/cinder/cinder.conf 配置文件,并将 nfs_shares_config 配置键设置为 /etc/cinder/nfs_shares

    在包含 openstack-config 的发行版上,您可以通过运行以下命令来配置此项

    # openstack-config --set /etc/cinder/cinder.conf \
      DEFAULT nfs_shares_config /etc/cinder/nfs_shares
    

    以下发行版包含 openstack-config

    • CentOS

    • Fedora

    • openSUSE

    • Red Hat Enterprise Linux

    • SUSE Linux Enterprise

  7. 可选地,在 /etc/cinder/cinder.confnfs_mount_options 配置键中提供环境中所需的任何其他 NFS 挂载选项。如果您的 NFS 共享不需要任何其他挂载选项(或者您不确定),请跳过此步骤。

    在包含 openstack-config 的发行版上,您可以通过运行以下命令来配置此项

    # openstack-config --set /etc/cinder/cinder.conf \
      DEFAULT nfs_mount_options OPTIONS
    

    将 OPTIONS 替换为访问 NFS 共享时要使用的挂载选项。有关可用挂载选项的更多信息,请参阅 NFS 手册页 (man nfs)。

  8. 配置 cinder 卷服务以使用正确的卷驱动程序,即 cinder.volume.drivers.nfs.NfsDriver。为此,打开 /etc/cinder/cinder.conf 配置文件,并将 volume_driver 配置键设置为 cinder.volume.drivers.nfs.NfsDriver

    在包含 openstack-config 的发行版上,您可以通过运行以下命令来配置此项

    # openstack-config --set /etc/cinder/cinder.conf \
      DEFAULT volume_driver cinder.volume.drivers.nfs.NfsDriver
    
  9. 现在,您可以重新启动服务以应用配置。

    注意

    配置键 nfs_sparsed_volumes 确定卷是创建为稀疏文件并按需增长,还是预先完全分配。默认且推荐值为 true,这可确保卷最初创建为稀疏文件。

    nfs_sparsed_volumes 设置为 false 将导致在创建时完全分配卷。这会导致卷创建延迟增加。

    但是,如果您选择将 nfs_sparsed_volumes 设置为 false,则可以直接在 /etc/cinder/cinder.conf 中进行设置。

    在包含 openstack-config 的发行版上,您可以通过运行以下命令来配置此项

    # openstack-config --set /etc/cinder/cinder.conf \
      DEFAULT nfs_sparsed_volumes false
    

    警告

    如果客户端主机启用了 SELinux,如果主机需要访问实例上的 NFS 卷,则应启用 virt_use_nfs 布尔值。要启用此布尔值,请以 root 用户身份运行以下命令

    # setsebool -P virt_use_nfs on
    

    此命令还会使布尔值在重新启动后保持不变。在所有需要访问实例上 NFS 卷的客户端主机上运行此命令。这包括所有计算节点。