swift初体验,希望有经验的一起分享下

安装就不提了,按照官方文档的来配置就行(http://swift.openstack.org),多点环境比较郁闷,用的ubuntu的server版,出现了各种诡异的问题。

swift的结构非常简单。客户端从auth那里拿到token,根据account/container/object通过proxy的ring查询后,转送请求(request)到指定的storage node。

基本概念(一下都是参考官方文档):

1.ring(只用了默认的3个Ring,还未自己构建ring)

ring代表存储在硬盘上的实体(entity)名称和实际物理位置的映射

ring是独立于account/container/object server的

ring可以根据需要进行配置,比如副本数(replication)、partiton数(虚结点数) 、partition最小移动间隔。

//创建一个ring,partition数位2^18,replication数为3,partition最小移动间隔为1小时(这个不是特别明白) 

swift-ring-builder object.builder create 18 3 1  

//分配zone(z1-192.168.1.32:6000/sdb1)
swift-ring-builder object.builder add z1-192.168.1.32:6000/sdb1 1  
swift-ring-builder object.builder rebalance 

***ring构建所生成的*.ring.gz文件,是所有node都需要的(storage node ,proxy node)


2.server

proxy server是swift唯一对外开放的访问接口

auth server是认证服务,一般和proxy server运行在一起

object server 是个简单的大对象(blob)存储server,可以用来操作(检索和删除)本地device上的object。
*在文件系统上,对象以二进制文件的形式存储,它的元数据存储在文件系统的扩展属性(xattrs)中(metadata以key/value的形式组成)
* 每个对象使用对象名称的哈希值和操作的时间戳组成的路径来存储

container server的主要工作是处理对象的列表
*容器服务器并不知道对象存在哪,只知道指定容器里存的哪些对象
*这些对象信息以sqlite数据库文件的形式存储,和对象一样在集群上做类似的备份。
*容器服务器也做一些跟踪统计,比如对象的总数,容器的使用情况。 

account server是负责处理容器的列表。


还有一些概念auth(1.43版本用的是tempauth)、replicate机制、删除机制在以后的学习中补上,希望大家一起分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值