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 service create --name manilav2 \--description "OpenStack Shared File Systems" sharev2
注解:文件分享服务需要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
注解:文件分享服务的每个服务实体都需要创建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
注解:忽略输出中任何不推荐使用的信息。
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,如下图所示: