在 Red Hat Enterprise Linux 和 CentOS 上安装和配置控制器节点¶
本节描述了如何在运行 Red Hat Enterprise Linux 或 CentOS 的控制器节点上安装和配置共享文件系统服务,该服务代号为 manila。此服务需要至少一个额外的共享节点来管理文件存储后端。
先决条件¶
在安装和配置共享文件系统服务之前,您必须创建一个数据库、服务凭证和 API 端点。
要创建数据库,请完成以下步骤
使用数据库访问客户端以
root用户身份连接到数据库服务器$ mysql -u root -p
创建 manila 数据库
CREATE DATABASE manila;授予对
manila数据库的适当访问权限GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' \ IDENTIFIED BY 'MANILA_DBPASS'; GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' \ IDENTIFIED BY 'MANILA_DBPASS';
将
MANILA_DBPASS替换为合适的密码。退出数据库访问客户端。
激活
admin凭证以访问 admin CLI 命令$ . admin-openrc.sh
要创建服务凭证,请完成以下步骤
创建一个
manila用户$ openstack user create --domain default --password-prompt manila User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | e0353a670a9e496da891347c589539e9 | | enabled | True | | id | 83a3990fc2144100ba0e2e23886d8acc | | name | manila | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
将
admin角色添加到manila用户$ openstack role add --project service --user manila admin
注意
此命令不会产生任何输出。
创建
manila和manilav2服务实体$ openstack service create --name manila \ --description "OpenStack Shared File Systems" share +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Shared File Systems | | enabled | True | | id | 82378b5a16b340aa9cc790cdd46a03ba | | name | manila | | type | share | +-------------+----------------------------------+
$ openstack service create --name manilav2 \ --description "OpenStack Shared File Systems V2" sharev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Shared File Systems V2 | | enabled | True | | id | 30d92a97a81a4e5d8fd97a32bafd7b88 | | name | manilav2 | | type | sharev2 | +-------------+----------------------------------+
注意
共享文件系统服务需要两个服务实体。
创建共享文件系统服务 API 端点
$ openstack endpoint create --region RegionOne \ share public http://controller:8786/v1/%\(tenant_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 0bd2bbf8d28b433aaea56a254c69f69d | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 82378b5a16b340aa9cc790cdd46a03ba | | service_name | manila | | service_type | share | | url | http://controller:8786/v1/%(project_id)s | +--------------+------------------------------------------+ $ openstack endpoint create --region RegionOne \ share internal http://controller:8786/v1/%\(tenant_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | a2859b5732cc48b5b083dd36dafb6fd9 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 82378b5a16b340aa9cc790cdd46a03ba | | service_name | manila | | service_type | share | | url | http://controller:8786/v1/%(project_id)s | +--------------+------------------------------------------+ $ openstack endpoint create --region RegionOne \ share admin http://controller:8786/v1/%\(tenant_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | f7f46df93a374cc49c0121bef41da03c | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 82378b5a16b340aa9cc790cdd46a03ba | | service_name | manila | | service_type | share | | url | http://controller:8786/v1/%(project_id)s | +--------------+------------------------------------------+
$ openstack endpoint create --region RegionOne \ sharev2 public http://controller:8786/v2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | d63cc0d358da4ea680178657291eddc1 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | | service_name | manilav2 | | service_type | sharev2 | | url | http://controller:8786/v2 | +--------------+-----------------------------------------+ $ openstack endpoint create --region RegionOne \ sharev2 internal http://controller:8786/v2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | afc86e5f50804008add349dba605da54 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | | service_name | manilav2 | | service_type | sharev2 | | url | http://controller:8786/v2 | +--------------+-----------------------------------------+ $ openstack endpoint create --region RegionOne \ sharev2 admin http://controller:8786/v2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | e814a0cec40546e98cf0c25a82498483 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | | service_name | manilav2 | | service_type | sharev2 | | url | http://controller:8786/v2 | +--------------+-----------------------------------------+
注意
共享文件系统服务需要为每个服务实体创建端点。
安装和配置组件¶
安装软件包
# dnf install openstack-manila python3-manilaclient
编辑
/etc/manila/manila.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] ... connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila
将
MANILA_DBPASS替换为您为共享文件系统数据库选择的密码。
在
manila.conf中完成其余配置在
[DEFAULT]部分中,配置RabbitMQ消息队列访问[DEFAULT] ... transport_url = rabbit://openstack:RABBIT_PASS@controller
将
RABBIT_PASS替换为您为RabbitMQ中的openstack帐户选择的密码。在
[DEFAULT]部分,设置以下配置值[DEFAULT] ... default_share_type = default_share_type share_name_template = share-%s rootwrap_config = /etc/manila/rootwrap.conf api_paste_config = /etc/manila/api-paste.ini
重要提示
default_share_type选项指定在创建共享时,如果没有指定共享类型,则要使用的默认共享类型。在配置文件中指定的默认共享类型必须使用必要的必需的 extra-specs(例如driver_handles_share_servers)进行设置,这些 extra-specs 必须根据使用的驱动程序模式进行适当设置。这在讨论共享节点设置和配置的部分中会进一步说明。在
[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选项以使用控制器节点的管理接口 IP 地址[DEFAULT] ... my_ip = 10.0.0.11
在
[oslo_concurrency]部分中,配置锁路径[oslo_concurrency] ... lock_path = /var/lock/manila
填充共享文件系统数据库
# su -s /bin/sh -c "manila-manage db sync" manila
注意
忽略此输出中的任何弃用消息。
完成安装¶
启动共享文件系统服务并配置它们在系统启动时启动
# systemctl enable openstack-manila-api.service openstack-manila-scheduler.service # systemctl start openstack-manila-api.service openstack-manila-scheduler.service