八、文件共享系統服務python
8.一、安裝並配置控制節點mysql
8.1.一、建立一個數據庫、服務憑證和API端點linux
8.1.1.一、完成下面的步驟以建立數據庫:sql
用數據庫鏈接客戶端以 root 用戶鏈接到數據庫服務器:數據庫
$ mysql -u root -papi
建立``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';dom
8.1.1.二、得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
$ . admin-openrc
8.1.1.三、要建立服務證書,完成這些步驟:
建立``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.四、建立文件分享服務的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.二、安全並配置組件
8.1.2.一、安裝軟件包:
# yum install -y openstack-manila openstack-manila-ui python-manilaclient
註解:不安裝ui包,那麼在dashboard中將沒有圖形操做界面。
注意:安裝ui包後,若是卸載掉,dashboard可能出現問題!本次卸載後就重啓httpd服務起不來,從新安裝ui後,httpd服務就起來了!
8.1.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.三、同步文件分享系統的數據庫:
# su -s /bin/sh -c "manila-manage db sync" manila
註解:忽略輸出中任何不推薦使用的信息。
8.1.三、完成安裝:
啓動文件分享服務並設置爲隨系統啓動:
# 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.二、安裝並配置一個分享節點
說明:本次將會把分享節點和存儲節點放在一塊兒
8.2.一、安裝並配置組件
8.2.1.一、安裝軟件包:
# yum install -y openstack-manila-share python2-PyMySQL
8.2.1.二、編輯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.二、配置共享服務器管理支持選項
這個共享節點支持兩種模式,帶有和不帶有共享服務器處理兩種模式。這種模式依賴於驅動器的支持
選項1部署服務不包含對共享管理的驅動支持。這種模式下,服務不須要任何和網絡有關的部署。操做者必須確保實例和NFS服務器之間的鏈接。本選項使用須要包含LVM和NFS包以及一個額外的命名爲``manila-share``的LVM卷組的LVM驅動器
選項2部署服務包含對共享管理的驅動支持。這種模式下,服務須要計算(nova),網絡(neutron),塊存儲(cinder)服務來管理共享服務器。這部分信息用於建立共享服務器,就像建立共享網絡同樣。本選項使用支持共享服務處理的generic驅動器,而且須要一個鏈接到路由的私網``selfservice``
本次選擇:有驅動支持的文件共享服務器管理
在進行下一步以前,驗證計算,網絡,塊存儲服務。本選項須要網絡選項2的補充,一樣也須要在存儲節點上安裝一些網絡服務組件。
8.2.2.一、安裝網絡服務組件:
# yum install -y openstack-neutron openstack-neutron-linuxbridge ebtables
8.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.三、完成安裝
啓動文件共享系統服務及其依賴的服務,並將其配置爲隨系統啓動:
# 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.三、驗證操做
在控制節點上執行這些命令
8.3.一、得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
$ . admin-openrc
8.3.二、列出服務組件以驗證是否每一個進程都成功啓動:
對於選項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,以下圖所示: