• Swift云存储特性研究


    0.What is swift?

    OpenStack Object Storage (Swift) 是用来创建冗余的、可扩展对象存储(引擎)的开源软件。 swift使用标准化的服务器存储 PB 级的访问数据。它并不是文件系统或者实时的数据存储系统 ,而是一个用于存储永久类型的静态数据的长期存储系统 ,这些数据可以检索调整必要时进行更新。适合存储的数据类型的首要例子是虚拟机镜像,图片存储,邮件存储,存档备份。因为没有中心单元或者主控结点swift提供了更强的扩展性、冗余和持久性。

     

    1.When did the swift start? 

    OpenStack Object Storage 最初由 Rackspace 开发,并于 2010 年 7 月贡献给 OpenStack ,作为该开源项目的一部分它的目的是用于托管 Rackspace的 Cloud Files service ,原始项目代号 swift,所以沿用至今

     

    2.Whats the Advantages of swift?

     

    Swift vs MogileFS

    MogileFS是一个开源的分布式文件系统,用于组建分布式文件集群,主要由Tracker and Database Storage NodesClient 组成,其中系统的元数据都存储在单一的数据库中,写操作只能在单个的master上,因此无法水平扩展数据库的写能力,这影响了的可扩展性。此外,在大并发访问下,数据库将成为瓶颈,所有的服务器和用户都会受此影响。Swift的早期原型基于MogileFS-style,由于元数据数据库无法扩展,该方案最终废弃。

    特性

    优点

    通过编程语言封装的API来存储和管理文件

    使资源的管理和提取自动化

    可以创建公共或私有的容器

    更好的控制性。既允许数据共享也可以设为私有

    使用商用硬件

    没有锁定,每GB更低廉的价格

    硬盘驱动器/结点不可预知的失效

    具有自我修复的可靠性,数据冗余性来保护失效的影响

    无限制的存储

    巨大且扁平的名称空间,高度可伸缩的读写访问能力,直接从存储系统提供内容服务

    多维可伸缩性(向外扩展的结构)

    允许垂直和水平分布地调整存储

    以线性的性能来备份/存档大量数据

    帐号/容器/对象 没有嵌套,不是传统的文件系统

    规模优化,允许百万个PB级别的对象

    内建复制

    (帐号、容器、对象的N份拷贝)

    3x+的数据冗余性与RAID2x的对比

    高可靠性

    不同于RAID的大小调整,非常简单的容量增减

     

    简单的弹性的数据调整

    没有中央数据库

    更高的性能,没有瓶颈

    不需要RAID

    允许更有效地处理大量小型、随机的读写

    内建Mgmt.工具

    帐号管理:创建,增加,验证,删除用户

    容器管理:上传,下载,验证

    监测:容量、主机、网络、日子筛选、集群健康情况

     

    驱动器检查

    允许检测驱动器失效,尽早知悉数据受损

    通过web浏览器使用VNC代理

    快速、简单的命令行管理

     

     

    4.Whatgood use cases for Swift?

    · 存储媒体库(照片、音乐、视频等

    · 视频监控文件的存档 

    · 电话呼叫音频记录的存档 

    · 压缩日志文件的存档 

    · 备份存档(每个对象<5GB) 

    · 存储和加载系统的镜像文件等 

    · 存储数量不断增加基数庞大的文件

    · 存储小型文件 (<50 KB). OpenStack Object Storage擅长于此

    · 存储数以亿计的文件

    · 存储PB级别的数据

     

    5.Whats limitations of Swift?

     

    不是文件系统

    Swift使用REST API,因此不能使典型的POSIX 文件系统的语法如open(), read(), write(), seek()close()

    没有目录结构

    可以创建任意数量的容器,但是不支持嵌套

    在文件中没有写入字节偏移量

    The only way to update a file is to essentially overwrite it. The system creates a new version of an object each time you upload one with the same name.

    上传一个文件的唯一方式本质上就是重写这个文件。当你上传一个相同名字的对象时,系统就创建这个对象的新版本。

    不是数据库

    不支持服务器上的数据查询和处理。值可以列出指定容器内的对象,但是不能基于对象的元数据进行查询。

    不要尝试频繁地更新大对象

    所有的更新将会产生对象的新版本,因为对象是不可变的。

    不要在每个容器内存储超过无限的对象

    adrian otto 发现当容器的对象数超过100万个对象时,将会影响性能。

     

  • 相关阅读:
    ptunnel-简易使用
    socat-简易使用
    ncat-相关参数用法
    通过iodine简单实现dns隧道技术
    HTB-靶机-Safe
    HTB-靶机-Rope
    【mysql子查询&组合查询 05】
    【mysql 库表操作 07】
    【mysql插入&修改&删除 06】
    【mysql 连接查询 04】
  • 原文地址:https://www.cnblogs.com/yuxc/p/2495267.html
Copyright © 2020-2023  润新知