热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStackswift使用基本介绍

0swift介绍0.1swift是什么?OpenStackObjectStorage最开始是由Rackspace开发,并于2010年7月贡献给OpenStack,作为其开源子项目。OpenStackObjectStorage最初作为RackspaceCloudFilesservice的主体实现,工程代号为swift。因

0 swift 介绍

0.1swift 是什么?

OpenStack Object Storage 最开始是由 Rackspace 开发,并于 2010 年 7 月贡献给 OpenStack ,作为其开源子项目。 OpenStack Object Storage 最初作为 RackspaceCloud Files service 的主体实现,工程代号为 swift 。因此 swift 沿用至今。

下面的介绍引自官网[1]:

"EN-US">OpenStack Object Storage (code-named Swift) is open source
software forcreating redundant, scalable object storage using
clusters of standardizedservers to store petabytes of accessible
data. It is not a file system orreal-time data storage system, but
rather a long-term storage system for a morepermanent type of
static data that can be retrieved, leveraged, and thenupdated if
necessary. Primary examples of data that best fit this type
ofstorage model are virtual machine images, photo storage, email
storage andbackup archiving. Having no central "brain" or master
point ofcontrol provides greater scalability, redundancy and
permanence 。

"EN-US">OpenStackObject Storage (Swift)
是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。 swift
使用标准化的服务器存储 PB 级可用数据。但它并不是文件系统
(file system) ,实时的数据存储系统  "EN-US">(real-timedata storage system) 。  "EN-US">swift 看起来更像是一个长期的存储系统 (long term
storage system)
,为了获得、调用、更新一些静态的永久性的数据。比如说,适合存储一些类型的数据:虚拟机镜像,图片存储,邮件存储,文档的备份。没有“单点”或者主控结点
(master point of control) ,  "EN-US">swift 看起来具有更强的扩展性、冗余和持久性。 

 

0.2swift 能做什么

长于存储非结构化数据,大、小文件性能据说都很好(目前没有测试数据, adrian otto 说测试过 10 亿个 1byte 数据)。

文章[2] 的 Use OpenStack ObjectStorage For 中,基本上只有一个词 (storage)... 存储,各种存储,可以达 PB 级。

 

0.3swift 不能做什么

文章[2]的 Recognize the Limitations 罗列了一长串 swift 不擅长的地方,这里列出主要几项

 

   Objects must be <5GB : swift 1.2 之后已经对 object 的大小不做限制

  Not a Filesystem :不是文件系统。 swift 使用 REST API ,而不是使用传统意义上的文件操作命令, open(), read(), write(), seek(), 和 close() 等。

   No File Locking :干脆不支持“文件锁”。其实在 swift 中,“锁”的概念是没有必要的。

  No Directory Hierarchies :没有文件目录结构。 swift 可以模拟目录结构,但没有必要

   Not a Database :不是数据库。 swift 使用 account-container-object 的概念存储 object ,可以列表出指定 container 中的 object ,不支持 server 端的查询和处理操作。

 

0.4 结论?

看起来 swift 貌似一无是处,除了“蹩脚”的存储外什么都做不了。

其实 adrian otto 更倾向于把 swift 和 HayStack 做类比。 HayStack 是 facebook 用来缓冲数据的中间层。

国内这方面资料相对较多,不赘述。

参看几篇文章[3]、[4]、[5]可能会有深入认识。

 

0.5 swift 怎么使用?

HTTP GET ,请求 object 的下载; HTTP HEAD 请求 object metadata (元数据), HTTP DELETE 删除处理 object 。

支持多种语言封装对 object 的请求,包括 Java, Python, Perl, PHP, .NET。

 


推荐阅读
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • Kafka 是由 Apache 软件基金会开发的高性能分布式消息系统,支持高吞吐量的发布和订阅功能,主要使用 Scala 和 Java 编写。本文将深入解析 Kafka 的安装与配置过程,为程序员提供详尽的操作指南,涵盖从环境准备到集群搭建的每一个关键步骤。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 在处理大文件上传时,服务端为何无法直接接收?这主要与 PHP 配置文件 `php.ini` 中的几个关键参数有关,如 `upload_max_filesize` 和 `post_max_size`。这些参数分别限制了单个文件的最大上传大小和整个 POST 请求的数据量。为了实现大文件的高效上传,可以通过文件分割与分片上传的方法来解决。本文将详细介绍这一实现方法,并提供相应的代码示例,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 华为与红帽联手,加速开源电信软件革新
    华为与红帽携手合作,旨在加速开源电信软件的发展,以满足大型电信运营商对灵活网络解决方案的需求。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文介绍了如何通过命令行有效地终止所有 Node.js 进程实例,以解决因端口冲突或其他服务冲突导致的问题。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 了解多域名SAN SSL证书及其工作原理
    本文介绍了多域名SAN SSL证书的概念及其工作方式,探讨其在现代网络安全中的重要性和应用。 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 管理UINavigationController中的手势返回 - Managing Swipe Back Gestures in UINavigationController
    本文介绍了如何在一个简单的闪存卡片应用中实现平滑的手势返回功能,以增强用户体验。 ... [详细]
author-avatar
VASTEw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有