8、文件共享系统服务

8.1、安装并配置控制节点

8.1.1、创建一个数据库、服务凭证和API端点

8.1.1.1、完成下面的步骤以创建数据库:

用数据库连接客户端以 root 用户连接到数据库服务器:

$ mysql -u root -p


创建``manila``数据库:

CREATE DATABASE manila;

GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' IDENTIFIED BY 'P@ssw0rd';

GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' IDENTIFIED BY 'P@ssw0rd';


8.1.1.2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

$ . admin-openrc


8.1.1.3、要创建服务证书,完成这些步骤:

创建``manila``用户:

$ openstack user create --domain default --password-prompt manila

设置密码:P@ssw0rd


给 manila 用户添加 admin 角色:

$ openstack role add --project service --user manila admin


创建``manila`` 和 manilav2 服务实体:

$ openstack service create --name manila --description "OpenStack Shared File Systems" share

Openstack Mitaka安装手顺(8)文件共享系统服务_manila


$ openstack service create --name manilav2 \--description "OpenStack Shared File Systems" sharev2

Openstack Mitaka安装手顺(8)文件共享系统服务_文件共享系统服务_02

注解:文件分享服务需要2个服务实体。


8.1.1.4、创建文件分享服务的API endpoint:

$ openstack endpoint create --region RegionOne share public http://controller:8786/v1/%\(tenant_id\)s


$ openstack endpoint create --region RegionOne share internal http://controller:8786/v1/%\(tenant_id\)s


$ openstack endpoint create --region RegionOne share admin http://controller:8786/v1/%\(tenant_id\)s


$ openstack endpoint create --region RegionOne sharev2 public http://controller:8786/v2/%\(tenant_id\)s


$ openstack endpoint create --region RegionOne sharev2 internal http://controller:8786/v2/%\(tenant_id\)s


$ openstack endpoint create --region RegionOne sharev2 admin http://controller:8786/v2/%\(tenant_id\)s

Openstack Mitaka安装手顺(8)文件共享系统服务_文件共享系统服务_03

注解:文件分享服务的每个服务实体都需要创建endpoint。每个endpoint创建后都有如上图所示的返回信息,这里就不一一截图了。


控制节点防火墙开放端口:8786

# firewall-cmd --permanent --add-port=8786/tcp

# firewall-cmd --reload


确认端口开放成功

# firewall-cmd --list-all


8.1.2、安全并配置组件

8.1.2.1、安装软件包:

# yum install -y openstack-manila openstack-manila-ui python-manilaclient

注解:不安装ui包,那么在dashboard中将没有图形操作界面。

注意:安装ui包后,如果卸载掉,dashboard可能出现问题!本次卸载后就重启httpd服务起不来,重新安装ui后,httpd服务就起来了!


8.1.2.2、编辑vi /etc/manila/manila.conf文件并完成下列操作:

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

connection = mysql+pymysql://manila:P@ssw0rd@controller/manila


在 “[DEFAULT]” 部分,配置 “RabbitMQ” 消息队列访问:

rpc_backend = rabbit

default_share_type = default_share_type

rootwrap_config = /etc/manila/rootwrap.conf

auth_strategy = keystone

my_ip = 111.111.111.201


在 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


在“[keystone_authtoken]” 部分,配置认证服务访问:

memcached_servers = controller:11211

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = manila

password = P@ssw0rd


在 [oslo_concurrency] 部分,配置锁路径:

lock_path = /var/lib/manila/tmp


8.1.2.3、同步文件分享系统的数据库:

# su -s /bin/sh -c "manila-manage db sync" manila

Openstack Mitaka安装手顺(8)文件共享系统服务_文件共享系统服务_04

注解:忽略输出中任何不推荐使用的信息。


8.1.3、完成安装:

启动文件分享服务并设置为随系统启动:

# systemctl enable openstack-manila-api openstack-manila-scheduler

# systemctl start openstack-manila-api openstack-manila-scheduler

# systemctl status openstack-manila-api openstack-manila-scheduler


如果需要manila的ui界面,则还需要重启httpd、memcached服务

# systemctl restart httpd memcached

# systemctl status httpd memcached


8.2、安装并配置一个分享节点

说明:本次将会把分享节点和存储节点放在一起

8.2.1、安装并配置组件

8.2.1.1、安装软件包:

# yum install -y openstack-manila-share python2-PyMySQL


8.2.1.2、编辑vi /etc/manila/manila.conf文件并完成下列操作:

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

connection = mysql://manila:P@ssw0rd@controller/manila


