• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift云存储特性研究

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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万个对象时,将会影响性能。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap