Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)

blob.png blob.png

 上面左边是个人我的微信,如需进一步沟通,请加微信。  右边是个人公众号“Openstack私有云”,若有兴趣,请关注。html




1.1.1.1. Manila服务安装Share Storage

1.1.1.1.1. 服务概述

OpenStack共享文件系统服务(manila)为虚拟机提供文件存储。共享文件系统服务提供了一个管理和配置文件共享的集合。该服务还支持共享类型的管理以及支持共享快照,前提是须要驱动程序支持。python

共享文件系统服务由如下组件组成:mysql

manila-apilinux

验证请求并将其路由到共享文件系统服务的WSGI应用程序。sql

manila-data数据库

一个独立的服务,其目的是处理数据操做,如复制,共享迁移或备份。后端

manila-schedulerapi

安排和路由请求到适当的共享服务。调度程序使用可配置的过滤器和计量器来路由请求。筛选计划程序是默认筛选器,可在后端的各类属性(如容量,可用区和其余功能)上启用筛选。缓存

manila-share服务器

管理提供共享文件系统的后端设备。manila共享服务经过使用共享后端驱动程序做为接口与后端设备进行通讯。共享驱动程序能够以两种模式之一运行,不管是否处理共享服务器。共享服务器经过共享网络导出文件共享。共享文件系统服务中的共享服务器不禁驱动程序管理时,网络要求应该在共享文件系统服务的带外处理。

Messaging queue

在共享文件系统进程之间路由信息。

1.1.1.1.2. 安装和配置控制器节点

本节介绍如何在运行Red Hat Enterprise LinuxCentOS的控制器节点上安装和配置代码为manila的共享文件系统服务。此服务至少须要一个管理文件存储后端的额外共享节点。

 

1.1.1.1.2.1. 前提条件

在安装和配置共享文件系统服务以前,您必须建立数据库,服务凭据和API端点。

1、要建立数据库,请完成如下步骤:

使用数据库访问客户端以root用户身份链接到数据库服务器 :

$ mysql -u root -p

建立manila数据库:

CREATE DATABASE manila;

授予对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合适的密码替换。

退出数据库访问客户端。

 

2、获取管理员admin凭据CLI命令:

$ . admin-openrc.sh

3、要建立服务凭据,请完成如下步骤:

 

建立一个manila用户:

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

User Password:

Repeat User Password:

admin角色添加到manila用户:

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

 

建立manilamanilav2服务实体:

$ openstack service create --name manila \

  --description "OpenStack Shared File Systems" share

 

$ openstack service create --name manilav2 \

  --description "OpenStack Shared File Systems" sharev2

  

注意:共享文件系统服务须要两个服务实体。

 

4、建立共享文件系统服务API端点:

$ 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

  

注意:共享文件系统服务须要每一个服务实体的端点。

 

1.1.1.1.2.2. 安装和配置的部件

1、安装软件包:

# yum install openstack-manila python-manilaclient

2、编辑/etc/manila/manila.conf文件并完成如下操做:

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

[database]

...

connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila

替换MANILA_DBPASS为您为共享文件系统数据库选择的密码。

 

3、完成其他的配置manila.conf

 

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

[DEFAULT]

...

transport_url = rabbit://openstack:RABBIT_PASS@controller

替换RABBIT_PASS为您为该openstack 账户选择的密码RabbitMQ

 

在该[DEFAULT]部分中,设置如下配置值:

[DEFAULT]

...

default_share_type = default_share_type

share_name_template = share-%s

rootwrap_config = /etc/manila/rootwrap.conf

api_paste_config = /etc/manila/api-paste.ini

 重要:该default_share_type选项指定建立共享时使用的默认共享类型,而不指定请求中的共享类型。在配置文件中指定的默认共享类型必须根据driver_handles_share_servers所使用的驱动程序模式进行必要的额外规格(如driver_handles_share_servers)设置。在讨论共享节点的设置和配置的章节中对此进行了进一步说明。

[DEFAULT][keystone_authtoken]部分中,配置身份服务访问:

[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_id = default

user_domain_id = default

project_name = service

username = manila

password = MANILA_PASS

替换MANILA_PASS为您manila 在身份识别服务中为用户选择的密码。

在该[DEFAULT]部分中,将该my_ip选项配置为使用控制器节点的管理接口IP地址:

[DEFAULT]

...

my_ip = 10.0.0.11

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

[oslo_concurrency]

...

lock_path = /var/lock/manila

4、填充共享文件系统数据库:

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

 

1.1.1.1.2.3. 完成安装

启动共享文件系统服务并将其配置为在系统引导时启动:

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

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

1.1.1.1.3. 安装并配置共享节点

本节介绍如何为共享文件系统服务安装和配置共享节点。为简单起见,此配置引用一个存储节点与通用驱动程序管理共享服务器。通用后端使用计算网络和块服务来管理共享服务器以供应共享。

注意:manila共享流程能够以两种模式运行,不论是否共享服务器。一些驱动可能支持这两种模式; 而有些可能只支持这两种模式之一。请参阅“ 配置参考” 以肯定您选择的驱动程序是否支持所需的驱动程序模式。本教程介绍如何使用该模式的示例驱动程序设置每一个驱动程序模式。

请注意,安装和配置因分布而异。

1.1.1.1.3.1. 安装和配置的部件

1、安装软件包:

# yum install openstack-manila-share python2-PyMySQL

2、编辑/etc/manila/manila.conf文件并完成如下操做:

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

[database]

...

connection = mysql://manila:MANILA_DBPASS@controller/manila

替换MANILA_DBPASS为您为共享文件系统数据库选择的密码。

 

3、完成其他的配置manila.conf

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

[DEFAULT]

...

transport_url = rabbit://openstack:RABBIT_PASS@controller

替换RABBIT_PASS为您为该openstack账户选择的密码 RabbitMQ

 

在该[DEFAULT]部分中,设置如下配置值:

[DEFAULT]

...

default_share_type = default_share_type

rootwrap_config = /etc/manila/rootwrap.conf

重要:该default_share_type选项指定建立共享时使用的默认共享类型,而不指定请求中的共享类型。在配置文件中指定的默认共享类型必须根据driver_handles_share_servers所使用的驱动程序模式进行必要的额外规格(如driver_handles_share_servers)设置。这在后面的步骤中解释。

[DEFAULT][keystone_authtoken]部分中,配置身份服务访问:

[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_id = default

user_domain_id = default

project_name = service

username = manila

password = MANILA_PASS

替换MANILA_PASS为您manila 在身份识别服务中为用户选择的密码。

 

在该[DEFAULT]部分中,配置my_ip选项:

[DEFAULT]

...

my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

替换MANAGEMENT_INTERFACE_IP_ADDRESS为共享节点上管理网络接口的IP地址,典型值为10.0.0.41,用于如下所示示例体系结构中的第一个节点:

spacer.gif 

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

[oslo_concurrency]

...

lock_path = /var/lib/manila/tmp

1.1.1.1.3.1.1. 两个驱动模式

共享节点能够支持两种模式,有和没有共享服务器的处理。该模式取决于驱动程序的支持。

 

选项1

部署服务时不须要驱动程序支持共享服务器管理。在这种模式下,服务不会作任何与网络有关的事情。管理员必须确保实例与基于NAS协议的服务器之间的网络链接。

 

本教程演示如何设置在共享节点上建立LVM卷的LVM驱动程序,并在共享节点上本地安装的NFS服务器的帮助下将其导出。所以,它须要LVMNFS软件包以及manila-shareLVM卷组的附加磁盘。

 

这种驱动模式能够被称为driver_handles_share_servers = False 模式,或者简单地称为DHSS=False模式。

 

选项2

部署服务与驱动程序支持共享服务器管理。在这种模式下,该服务与建立和管理共享服务器的后端驱动程序一块儿运行。本教程演示如何设置Generic驱动程序。该驱动程序须要计算服务(nova),图像服务(glance)和网络服务(neutron)来建立和管理共享服务器; 和块存储服务(cinder)来建立共享。

 

用于建立共享服务器的信息是在共享网络的帮助下配置的。

 

这种驱动模式能够被称为driver_handles_share_servers = True模式,或者简单地称为DHSS=True模式。

 

警告:在DHSS=True驱动程序模式下运行通用驱动程序时,共享服务应与网络服务在同一节点上运行。可是,DHSS=False因为某些Linux发行版中的错误,这样的服务可能没法有效运行以驱动程序模式运行的LVM驱动程序。有关更多信息,请参阅“ 配置参考指南”中的LVM驱动程序部分 。

选择如下选项之一来配置共享驱动程序:

1.1.1.1.3.1.2. 共享文件系统选项1:没有驱动程序支持共享服务器管理

为简单起见,此配置引用块存储服务的相同存储节点配置。可是,LVM驱动程序须要单独的空本地块存储设备,以免与块存储服务发生冲突。说明使用/dev/sdc,可是您能够替换您的特定节点的不一样值。

 

前提条件

注意:在存储节点上执行这些步骤。

1、安装支持的实用程序包:

 

安装LVMNFS服务器软件包:

# yum install lvm2 nfs-utils nfs4-acl-tools portmap

启动LVM元数据服务并将其配置为在系统引导时启动:

# systemctl enable lvm2-lvmetad.service

# systemctl start lvm2-lvmetad.service

2、建立LVM物理卷/dev/sdc

# pvcreate /dev/sdc

Physical volume "/dev/sdc" successfully created

3、建立LVM卷组manila-volumes

# vgcreate manila-volumes /dev/sdc

Volume group "manila-volumes" successfully created

共享文件系统服务在此卷组中建立逻辑卷。

 

4、只有实例才能访问共享文件系统服务卷。可是,底层操做系统管理与卷关联的设备。默认状况下,LVM卷扫描工具会扫描/dev包含卷的块存储设备的 目录。若是项目在其卷上使用LVM,则扫描工具将检测这些卷并尝试缓存这些卷,这可能会致使底层操做系统和项目卷的各类问题。您必须从新配置LVM以仅扫描包含cinder-volumemanila-volumes卷组的设备。编辑/etc/lvm/lvm.conf文件并完成如下操做:

 

在该devices部分中,添加一个接受/dev/sdb/dev/sdc设备的过滤器, 并拒绝全部其余设备:

devices {

...

filter = [ "a/sdb/", "a/sdc", "r/.*/"]

警告:若是您的存储节点在操做系统磁盘上使用LVM,则还必须将关联的设备添加到过滤器。例如,若是/dev/sda设备包含操做系统:

filter = [ "a/sda/", "a/sdb/", "a/sdc", "r/.*/"]

一样,若是计算节点在操做系统磁盘上使用LVM,则还必须修改/etc/lvm/lvm.conf这些节点上的文件中的筛选器, 使其只包含操做系统磁盘。例如,若是/dev/sda 设备包含操做系统:

filter = [ "a/sda/", "r/.*/"]

 

配置组件

 

编辑/etc/manila/manila.conf文件并完成如下操做:

 

在该[DEFAULT]部分中,启用LVM驱动程序和NFS协议:

[DEFAULT]

...

enabled_share_backends = lvm

enabled_share_protocols = NFS

 注意

 

后端名称是任意的。例如,本指南使用驱动程序的名称。

在本[lvm]节中,配置LVM驱动程序:

[lvm]

share_backend_name = LVM

share_driver = manila.share.drivers.lvm.LVMShareDriver

driver_handles_share_servers = False

lvm_share_volume_group = manila-volumes

lvm_share_export_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

替换MANAGEMENT_INTERFACE_IP_ADDRESS为存储节点上管理网络接口的IP地址,典型值为10.0.0.41(对于如下所示示例体系结构中的第一个节点):

 

 

 

 

 

 

 

 

 

 

spacer.gifspacer.gifspacer.gif 

1.1.1.1.3.2. 共享文件系统选项2:驱动程序支持共享服务器管理

为简单起见,此配置引用与用于块存储服务的存储节点相同的存储节点。

注意:本指南介绍如何将共享文件系统服务配置为在generic驱动程序启用共享服务器模式(DHSS)的状况下使用驱动程序。该驱动程序须要计算服务(nova),图像服务(glance)和网络服务(neutron)来建立和管理共享服务器; 和块存储服务(cinder)来建立共享。用于建立共享服务器的信息被配置为共享网络。启用DHSS的通用驱动程序还要求租户的专用网络(计算实例正在运行的位置)链接到公用路由器。

 

前提条件

 

在继续以前,请验证计算,网络和数据块存储服务的操做。此选项要求实施网络选项2,并要求在存储节点上安装一些网络服务组件。

安装网络服务组件:

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

 

配置组件

编辑/etc/manila/manila.conf文件并完成如下操做:

 

在该[DEFAULT]部分中,启用通用驱动程序和NFS协议:

[DEFAULT]

...

enabled_share_backends = generic

enabled_share_protocols = NFS

注意:后端名称是任意的。例如,本指南使用驱动程序的名称。

[neutron],[nova]和[cinder]段,启用这些服务的身份验证:

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

 

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

 

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

在该[generic]部分中,配置通用驱动程序:

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

interface_driver = manila.network.linux.interface.BridgeInterfaceDriver

注意:您也可使用SSH密钥代替服务实例凭证的密码认证。

重要:service_image_name,service_instance_flavor_id, service_instance_user和service_instance_password是参照所使用的驱动程序来建立共享服务器服务镜像。项目中generic 提供了与驱动程序一块儿使用的示例服务镜像manila-image-elements。在安装后步骤中介绍了其建立过程(请参阅: 建立和使用共享文件系统)。

 

完成安装

 

准备manila分享做为开始/中止服务。启动共享文件系统服务(包括其依赖关系),并将其配置为在系统引导时启动:

# systemctl enable openstack-manila-share.service target.service

# systemctl start openstack-manila-share.service target.service

1.1.1.1.4. 验证操做

验证共享文件系统服务的操做。

注意:在控制器节点上执行这些命令。

一、生效admin凭据来访问仅管理员CLI命令:

$ . admin-openrc.sh

二、列出服务组件以验证每一个进程的成功启动:

$ manila service-list

1.1.1.1.5. 建立和使用共享文件系统

根据在安装共享节点时选择的选项(带有共享服务器管理的选项或者不带); 建立和使用共享文件系统的步骤将有所不一样。当共享文件系统服务处理共享服务器的建立和管理时,您须要指定 带有share network请求建立共享。两种模式在各自的共享类型定义中都会有所不一样。在自动处理共享服务器的状况下使用驱动程序模式时,须要根据您的配置中指定的服务镜像。如下说明列举了两种驱动程序模式的步骤。以遵循适合您的安装的内容。

 

1.1.1.1.5.1. 使用共享文件系统选项1建立共享(DHSS = False

 

建立共享类型

在使用LVM驱动程序建立共享以前,禁用DHSS(driver_handles_share_servers)。

 

一、获取管理员凭据以访问仅限管理员的CLI命令:

$ . admin-openrc

二、建立一个禁用DHSS的默认共享类型。默认共享类型将容许您使用此驱动程序建立共享,而无需在共享建立期间明确指定共享类型。

$ manila type-create default_share_type False

设置此默认共享键入manila.conf下的[DEFAULT] 部分,而后从新启动manila-api继续以前的服务。除非您这样作,不然默认分享类型将无效。

注意:建立和配置默认的共享类型是可选的。若是您但愿使用具备各类共享类型的共享文件系统服务,其中每一个共享建立请求均可以指定类型,请参阅此处的共享类型使用文档<http://docs.openstack.org/admin-guide /shared-file-systems-share-types.html>_。

 

建立一个共享

一、生效demo环境做为非管理员,执行如下步骤:

$ . demo-openrc

二、建立一个NFS共享。因为默认的共享类型已被建立和配置,所以不须要在请求中指定。

$ manila create NFS 1 --name share1

三、过了一段时间,股份状态应该从creating 变为available:

$ manila list

四、肯定共享的导出IP地址:

$ manila show share1

 

容许访问共享

在尝试经过网络安装以前配置对新共享的访问。计算实例(其IP地址由如下INSTANCE_IP引用)必须具备与共享网络中指定的网络的网络链接。

$ manila access-allow share1 ip INSTANCE_IP

将共享挂载到计算实例上?

一、登陆到您的计算实例,并建立一个文件夹放置的地方:

$ mkdir ~/test_folder

二、使用共享的导出位置在计算实例中挂载NFS共享:

# mount -vt nfs 10.0.0.41:/var/lib/manila/mnt/share-8e13a98f-c310-41df-ac90-fc8bce4910b8 ~/test_folder

 

1.1.1.1.5.2. 使用共享文件系统选项2建立共享(DHSS = True

在可以建立共享以前,具备通用驱动程序和启用DHSSdriver_handles_share_servers)模式的马尼拉须要至少定义用于建立共享服务器的镜像,网络和共享网络。对于后端配置,共享服务器是NFS共享服务的实例。

注意:此配置会自动为每一个共享建立一个cinder卷。根据共享网络的定义,将cinder卷链接到共享服务器。

1、获取管理员凭据以访问仅限管理员的CLI命令:

$ . admin-openrc.sh

2、建立启用DHSS的默认共享类型。默认共享类型将容许您使用此驱动程序建立共享,而无需在共享建立期间明确指定共享类型。

$ manila type-create default_share_type True

设置此默认共享manila.conf下的[DEFAULT] 部分,而后从新启动manila-api服务。除非您这样作,不然默认分享类型将不会生效。

注意:建立和配置默认的共享类型是可选的。若是您但愿使用具备各类共享类型的共享文件系统服务,其中每一个共享建立请求均可以指定类型,请参阅此处的共享类型使用文档<http://docs.openstack.org/admin-guide /shared-file-systems-share-types.html>_

3、在Image服务中建立一个马尼拉共享服务器镜像。您能够跳过这一步并使用任何现有的镜像。可是,为了装载共享,服务镜像必须包含适合操做系统的NFS软件包。不管你选择什么镜像成为服务镜像,必定要在 manila.conf设置service_image_nameservice_instance_flavor_idservice_instance_userservice_instance_password

注意:manila.confmanila-share服务运行时所作的任何更改都须要从新启动服务才能生效。

注意:做为service_instance_password在配置中指定纯文本的替代方法, 可使用选项指定密钥对,path_to_public_keypath_to_private_key在共享节点和共享服务器之间配置和容许无密码SSH访问。

$ glance image-create \

--copy-from http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-master.qcow2 \

--name "manila-service-image" \

--disk-format qcow2 \

--container-format bare \

--visibility public --progress

4、列出可用网络以获取专用网络的ID和子网:

$ neutron net-list

获取demo非管理员环境变量,执行如下步骤:

$ . demo-openrc.sh

$ manila share-network-create --name demo-share-network1 \

--neutron-net-id PRIVATE_NETWORK_ID \

--neutron-subnet-id PRIVATE_NETWORK_SUBNET_ID

 

建立一个共享

1、使用共享网络建立一个NFS共享。因为默认的共享类型已被建立和配置,所以不须要在请求中指定。

$ manila create NFS 1 --name demo-share1 --share-network demo-share-network1

2、过了一段时间,股份状态应该从如下creating 变为available

$ manila list

3、肯定共享的导出IP地址:

$ manila show demo-share1

 

容许访问共享

在尝试经过网络安装以前配置对新共享的访问。计算实例(其IP地址由如下INSTANCE_IP引用)必须具备与共享网络中指定的网络的网络链接。

$ manila access-allow demo-share1 ip INSTANCE_IP

 

将共享挂载到计算实例上

1、登陆到您的计算实例,并建立一个文件夹放置的地方:

$ mkdir ~/test_folder

2、使用共享的导出位置在计算实例中挂载NFS共享:

$ mount -vt nfs 10.254.0.6:/shares/share-0bfd69a1-27f0-4ef5-af17-7cd50bce6550 ~/test_folder

相关文章
相关标签/搜索