安装并配置运行 Ubuntu 的共享节点

本节描述了如何为共享文件系统服务安装和配置共享节点。为简化起见,此配置引用了一个存储节点,该节点使用通用驱动程序管理共享服务器。通用后端使用计算、网络和块服务来配置共享。

请注意,安装和配置因发行版而异。本节描述了运行 Ubuntu 的共享节点的说明。

安装和配置组件

  1. 安装软件包

    # apt-get install manila-share python3-pymysql
    
  2. 编辑 /etc/manila/manila.conf 文件并完成以下操作

    • [database] 部分,配置数据库访问

      [database]
      ...
      connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila
      

      MANILA_DBPASS 替换为您为共享文件系统数据库选择的密码。

  1. manila.conf 中完成其余配置。

    • [DEFAULT] 部分中,配置 RabbitMQ 消息队列访问

      [DEFAULT]
      ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      RABBIT_PASS 替换为您为 RabbitMQ 中的 openstack 帐户选择的密码。

    • [DEFAULT] 部分,设置以下配置值

      [DEFAULT]
      ...
      default_share_type = default_share_type
      rootwrap_config = /etc/manila/rootwrap.conf
      

      重要提示

      default_share_type 选项指定在创建共享时,如果没有指定共享类型,则要使用的默认共享类型。在配置文件中指定的默认共享类型必须使用适当设置的必需的额外规格(例如 driver_handles_share_servers)创建,并参考所使用的驱动程序模式。这将在后续步骤中进一步说明。

    • [DEFAULT][keystone_authtoken] 部分中,配置身份服务访问

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      ...
      memcached_servers = controller:11211
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      project_name = service
      username = manila
      password = MANILA_PASS
      

      MANILA_PASS 替换为您为身份服务中的 manila 用户选择的密码。

    • [DEFAULT] 部分中,配置 my_ip 选项

      [DEFAULT]
      ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为共享节点上管理网络接口的 IP 地址,通常对于下面的示例架构中的第一个节点为 10.0.0.41

      Hardware requirements

      硬件要求

    • [oslo_concurrency] 部分中,配置锁路径

      [oslo_concurrency]
      ...
      lock_path = /var/lib/manila/tmp
      

两种驱动程序模式

共享节点可以支持两种模式:处理共享服务器和不处理共享服务器。模式取决于驱动程序支持。

选项 1

在没有驱动程序支持共享服务器管理的情况下部署服务。在这种模式下,服务不会执行与网络相关的任何操作。操作员必须确保实例与基于 NAS 协议的服务器之间的网络连接。

本教程演示了设置 LVM 驱动程序,该驱动程序在共享节点上创建 LVM 卷,并使用安装在共享节点上的本地 NFS 服务器导出它们。因此,它需要 LVM 和 NFS 包,以及一个用于 manila-share LVM 卷组的额外磁盘。

此驱动程序模式可以称为 driver_handles_share_servers = False 模式,或简称 DHSS=False 模式。

选项 2

在具有驱动程序支持共享服务器管理的情况下部署服务。在这种模式下,服务使用创建和管理共享服务器的后端驱动程序运行。本教程演示了设置 Generic 驱动程序。此驱动程序需要计算服务 (nova)、镜像服务 (glance) 和网络服务 (neutron) 来创建和管理共享服务器;以及块存储服务 (cinder) 来创建共享。

用于创建共享服务器的信息通过共享网络进行配置。

此驱动程序模式可以称为 driver_handles_share_servers = True 模式,或简称 DHSS=True 模式。

警告

在使用 DHSS=True 驱动程序模式下运行通用驱动程序时,共享服务应与网络服务在同一节点上运行。但是,由于 Linux 的某些发行版中的一个错误,这样的服务可能无法有效地运行在 DHSS=False 驱动程序模式下运行的 LVM 驱动程序。有关更多信息,请参阅 配置参考指南 中的 LVM 驱动程序部分。

选择以下选项之一来配置共享驱动程序

共享文件系统选项 1:不支持共享服务器管理

为简化起见,此配置引用了块存储服务的相同存储节点配置。但是,LVM 驱动程序需要一个单独的空本地块存储设备,以避免与块存储服务冲突。说明使用 /dev/sdc,但您可以根据特定节点替换不同的值。

先决条件

注意

