OpenStack 部署Manila 服務(wù)

OpenStack 部署Manila 服務(wù)

準(zhǔn)備一臺(tái)機(jī)器,操作系統(tǒng)是 Ubuntu 14.04,部署的是 Mitaka 版本

主機(jī)名 IPMI 地址 PXE 地址 MGMT 地址 Storage地址
manila-1 ip1 ip2 ip3 ip4

啟用源倉庫

apt-get install software-properties-common
add-apt-repository cloud-archive:mitaka 

在主機(jī)上升級(jí)包

apt-get update && apt-get dist-upgrade

注解: 如果更新了一個(gè)新內(nèi)核,重啟主機(jī)來使用新內(nèi)核。

安裝 OpenStack 客戶端

apt-get install python-openstackclient

創(chuàng)建數(shù)據(jù)庫

安裝和配置文件共享服務(wù)之前,你必須創(chuàng)建創(chuàng)建一個(gè)數(shù)據(jù)庫、服務(wù)憑證和API端點(diǎn)。

創(chuàng)建 manila 數(shù)據(jù)庫并授權(quán)

CREATE DATABASE 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。

創(chuàng)建 manila 用戶并添加 admin 角色

openstack user create --domain default --password-prompt manila  ## manilapass
openstack role add --project service --user manila admin

創(chuàng)建 manilamanilav2 服務(wù)實(shí)體

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

創(chuàng)建文件分享服務(wù)的 API endpoint

openstack endpoint create --region RegionOne share public http://10.130.32.111:8786/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne   share internal http://10.130.32.111:8786/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne   share admin http://10.130.32.111:8786/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne   sharev2 public http://10.130.32.111:8786/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne   sharev2 internal http://10.130.32.111:8786/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne   sharev2 admin http://10.130.32.111:8786/v2/%\(tenant_id\

注解: IP 地址替換成文件服務(wù)控制節(jié)點(diǎn)的 IP 或者 VIP

安裝并配置控制節(jié)點(diǎn)

安裝軟件包 apt-get install manila-api manila-scheduler python-manilaclient

編輯 /etc/manila/manila.conf 文件并完成下列操作

配置數(shù)據(jù)庫訪問

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

配置 RabbitMQ 消息隊(duì)列訪問

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

注解: 替換密碼 RABBIT_PASS。

配置my_ip 來使用控制節(jié)點(diǎn)的管理接口的IP 地址。

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

配置認(rèn)證服務(wù)訪問

[DEFAULT]
...
auth_strategy = keystone