在 “[DEFAULT]” 部分,配置 “RabbitMQ” 消息队列访问:

rpc_backend = rabbit

default_share_type = default_share_type

rootwrap_config = /etc/manila/rootwrap.conf

auth_strategy = keystone

my_ip = 111.111.111.202


在 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


在“[keystone_authtoken]” 部分,配置认证服务访问:

memcached_servers = controller:11211

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = manila

password = P@ssw0rd


在 [oslo_concurrency] 部分,配置锁路径:

lock_path = /var/lib/manila/tmp


8.2.2、配置共享服务器管理支持选项

这个共享节点支持两种模式,带有和不带有共享服务器处理两种模式。这种模式依赖于驱动器的支持

选项1部署服务不包含对共享管理的驱动支持。这种模式下,服务不需要任何和网络有关的部署。操作者必须确保实例和NFS服务器之间的连接。本选项使用需要包含LVM和NFS包以及一个额外的命名为``manila-share``的LVM卷组的LVM驱动器

选项2部署服务包含对共享管理的驱动支持。这种模式下,服务需要计算(nova),网络(neutron),块存储(cinder)服务来管理共享服务器。这部分信息用于创建共享服务器,就像创建共享网络一样。本选项使用支持共享服务处理的generic驱动器,并且需要一个连接到路由的私网``selfservice``

本次选择:有驱动支持的文件共享服务器管理

在进行下一步之前,验证计算,网络,块存储服务。本选项需要网络选项2的补充,同样也需要在存储节点上安装一些网络服务组件。


8.2.2.1、安装网络服务组件:

# yum install -y openstack-neutron openstack-neutron-linuxbridge ebtables


8.2.2.2、编辑vi /etc/manila/manila.conf文件并完成下列操作:

在 [DEFAULT] 部分,启用generic driver和NFS/CIFS协议:

enabled_share_backends = generic

enabled_share_protocols = NFS,CIFS


注解:Backend的名字是任意的。例如,本教程使用driver这个名字。


在``[neutron]``部分,允许对这些服务的认证:

url = http://controller:9696

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = neutron

password = P@ssw0rd


在 [nova]部分,允许对这些服务的认证:

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = P@ssw0rd


在``[cinder]``部分,允许对这些服务的认证:

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = cinder

password = P@ssw0rd


在``[generic]``部分,配置generic driver:

[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 = P@ssw0rd

interface_driver = manila.network.linux.interface.BridgeInterfaceDriver


注解:你也可以使用SSH密钥而不是密码认证的方式来创建服务实例认证

注意:本次部署该部分为新增部分


8.2.3、完成安装

启动文件共享系统服务及其依赖的服务,并将其配置为随系统启动:

# systemctl enable openstack-manila-share

# systemctl start openstack-manila-share

# systemctl status openstack-manila-share


分享节点防火墙开放端口:8786

# firewall-cmd --permanent --add-port=8786/tcp

# firewall-cmd --reload


确认端口开放成功

# firewall-cmd --list-all


8.3、验证操作

在控制节点上执行这些命令

8.3.1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

$ . admin-openrc


8.3.2、列出服务组件以验证是否每个进程都成功启动:

对于选项1的部署:

$ manila service-list

+----+------------------+-------------+------+---------+-------+----------------------------+

| Id | Binary           | Host        | Zone | Status  | State | Updated_at                 |

+----+------------------+-------------+------+---------+-------+----------------------------+

| 1  | manila-scheduler | controller  | nova | enabled | up    | 2016-03-30T20:17:28.000000 |

| 2  | manila-share     | storage@lvm | nova | enabled | up    | 2016-03-30T20:17:29.000000 |

+----+------------------+-------------+------+---------+-------+----------------------------+


对于选项2的部署:

$ manila service-list

[root@controller ~]# manila service-list

+----+------------------+-------------------+------+---------+-------+----------------------------+

| Id | Binary           | Host              | Zone | Status  | State | Updated_at                 |

+----+------------------+-------------------+------+---------+-------+----------------------------+

| 1  | manila-scheduler | controller.leo.dt | nova | enabled | up    | 2020-02-25T14:39:07.000000 |

| 2  | manila-share     | storage01@generic | nova | enabled | up    | 2020-02-25T14:39:08.000000 |

+----+------------------+-------------------+------+---------+-------+----------------------------+

两个选项的区别在于host那一列,选项二ID=2那一行主机名后是@generic,而选项一ID=2那一行主机名主机名后是@lvm

本次是选项2,如下图所示:

Openstack Mitaka安装手顺(8)文件共享系统服务_manila_05