OpenStack 部署Manila 服务
准备一台机器,操作系统是 Ubuntu 14.04,部署的是 Mitaka 版本
主机名 | IPMI 地址 | PXE 地址 | MGMT 地址 | Storage地址 |
---|---|---|---|---|
manila-1 | ip1 | ip2 | ip3 | ip4 |
启用源仓库
apt-get install software-properties-common
add-apt-repository cloud-archive:mitaka
在主机上升级包
apt-get update && apt-get dist-upgrade
注解: 如果更新了一个新内核,重启主机来使用新内核。
安装 OpenStack 客户端
apt-get install python-openstackclient
创建数据库
安装和配置文件共享服务之前,你必须创建创建一个数据库、服务凭证和API端点。
创建 manila
数据库并授权
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
。
创建 manila
用户并添加 admin 角色
openstack user create --domain default --password-prompt manila ## manilapass
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
创建文件分享服务的 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 地址替换成文件服务控制节点的 IP 或者 VIP
安装并配置控制节点
安装软件包 apt-get install manila-api manila-scheduler python-manilaclient
编辑 /etc/manila/manila.conf
文件并完成下列操作
配置数据库访问
[database]
...
connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila
配置 RabbitMQ
消息队列访问
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
注解: 替换密码 RABBIT_PASS
。
配置my_ip
来使用控制节点的管理接口的IP 地址。
[DEFAULT]
default_share_type = default_share_type
rootwrap_config = /etc/manila/rootwrap.conf
my_ip =
配置认证服务访问
[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
使用你在身份认证服务中选择的 manila 用户密码来替换 manilapass 。
配置锁路径
[oslo_concurrency]
...
lock_path = /var/lib/manila/tmp
同步文件分享系统的数据库 su -s /bin/sh -c "manila-manage db sync" manila
重启文件分享服务
service manila-scheduler restart
service manila-api restart
安装并配置 share 节点
安装软件包 apt-get install manila-share python-pymysql
编辑/etc/manila/manila.conf
文件并完成下列操作
配置数据库访问
[database]
...
connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila
配置 RabbitMQ
消息队列访问
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
配置认证服务访问
[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 节点
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>
不同的存储后端配置不同,具体信息需要存储厂商提供 Driver 配置。
验证服务
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 数据库
CREATE DATABASE manila;
删除 Manila 服务
openstack service delete manila
openstack service delete manilav2
风险评估
因为是新规划出的机器,所以不会影响线上集群的运行,即使部署失败,也不影响集群的运行。
网友评论