(本文所有提及OSP=OpenStack Platform)

1 对象存储架构

1)Object Container 对象容器是什么?

* 容器中存储了对象
* 对象容器是储存对象的仓库。容器提供了一个整理对象的途径
* 容器就像是 Linux 中的目录,只是容器无法嵌套用户可以在自己的帐户内创建任意数量的容器
* 容器可以公开,供任何人通过公共URL 访问该容器中的对象
2)Object 对象是什么?

* 对象是数据: 在对象存储范畴内,对象就是存储的数据。对象存储为二进制文件,其元数据存储在文件的扩展属性(xattrs)
中,对象可以是许多不同类型的数据,如文本文件、视频、图像、电子邮件或虚拟机镜像
* 伪文件夹: 伪文件夹对象,它可用于模拟一种层次结构,从而更好地组织容器中的对象。例如,名为books 的容器中有一个名为computer
的伪文件夹。computer 文件夹内又有一个名为linux的伪文件夹。linux
内有两个文件对象:一个名为the-introduction-to-linux-book 另一个名为the-introduction-to-
linux-book.epub。
* 对象所有权: 在创建了对象时,它归某一个帐户所有,如OpenStack
项目。帐户服务利用数据库来跟踪该帐户拥有的容器。对象服务利用数据库来跟踪和存储容器对象。
* 访问对象: 对象的创建或检索由代理服务来处理,代理服务使用对象的路径哈希来创建唯一对象ID。用户和应用使用对象的ID 来访问该对象
3)对象存储服务是什么?

* 对象存储服务使用户能够存储和检索文件及其他数据对象,而无需文件系统界面
* 该服务的分布式架构支持水平扩展。对象冗余通过基于软件的数据复制来提供
* 由于通过异步复制支持最终一致性,它非常适合部署跨越不同地理区域的数据中心
4)对象存储架构

* openstack-swift-proxy
:此代理服务使用对象ring来确定新上传对象的存储位置。它更新相关的容器数据库,以反映新对象的存在。如果新上传的对象进入新的容器,此代理服务也更新相关的帐户数据库,以反映该新容器。此代理服务也将GET
请求定向到被请求对象的副本所存储的节点之一,可以是随机的,或者基于从节点响应的时间。该服务提供对公共Swift API
的访问权限,并负责处理和路由请求。代理服务器无需假脱机便可以将对象流传输给用户。也可以通过HTTP
提供对象。代理还具备发现机制。对发现请求的响应中包括有关集群的信息,并且客户端可以用以确定Swift 集群中支持哪些功能
* openstack-swift-accout
此帐户服务维护给定帐户可以访问的所有容器的数据库。每个帐户有一个数据库文件,它们在集群中予以复制。任何帐户都可以访问一组特定的容器。帐户映射到OpenStack身份服务中的项目。帐户服务通过引用容器数据库提供特定容器中的对象列表
* openstack-swift-contaner 此容器服务在容器中维护对象数据库。每个容器有一个数据库文件
它们在集群中予以复制。容器通过将对象列表限定到具体的容器命名空间,加快查找对象的速度。容器服务利用帐户数据库来管理容器列表
* openstack-swif-objcect
此对象服务负责将数据对象存储在磁盘设备上的分区内。每个分区是一个目录,而每个对象保存在其分区目录的子目录中。使用对象路径的MD5哈希值来识别对象本身。该服务存储、检索和删除对象.所有服务可以安装到各个节点上,或者也可安装到专用计算机上。此外,也提供下列组件以便能正常运行:

* Ring 文件Ring
文件将存储的实体的名称映射到物理位置。它们包含所有存储设备的详细信息,也用于推断特定数据片段所存储的位置。针对每一对象、帐户和容器服务器创建一个文件。
* 支持的文件系统: 对象服务将对象存储到文件系统。XFS 是推荐的文件系统,但ext4 也受到支持。文件系统的挂载必须启用xattr
属性以支持元数据条目。挂载点应当是/srv/node。
* House Keeping 进程:
复制确保在出现停机或磁盘故障时具有状态一致性。复制也可确保对象删除的同时移除文件。审核程序对对象、容器和帐户运行完整性检查。如果发现损坏,复制器会获得通知并将损坏的文件替换为来自其他副本之一的文件
5)swift与Ceph对比

* Ceph 功能集概览:
* 在Ceph 中,对象存储在Ceph 对象存储设备(OSD) 中。,由于Ceph 中的代码库以C++ 为主,客户端可以直接和OSD 通信,
免除了代理服务的需要,因而能优化性能
* Ceph 中的一致性模型由RADOS 网关来实施,它提供了强大的一致性。强大的一致性意味着新的和更新的对象写入到所有磁盘,然后才为客户端所见
* Ceph 的用例包括镜像存储、备份服务,以及文件存储和共享
* Ceph 网关(即RADOS 网关)是对象存储接口。它为应用提供了RESTful 网关,支持Amazon S3 和OpenStack Swift
* Ceph 的1目标不仅仅是提供对象存储。
* Ceph 将相同的存储集群用于对象存储、 块存储和基于文件的数据存储
2 管理对象

1)使用Horizon 控制面板管理容器对象:

管理容器对象涉及多项任务,它们可以由个别项目用户执行, 在存储了大量要分发的数据对象时
(如音乐或视频下载网站)也可由管理员执行
程侧重于个别项目用户,以及管理容器和容器对象的基本任务
OpenStack 对象存储容器和对象的管理可以通过多种方式来实现,如Horizon控制面板、对象存储API 和表述性状态转移(REST) Web
服务,或者OpenStack 统一CLI
本节的这一部分侧重于Horizon 控制面板
创建容器; 创建伪文件夹; 上传文件到文件夹; 下载文件对象; 删除文件对象;删除伪文件夹对象;删除容器

2)使用CLI 管理容器对象:

容器管理包括创建、列出和删除容器。伪文件夹和容器对象管理包括创建、列出和删除对象。使用OpenStack CLI
从命令行执行这些任务需要练习,但与操作图形界面相比能够更快产生结果
若要创建容器,可使用openstack container create 命令
若要列出用户项目中的所有容器,可使用openstack container list命令若要删除空容器,可使用openstack container
delete 命令

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信