[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 = services
username = manila
password = manilapass

使用你在身份認(rèn)證服務(wù)中選擇的 manila 用戶密碼來替換 manilapass 。

配置鎖路徑

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

同步文件分享系統(tǒng)的數(shù)據(jù)庫 su -s /bin/sh -c "manila-manage db sync" manila 重啟文件分享服務(wù)

service manila-scheduler restart
service manila-api restart

安裝并配置 share 節(jié)點(diǎn)

安裝軟件包 apt-get install manila-share python-pymysql

編輯/etc/manila/manila.conf文件并完成下列操作

配置數(shù)據(jù)庫訪問

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

配置 RabbitMQ 消息隊(duì)列訪問

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

配置認(rèn)證服務(wù)訪問

[DEFAULT]
...
auth_strategy = keystone

[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 = MANILA_PASS

配置 my_ip

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

配置鎖路徑

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

配置后端 share 節(jié)點(diǎn)

For Example (對HUAWEI NAS9000)

[demo999]
share_backend_name = DEMO999
share_driver = manila.share.drivers.huawei.oceanstor9000.oceanstor9000_nas.HuaweiNasDriver
manila_huawei_conf_file = /etc/manila/manila_driver_demo999.xml
driver_handles_share_servers = False

 File: /etc/manila/manila_driver_demo999.xml

<?xml version='1.0' encoding='UTF-8'?>
<config>
<Storage>
<Product>9000</Product>
<RestURL>https://$URL/deviceManager/v1/rest/</RestURL>
<UserName>$user</UserName>
<UserPassword>$password</UserPassword>
<SslCertPath>/etc/ManilaSecurity/mgmt-dev-ca</SslCertPath>
<SslCertVerify>True</SslCertVerify>
</Storage>
<Filesystem>
<WaitInterval>3</WaitInterval>
<Timeout>60</Timeout>
<StoragePool>543a2edad920</StoragePool>
</Filesystem>
</config>

不同的存儲(chǔ)后端配置不同,具體信息需要存儲(chǔ)廠商提供 Driver 配置。

驗(yàn)證服務(wù)

 source openrc  && manila service-list

+----+------------------+------------------+------+---------+-------+----------------------------+
| Id | Binary           | Host             | Zone | Status  | State | Updated_at                 |
+----+------------------+------------------+------+---------+-------+----------------------------+
| 2  | manila-scheduler | ubuntu-1         | nova | enabled | up    | 2018-11-23T07:30:44.000000 |
| 8  | manila-share     | ubuntu-1@demo999 | nova | enabled | up    | 2018-11-23T07:30:44.000000 |
+----+------------------+------------------+------+---------+-------+----------------------------+

manila type-create demo999 False
manila type-list
+--------------------------------------+--------------------+------------+------------+--------------------------------------+-------------------------+
| ID                                   | Name               | visibility | is_default | required_extra_specs                 | optional_extra_specs    |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+-------------------------+
| 28b4233c-8617-4e63-bcbb-b2b53c400568 | default_share_type | public     | -          | driver_handles_share_servers : False | snapshot_support : True |
| 45669854-395f-4ad5-a10c-3ce991c28055 | demo999            | public     | -          | driver_handles_share_servers : False | snapshot_support : True |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+-------------------------+

 manila create NFS 50   --share-type demo999    --name share-han-test

+-----------------------------+--------------------------------------+
| Property                    | Value                                |
+-----------------------------+--------------------------------------+
| status                      | creating                             |
| share_type_name             | demo999                              |
| description                 | None                                 |
| availability_zone           | None                                 |
| share_network_id            | None                                 |
| share_server_id             | None                                 |
| host                        |                                      |
| access_rules_status         | active                               |
| snapshot_id                 | None                                 |
| is_public                   | False                                |
| task_state                  | None                                 |
| snapshot_support            | True                                 |
| id                          | cd0b24b8-e2f5-461b-88fa-7a4acab3d97b |
| size                        | 50                                   |
| name                        | share-han-test                       |
| share_type                  | 45669854-395f-4ad5-a10c-3ce991c28055 |
| has_replicas                | False                                |
| replication_type            | None                                 |
| created_at                  | 2018-11-23T07:48:17.000000           |
| share_proto                 | NFS                                  |
| consistency_group_id        | None                                 |
| source_cgsnapshot_member_id | None                                 |
| project_id                  | ecbdc37ffda743c39c3c078d9f170a12     |
| metadata                    | {}                                   |
+-----------------------------+--------------------------------------+

 manila list
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+
| ID                                   | Name           | Size | Share Proto | Status    | Is Public | Share Type Name | Host                          | Availability Zone |
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+
| cd0b24b8-e2f5-461b-88fa-7a4acab3d97b | share-han-test | 50   | NFS         | available | False     | demo999         | ubuntu-1@demo999#543a2edad920 | nova              |
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+

回退方案

刪除 Manila user

openstack user delete manila

刪除 Manila edponit

openstack endpoint delete --region RegionOne share public http://mgmtip:8786/v1/%\(tenant_id\)s
openstack endpoint delete --region RegionOne   share internal http://mgmtip:8786/v1/%\(tenant_id\)s
openstack endpoint delete --region RegionOne   share admin http://mgmtip:8786/v1/%\(tenant_id\)s
openstack endpoint delete --region RegionOne   sharev2 public http://mgmtip:8786/v2/%\(tenant_id\)s
openstack endpoint delete --region RegionOne   sharev2 internal http://mgmtip:8786/v2/%\(tenant_id\)s
openstack endpoint delete --region RegionOne   sharev2 admin http://mgmtip:8786/v2/%\(tenant_id\)s

刪除 Manila 數(shù)據(jù)庫

CREATE DATABASE manila;

刪除 Manila 服務(wù)

openstack service delete manila
openstack service delete manilav2

風(fēng)險(xiǎn)評(píng)估

因?yàn)槭切乱?guī)劃出的機(jī)器,所以不會(huì)影響線上集群的運(yùn)行,即使部署失敗,也不影響集群的運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容