基于openstack实现的云存储系统的制作方法

文档序号:11524212阅读:942来源:国知局

本发明涉及计算机云计算存储领域,具体的说是基于openstack实现的云存储系统。



背景技术:

在云计算、大数据、存储管理等方面,数据总量急剧增长,同时,数据作为企业、研究机构、政府的核心资产,如果数据损坏或者丢失,将会带来极大的损失。为了解决gb级至tb级之间的数据的安全存储问题,本发明提出了一种基于openstack实现的云存储系统,利用开源云计算平台openstack的对象存储服务swift和身份认证服务keystone联合构建云存储系统,来实现安全的访问控制机制。

openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它支持几乎所有类型的云环境,其首要任务是简化云的部署过程并为其带来良好的可扩展性。openstack覆盖了网络、虚拟化、操作系统、服务器等各个方面,因open而开放,因组件而灵活,因包容而博大,拥有计算、网络、对象存储、块存储、身份、镜像服务、门户、测量、部署编排、数据库服务等组件。

openstack的子项目swift是由rackspace公司开发的分布式对象存储服务,使得openstack云计算平台提供虚拟机镜像存储服务,具有强大的扩展性、冗余性和持久性。swift通过在软件层引入一致性散列技术和数据冗余技术牺牲一定程度的数据一致性,在廉价的硬件设备上构建高可用性和可伸缩性的分布式对象存储服务。swift是一个对象存储系统,所以数据以“对象”的形式组织。

keystone用于对openstack的其他服务提供授权服务,它主要包含两个功能:管理用户以及用户权限,提供服务的目录和它们的端点url。keystone身份认证服务中,1)用户(user)代表访问openstack云服务的人或程序;(2)租户(tenant)代表各个服务中的可以访问的资源集合,租户可以是一个组织、一个消费者、一个项目,租户可以包含一个或多个用户,在swift中资源时以租户为单位进行划分的;(3)角色(role)代表一组用户可以访问的资源权限。角色是在keystone中定义。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供基于openstack实现的云存储系统。

本发明所述基于openstack实现的云存储系统,解决上述技术问题采用的技术方案如下:所述基于openstack实现的云存储系统,利用openstack的对象存储服务swift和身份认证服务keystone联合构建云存储系统,其系统架构主要包括服务端和客户端,所述服务端分为swift资源层和keystone服务层,swift资源层和keystone服务层分别用于提供数据存储和身份认证服务;客户端分为表示层和逻辑层;所述swift资源层、keystone服务层、表示层和逻辑层协同工作,共同组成完整的云存储系统。

优选的,所述基于openstack实现的云存储系统,提供了容器-目录-对象三级资源管理;其中,所述容器管理包括查询容器列表、创建容器以及删除容器;所述目录管理包括新建目录以及删除目录;所述对象管理包括新建对象-上传文件、读取对象的数据-下载文件、删除对象以及更新对象的数据;通过该云存储系统的keystone服务层能够进行身份认证和授权操作。

优选的,所述keystone服务层进行身份认证和授权的具体过程包括:

步骤一,客户端通过post请求将用户名、密码、租户名提交到keystone服务层;

步骤二,keystone服务层对这些信息进行验证,通过验证后将授权信息(包括tokenid、token有效期、租户信息、用户信息和用户的角色)和服务信息(注册到keystone上的各个服务的名称、类型、端点url)发送给客户端;

步骤三,用户根据服务信息获得swift对象存储服务的url,该url和用户的账号一一对应,客户端发送携带token的请求到该url来操作云存储端的资源(容器或对象);

步骤四,swift资源层收到请求后,请求keystone服务层验证token是否正确以及此用户是否有访问权限;

步骤五,keystone服务层验证并返回验证信息;

步骤六,swift资源层根据其内部的策略来验证请求,然后执行请求;

步骤七,swift资源层将执行的结构返回给客户端。

本发明所述基于openstack实现的云存储系统,与现有技术相比具有的有益效果是:本发明通过结合swift和keystone构建存储系统,提供了安全的访问控制机制,从而解决了gb级大文件的存储问题,适于存储任意大小的数据,同时设计实现了符合用户使用习惯的资源管理模式。

附图说明

附图1为通过keystone服务层进行身份认证和授权的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述基于openstack实现的云存储系统进一步详细说明。

为了解决gb级至tb级之间的数据的安全存储问题,本发明提出了基于openstack实现的云存储系统,以开源云计算平台openstack的对象存储服务swift和身份认证服务keystone为基础,利用对象存储服务swift和身份认证服务keystone联合构建云存储系统,通过客户端和服务器的不同设计,来实现安全的访问控制机制;解决了gb级大文件的存储问题,适用于存储任意大小的数据,同时实现了符合用户使用习惯的资源管理模式。

实施例:

本实施例所述基于openstack实现的云存储系统,其系统架构主要包括服务端和客户端,所述服务端分为swift资源层和keystone服务层,swift资源层和keystone服务层分别用于提供数据存储和身份认证服务;客户端分为表示层和逻辑层;所述swift资源层、keystone服务层、表示层和逻辑层协同工作,共同组成完整的云存储系统。

上述基于openstack实现的云存储系统,提供了容器-目录-对象三级资源管理;其中,所述容器管理包括查询容器列表、创建容器以及删除容器;所述目录管理包括新建目录以及删除目录;所述对象管理包括新建对象-上传文件、读取对象的数据-下载文件、删除对象以及更新对象的数据。在该云存储系统中,查询资源,包括查询容器内的目录和对象列表、查询目录内的子目录和对象列表;通过其keystone服务层能够进行身份认证和授权操作。

在该云存储系统中,通过keystone服务层进行身份认证和授权的具体过程,附图1所示,包括如下步骤:

步骤一,客户端通过post请求将用户名、密码、租户名提交到keystone服务层;

步骤二,keystone服务层对这些信息进行验证,通过验证后将授权信息(包括tokenid、token有效期、租户信息、用户信息和用户的角色)和服务信息(注册到keystone上的各个服务的名称、类型、端点url)发送给客户端;

步骤三,用户根据服务信息获得swift对象存储服务的url,该url和用户的账号一一对应,客户端发送携带token的请求到该url来操作云存储端的资源(容器或对象);

步骤四,swift资源层收到请求后,请求keystone服务层验证token是否正确以及此用户是否有访问权限;

步骤五,keystone服务层验证并返回验证信息;

步骤六,swift资源层根据其内部的策略来验证请求,然后执行请求;

步骤七,swift资源层将执行的结构返回给客户端。

具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1