openstack for Mitaka——Shared File System(Manila)安装初探

来源:互联网 发布:如何找回淘宝聊天记录 编辑:程序博客网 时间:2024/05/29 13:40


题记

在OpenStack中经常会碰到使用共享存储的需求,我们经常使用的启动NFS服务进行共享,这种方式比较直观和配置简单,但是在实际生产环节中,性能可能不会令人满意,在云环境下如果有类似的需求,我们仍然采用这种方式,但是在最新的Mitaka版本中,该功能已经成为了一个组件正式发布出来了。

--------------------------------------------------------------------------------------

Blog:    http://blog.csdn.net/chinagissoft

QQ群:16403743

宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案

转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

--------------------------------------------------------------------------------------


对于OpenStack的共享存储组件,我们称之为Manila(马尼拉),其实这个项目在Juno版本已经提上了日程,经过J、K、L版本的不断发酵,在M版本终于瓜熟蒂落,我也是比较着急,赶紧安装了新版本,看看这组件能不能带给我们不一样的体验。



从Manila项目的介绍可以看出,其实就是实现一个共享服务,也就是说我可以创建共享目录,任意虚拟机可以对该目录进行读写操作,当然,我仅仅只是了解了最简单的功能,更加复杂的功能还需要时间去学习。



从OpenStack的官方文档,相关角色包括控制节点、计算节点、存储节点,共享节点与存储节点放在一起,不过我为了节省资源,我将计算、存储、共享都放在一个节点上,而且我们知道存储节点的块存储cinder默认使用lvm,所以添加了一块新硬盘sdb,共享存储包含两种模式,简单模式也是使用lvm,所以又添加了一块硬盘sdc。


安装步骤大家可以参考官方文档,熟悉了OpenStack的安装风格之后,也不难进行。

在前面也介绍了,M版本的网络分为两种模式,provider网络和self-service网络,那么共享服务针对这两种网络模式也分别对应两种模式:

  • Shared File Systems Option 1: No driver support for share servers management
  • Shared File Systems Option 2: Driver support for share servers management

Option1并不需要安装任何驱动,默认使用lvm和nfs服务方式,支持NFS和CIFS协议,通过在共享服务器创建共享卷,利用NFS为虚拟机提供共享服务。


1、在共享服务器创建共享目录

root@controller:~# manila create NFS 1 --name share1+-----------------------------+--------------------------------------+| Property                    | Value                                |+-----------------------------+--------------------------------------+| status                      | creating                             || share_type_name             | default_share_type                   || description                 | None                                 || availability_zone           | None                                 || share_network_id            | None                                 || host                        |                                      || access_rules_status         | active                               || snapshot_id                 | None                                 || is_public                   | False                                || task_state                  | None                                 || snapshot_support            | True                                 || id                          | 82cd50d1-0e6b-4888-ac79-b4d056a88154 || size                        | 1                                    || name                        | share1                               || share_type                  | fcc5e23a-4d94-4a51-8399-39576fca5416 || has_replicas                | False                                || replication_type            | None                                 || created_at                  | 2016-04-28T03:24:57.000000           || share_proto                 | NFS                                  || consistency_group_id        | None                                 || source_cgsnapshot_member_id | None                                 || project_id                  | 89cf202812654827ae74692bb94f5b60     || metadata                    | {}                                   |+-----------------------------+--------------------------------------+

2、查看创建的共享列表(状态为available可用)

root@controller:~# manila list+--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+| ID                                   | Name   | Size | Share Proto | Status    | Is Public | Share Type Name    | Host                        | Availability Zone |+--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+| 82cd50d1-0e6b-4888-ac79-b4d056a88154 | share1 | 1    | NFS         | available | False     | default_share_type | compute@lvm#lvm-single-pool | nova              |+--------------------------------------+--------+------+-------------+-----------+-----------+--------------------+-----------------------------+-------------------+

3、查看具体的共享目录信息,其实就是在共享服务器的一个volume

root@controller:~# manila show share1+-----------------------------+---------------------------------------------------------------------------------+| Property                    | Value                                                                           |+-----------------------------+---------------------------------------------------------------------------------+| status                      | available                                                                       || share_type_name             | default_share_type                                                              || description                 | None                                                                            || availability_zone           | nova                                                                            || share_network_id            | None                                                                            || export_locations            |                                                                                 ||                             | path = 10.0.0.31:/var/lib/manila/mnt/share-e88556b4-95bd-42e3-8e13-3f4b5ad7a246 ||                             | id = 1cf9b1f3-c30e-40d6-874c-f82eab20c9f0                                       ||                             | preferred = False                                                               || host                        | compute@lvm#lvm-single-pool                                                     || access_rules_status         | active                                                                          || snapshot_id                 | None                                                                            || is_public                   | False                                                                           || task_state                  | None                                                                            || snapshot_support            | True                                                                            || id                          | 82cd50d1-0e6b-4888-ac79-b4d056a88154                                            || size                        | 1                                                                               || name                        | share1                                                                          || share_type                  | fcc5e23a-4d94-4a51-8399-39576fca5416                                            || has_replicas                | False                                                                           || replication_type            | None                                                                            || created_at                  | 2016-04-28T03:24:57.000000                                                      || share_proto                 | NFS                                                                             || consistency_group_id        | None                                                                            || source_cgsnapshot_member_id | None                                                                            || project_id                  | 89cf202812654827ae74692bb94f5b60                                                || metadata                    | {}                                                                              |+-----------------------------+---------------------------------------------------------------------------------+

