0 swift 介绍


0.1swift 是什么?

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

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

 

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 。

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

[1].官网: http://www.openstack.org/projects/storage/

[2]adrian otto 的博客: http://adrianotto.com/2010/09/openstack-os-is-great-for/此文章待翻译。

[3] Finding a needle in Haystack: Facebook’s photo storage

[4]http://www.nosqlnotes.net/archives/116 淘宝杨传辉的博客

[5]http://www.dbanotes.net/arch/facebook_photos_arch.html  DBA Notes的博客

[openstack swift]0 swift介绍相关推荐

  1. OpenStack对象存储——Swift

    OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性.冗余和持久性.本文将从架构.原理 和实践等几方面讲述S ...

  2. Openstack 安装之 Swift

    openstack 版本为Q版 服务器系统:centos7 控制节点:192.168.50.31 swift存储节点: 192.168.50.32 swift存储节点: 192.168.50.33 s ...

  3. SWIFT PLM 功能介绍-项目管理的特色

    功能介绍-项目管理的特色 SWIFT PLM-pdm系统软件-工业互联网-企业私有云公有云部署-杰信软件  ꄲ  10月  ꄲ  功能介绍-项目管理的特色 Swift功能介绍-项目管理的特色 Swif ...

  4. swift自行车品牌介绍_品牌101:简介

    swift自行车品牌介绍 Sometimes when I'm around designer friends and there's a lull in the conversation one o ...

  5. openstack及组件简要介绍

    openstack及组件简要介绍 为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中 ...

  6. OpenStack——编排(Heat)服务介绍与安装

    文章目录 OpenStack--编排(Heat)服务介绍与安装 安装和配置(controller) 准备 (1)创建数据库 (2)加载admin user 的环境变量 (3)创建服务凭证 (4)创建H ...

  7. Swift教程Swift语言快速入门(内部资料)

    Swift语言快速入门(内部资料) 试读下载地址:http://pan.baidu.com/s/1eQCGRHw 前言Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入 ...

  8. 【swift】swift quick start

    一.常量和变量 常量let,变量var 也可以用于确定数组和字典的不可变和可变 二.数据类型: Int:整数类型,可表示有符号整数或无符号整数,分别使用Int和UInt表示. Float:单精度浮点数 ...

  9. 鸿蒙os2.0系统什么时候,鸿蒙OS 2.0beta什么时候发布 鸿蒙OS2.0功能介绍

    鸿蒙OS 2.0beta什么时候发布呢?华为发布了面向全场景的分布式操作系统 HarmonyOS 2.0,宣布年底面向开发者发布智能手机 Beta 版本,下面就让小编给大家介绍一下. 鸿蒙OS 2.0 ...

最新文章

  1. ORACLE 监听之ORA-12518ORA-00020
  2. 标注工具_语料标注工具(3)
  3. Android 使用图片铺满某个区域
  4. 地图容器自适应浏览器是什么意思_Web移动端实现自适应缩放界面的方法汇总
  5. 开源免费的HTML5游戏引擎
  6. 使用IntelliJ IDEA同步Github代码
  7. HDOJ--2035--人见人爱A^B
  8. 某中介无线组网及***接入应用案例
  9. LINUX Centos7利用七牛空间做定时备份 qshell定时备份,定时上传到七牛空间
  10. IBM WebSphere构建智慧世界的六大策略
  11. 数据分析工作到底在做什么
  12. Android studio javah
  13. C语言各个符号优先级(全)
  14. 动态规划法(入门)——最大正方形、最大长方形
  15. java类加载器不同导致SPI 报错 not a subtype
  16. 5G如何改变社会?中国移动出了一本书来解读
  17. 事件循环、webpack、vue<前端学习笔记>
  18. 淘宝校招鸡蛋篮子算法题标准答案
  19. 和数集团首款自研虚拟数字人上线,“始祖龙”带你跨山海,链未来
  20. Hadoop实战篇(1)

热门文章

  1. 20189200余超 2018-2019-2 移动平台应用开发实践第三周作业
  2. ajax timeout 内存溢出,setInterval 和 setTimeout会产生内存溢出
  3. 官方文档——AlwaysOn AG的先决条件、限制和建议
  4. 【FFmpeg】通过编解码ID(AV_CODEC_ID_*)获取编解码器AVCodec指针的过程分析
  5. 误删计算机桌面图标怎么恢复,大神为你解答win7系统恢复误删桌面计算机图标的步骤...
  6. 导航报错SetDestination() can only be called on an active agent that has been placed on a NavMesh
  7. 机器学习之DBSCAN算法
  8. Unicode详解 真干货! 一文带你手撕Unicode
  9. CSS——高度塌陷以及解决方法
  10. 概述-元数据是什么?