在存储节点上执行以下步骤。

  1. 安装支持的实用程序包

    • 安装 LVM 和 NFS 服务器软件包

      # apt-get install lvm2 nfs-kernel-server
      
  1. 创建 LVM 物理卷 /dev/sdc

    # pvcreate /dev/sdc
    Physical volume "/dev/sdc" successfully created
    
  2. 创建 LVM 卷组 manila-volumes

    # vgcreate manila-volumes /dev/sdc
    Volume group "manila-volumes" successfully created
    

    共享文件系统服务在此卷组中创建逻辑卷。

  3. 只有实例才能访问共享文件系统服务卷。但是,基础操作系统管理与卷关联的设备。默认情况下,LVM 卷扫描工具扫描 /dev 目录中的块存储设备,这些设备包含卷。如果项目在其卷上使用 LVM,则扫描工具会检测到这些卷并尝试对其进行缓存,这可能会导致底层操作系统和项目卷出现各种问题。您必须重新配置 LVM,以仅扫描包含 cinder-volumemanila-volumes 卷组的设备。编辑 /etc/lvm/lvm.conf 文件并完成以下操作

    • devices 部分,添加一个过滤器,该过滤器接受 /dev/sdb/dev/sdc 设备,并拒绝所有其他设备

      devices {
      ...
      filter = [ "a/sdb/", "a/sdc", "r/.*/"]
      

      警告

      如果您的存储节点在操作系统磁盘上使用 LVM,您还必须将关联的设备添加到过滤器中。例如,如果 /dev/sda 设备包含操作系统

      filter = [ "a/sda/", "a/sdb/", "a/sdc", "r/.*/"]
      

      同样,如果您的计算节点在操作系统磁盘上使用 LVM,您还必须修改这些节点上的 /etc/lvm/lvm.conf 文件中的过滤器,以仅包含操作系统磁盘。例如,如果 /dev/sda 设备包含操作系统

      filter = [ "a/sda/", "r/.*/"]
      

配置组件

  1. 编辑 /etc/manila/manila.conf 文件并完成以下操作

    • [DEFAULT] 部分,启用 LVM 驱动程序和 NFS 协议

      [DEFAULT]
      ...
      enabled_share_backends = lvm
      enabled_share_protocols = NFS
      

      注意

      后端名称是任意的。例如,本指南使用驱动程序的名称。

    • [lvm] 部分,配置 LVM 驱动程序

      [lvm]
      share_backend_name = LVM
      share_driver = manila.share.drivers.lvm.LVMShareDriver
      driver_handles_share_servers = False
      lvm_share_volume_group = manila-volumes
      lvm_share_export_ips = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点上管理网络接口的 IP 地址。此选项的值可以是逗号分隔的一个或多个 IP 地址的字符串。在下面的示例架构中,地址将为 10.0.0.41

      Hardware requirements

      硬件要求。

共享文件系统选项 2:支持共享服务器管理

为简化起见,此配置引用了块存储服务使用的相同存储节点。

注意

本指南描述了如何配置共享文件系统服务以使用启用驱动程序处理共享服务器模式 (DHSS) 的 generic 驱动程序。此驱动程序需要计算服务 (nova)、镜像服务 (glance) 和网络服务 (neutron) 来创建和管理共享服务器;以及块存储服务 (cinder) 来创建共享。用于创建共享服务器的信息配置为共享网络。启用 DHSS 的通用驱动程序还需要将租户的专用网络(运行计算实例的网络)连接到公共路由器。

先决条件

在继续操作之前,请验证计算、网络和块存储服务是否正常运行。此选项需要实施网络选项 2,并且需要在存储节点上安装一些网络服务组件。

  • 安装网络服务组件

    # apt-get install neutron-plugin-linuxbridge-agent
    

配置组件

  1. 编辑 /etc/manila/manila.conf 文件并完成以下操作

    • [DEFAULT] 部分,启用通用驱动程序和 NFS 协议

      [DEFAULT]
      ...
      enabled_share_backends = generic
      enabled_share_protocols = NFS
      

      注意

      后端名称是任意的。例如,本指南使用驱动程序的名称。

    • [neutron][nova][cinder][glance] 部分,启用这些服务的身份验证

      [neutron]
      ...
      url = http://controller:9696
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      region_name = RegionOne
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      
      [nova]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      region_name = RegionOne
      project_name = service
      username = nova
      password = NOVA_PASS
      
      [cinder]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      region_name = RegionOne
      project_name = service
      username = cinder
      password = CINDER_PASS
      
      [glance]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      region_name = RegionOne
      project_name = service
      username = glance
      password = GLANCE_PASS
      
    • [generic] 部分,配置通用驱动程序

      [generic]
      share_backend_name = GENERIC
      share_driver = manila.share.drivers.generic.GenericShareDriver
      driver_handles_share_servers = True
      service_instance_flavor_id = 100
      service_image_name = manila-service-image
      service_instance_user = manila
      service_instance_password = manila
      interface_driver = manila.network.linux.interface.BridgeInterfaceDriver
      

      注意

      您也可以使用 SSH 密钥代替服务实例凭证的密码身份验证。

      重要提示

      service_image_nameservice_instance_flavor_idservice_instance_userservice_instance_password 与驱动程序用于创建共享服务器的服务镜像相关。可在 manila-image-elements 项目中找到可与 generic 驱动程序一起使用的示例服务镜像。其创建方式在安装后步骤中说明(请参阅:创建和使用共享文件系统)。

完成安装

  1. 将 manila-share 准备为启动/停止服务。启动共享文件系统服务及其依赖项

    # service manila-share restart
    
  2. 默认情况下,Ubuntu 包会创建一个 SQLite 数据库。由于此配置使用 SQL 数据库服务器,请删除 SQLite 数据库文件

    # rm -f /var/lib/manila/manila.sqlite