4、为该共享目录设置可访问的虚拟机IP

注意:需要保证虚拟机Ip与共享节点的IP网络连通

root@controller:~# manila access-allow share1 ip 10.0.0.51+--------------+--------------------------------------+| Property     | Value                                |+--------------+--------------------------------------+| share_id     | 82cd50d1-0e6b-4888-ac79-b4d056a88154 || access_type  | ip                                   || access_to    | 10.0.0.51                            || access_level | rw                                   || state        | new                                  || id           | 23ade55d-0679-4442-a2c1-99687e082c53 |+--------------+--------------------------------------+

测试

在10.0.0.51机器上创建一个mount目录,通过mount命令进行挂载

# mount -t nfs 10.0.0.31:/var/lib/manila/mnt/share-e88556b4-95bd-42e3-8e13-3f4b5ad7a246 ~/test_folder

Option2是需要借助于OpenStack的neutron、nova、cinder组件进行,所以事先需要安装这些组件,提供一个Generic共享驱动,需要通过manila-service-image镜像创建的虚拟机提供支持,进一步说,相比较option1的无需任何设置,option2需要创建内置的共享网络,(网络必须支持self-service模式)

注意:由于我只选择了一种网络,所以该方式我并没有实际操作

1、创建共享网络

$ manila share-network-create --name selfservice-net-share1 \  --neutron-net-id 4e963f5b-b5f3-4db1-a935-0d34c8629e7b \  --neutron-subnet-id 005bf8d1-798e-450f-9efe-72bc0c3be491+-------------------+--------------------------------------+| Property          | Value                                |+-------------------+--------------------------------------+| name              | selfservice-net-share1               || segmentation_id   | None                                 || created_at        | 2016-03-31T13:25:39.052439           || neutron_subnet_id | 005bf8d1-798e-450f-9efe-72bc0c3be491 || updated_at        | None                                 || network_type      | None                                 || neutron_net_id    | 4e963f5b-b5f3-4db1-a935-0d34c8629e7b || ip_version        | None                                 || nova_net_id       | None                                 || cidr              | None                                 || project_id        | 3a46a53a377642a284e1d12efabb3b5a     || id                | 997a1a0a-4f4d-4aa3-b7ae-8ae6d9aaa828 || description       | None                                 |+-------------------+--------------------------------------+

2、创建基于共享网络的共享目录

$ manila create NFS 1 --name share2 \  --share-network selfservice-net-share1 \  --share-type generic_share_type+-----------------------------+--------------------------------------+| Property                    | Value                                |+-----------------------------+--------------------------------------+| status                      | creating                             || share_type_name             | generic_share_type                   || description                 | None                                 || availability_zone           | None                                 || share_network_id            | 997a1a0a-4f4d-4aa3-b7ae-8ae6d9aaa828 || host                        |                                      || access_rules_status         | active                               || snapshot_id                 | None                                 || is_public                   | False                                || task_state                  | None                                 || snapshot_support            | True                                 || id                          | 6a711b95-9e03-4547-8769-74e34676cb3e || size                        | 1                                    || name                        | share2                               || share_type                  | 8698ed92-2a1c-4c9f-aab4-a35dccd88c8f || has_replicas                | False                                || replication_type            | None                                 || created_at                  | 2016-03-31T13:45:18.000000           || share_proto                 | NFS                                  || consistency_group_id        | None                                 || source_cgsnapshot_member_id | None                                 || project_id                  | 3a46a53a377642a284e1d12efabb3b5a     || metadata                    | {}                                   |+-----------------------------+--------------------------------------+

其他方法比较类似。


问题

查看了OpenStack的官方帮助,感觉作为一个新组件还是有许多问题,我不是说bug,只是说这个帮助也让人看不太懂。

1、安装完manila组件之后,我并没有在horizon组件看到可视化操作入口

2、manila组件需要专门下载一个manila镜像,然后创建实例,但是帮助上并没有在说明在实际配置过程中该实例充当的角色,全部配置还是在控制节点和共享节点完成。

3、最简单的共享模式例子写的并不好,因为默认的管理IP段是10.0.0.1/24,而例子给的虚拟机的网络段是203.0.113.1/24,那么option1共享还要求虚拟机网络与共享服务器的IP联通,这个需要用户重新配置provider的subnet才行。


当然了,我也是第一次使用这个组件,可能会由自己的认识不足导致上述内容的不严谨和问题,也请各位多指点。


参考文献:

https://wiki.openstack.org/wiki/Manila#Design_.26_Use_Cases
https://www.ustack.com/blog/openstack-storage/
http://www.chinacloud.cn/show.aspx?id=21998&cid=14
http://www.snia.org/sites/default/files/RobertCallaway_OpenStack_Manilla.pdf
http://mytrix.me/2015/01/network-part-of-manila/




0 0