博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)
阅读量:5738 次
发布时间:2019-06-18

本文共 13590 字,大约阅读时间需要 45 分钟。

1.1.1.1. Manila服务安装Share Storage

1.1.1.1.1. 服务概述

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

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

manila-api

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

manila-data

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

manila-scheduler

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

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. 验证操作

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

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

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

$ . admin-openrc.sh

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

$ 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)。

 

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

$ . admin-openrc

2、创建一个禁用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>_。

 

创建一个共享

1、生效demo环境作为非管理员,执行以下步骤:

$ . demo-openrc

2、创建一个NFS共享。由于默认的共享类型已被创建和配置,因此不需要在请求中指定。

$ manila create NFS 1 --name share1

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

$ manila list

4、确定共享的导出IP地址:

$ manila show share1

 

允许访问共享

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

$ manila access-allow share1 ip INSTANCE_IP

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

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

$ mkdir ~/test_folder

2、使用共享的导出位置在计算实例中挂载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_id, service_instance_userservice_instance_password

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

注意:作为service_instance_password在配置中指定纯文本的替代方法, 可以使用选项指定密钥对,path_to_public_key和 path_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

 

本文转自yuweibing51CTO博客,原文链接:http://blog.51cto.com/yuweibing/1981185 ,如需转载请自行联系原作者

你可能感兴趣的文章
Spring IoC容器初的初始化过程
查看>>
(23/24) webpack实战技巧:如何在webpack环境中使用Json
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
2-14
查看>>
swift-UITableView的基本使用(例子)
查看>>
自动化测试之WatiN(2)
查看>>
无状态、REST、RESTful 和 Web Services【整理】
查看>>
用户登录框(含验证码)
查看>>
linux创建用户
查看>>
Pig Hive对比(zz)
查看>>
PageValidate 类
查看>>
ubuntu建立快捷方式
查看>>
java的基本数据类型
查看>>
C++ 之引用
查看>>
远程重启WIN服务器
查看>>
tomcat
查看>>
[转]linq to sql 插入值,以及如何取回自增的ID
查看>>
测试笔记1
查看>>
Java学习笔记(5)----使用正则表达式解决Google Code Jam Qualification2009赛题 Alien Language...
查看>>