项目--对象存储--容器 在容器里你创建的即使是一个文件夹,那么体现在硬盘里,也是一个文件,也就是对象object

[root@h1~(keystone_admin)]#openstackservicelist
+----------------------------------+------------+--------------+
|ID|Name|Type|
+----------------------------------+------------+--------------+
|30c62c3c0797462a8bd4ff059a71296e|swift|object-store|
[root@h1~(keystone_admin)]#keystoneendpoint-list|grep30c62c3c0797462a8bd4ff059a71296e
|2408bc6cb5164053b86c0983fd39961a|RegionOne|http://192.168.1.201:8080/v1/AUTH_%(tenant_id)s|http://192.168.1.201:8080/v1/AUTH_%(tenant_id)s|http://192.168.1.201:8080|30c62c3c0797462a8bd4ff059a71296e|

[root@h1~(keystone_admin)]#swiftlist
h1
[root@h1~(keystone_admin)]#swiftlisth1
test1/
test1/k1.pem
[root@h1~(keystone_admin)]#find/srv/node/swiftloopback/-typef-name"*.data"
/srv/node/swiftloopback/objects/188901/27f/b87961659e1149b7094bb52b5d60f27f/1467698512.58656.data##删除k1后就没有了
/srv/node/swiftloopback/objects/59261/c81/39df7c7803321e4878fdcec1ac469c81/1467698493.15690.data

映射 :ring(环) 映射到硬盘

  1. 容器 在容器里面创建对象

  2. 对象 文件就是对象

  3. 账户 权限

ring文件 保存到硬盘

  • account.ring.gz 账户

  • container.ring.gz 容器

  • object.ring.gz 对象

保存到硬盘里的目录,这个目录为zone /srv/node/swiftloopback/ 挂载点 必须放在/srv/node/目录下

  • zone1

  • zone2 两个相同,备份

packstack方式安装完成后,上传一个文件,只在硬盘里保留一份


对象先映射到 虚拟节点/分区partition 2^n 再映射到zone

目的:减少数据的迁移量

swift服务

1 一致性服务 consisteny server

  • auditor 定期扫描,如果出现问题,就把有问题的文件放隔离区

  • replicate 从另外的zone复制相同的文件过来,实现数据同步

  • update 如果replicate失效了,那么等段时间再试

2 代维服务proxy server

接受用户发送过来的请求,比如上传、删除等请求

3 存储服务

容器服务器 container server

对象服务器 object server

账户服务器 acount server



安装软件

[root@h4~]#yumlistopenstack-swift*
[root@h4~]#yum-yinstallopenstack-swift.noarchopenstack-swift-account.noarchopenstack-swift-container.noarchopenstack-swift-object.noarchopenstack-swift-proxy.noarchmemcache*python-swiftclient

任何服务都要向keystone进行注册

[root@h4~(keystone_admin)]#keystoneuser-create--nameswift--passhequan
[root@h4~(keystone_admin)]#keystonetenant-create--nameservices
[root@h4~(keystone_admin)]#keystoneuser-role-add--userswift--tenantservices--roleadmin



创建服务,指定endpoint

[root@h4~(keystone_admin)]#keystoneservice-create--nameswift--typeobject-store--description"swift"
keystoneendpoint-create--service-id0995c9a9ed4847da86435bca9a7be8fc--publicurl'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s'--internalurl'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s'--adminurl'http://192.168.1.204:8080'

配置swift 准备了2个分区


zone1zone2在/srv/node
12/dev/sdb1/srv/node/zone1xfsdefaults00##挂载
13/dev/sdb2/srv/node/zone2xfsdefaults00


[root@h4~(keystone_admin)]#chown-Rswift.swift/srv/node/


[root@h4swift(keystone_admin)]#catswift.conf
[swift-hash]
swift_hash_path_suffix=%sWIFT_HASH_PATH_SUFFIX%
[root@h1~(keystone_admin)]#find/srv/node/swiftloopback/-typef-name"*.data"
/srv/node/swiftloopback/objects/102340/afe/63f12ea37cca17f0227381adcf93eafe/1467982747.16551.data
zone对象类型/分区的编号/sufix/文件名字的hash/上传文件的时间戳


[root@h1~(keystone_admin)]#date--date=@1467982747.16551
2016年07月08日星期五20:59:07CST


创建ring文件的准备工作 创建模板,设定有几个备份,有多少分区。

[root@h4swift(keystone_admin)]#swift-ring-builderaccount.buildercreate1221
[root@h4swift(keystone_admin)]#swift-ring-builderobject.buildercreate1221
[root@h4swift(keystone_admin)]#swift-ring-buildercontainer.buildercreate1221

指定映射位置

[root@h4swift]#vimaccount-server.conf#3个都要改ip
6bind_ip=192.168.1.204
[root@h4swift(keystone_admin)]#swift-ring-builderaccount.builderaddz1-192.168.1.204:6202/zone1100
[root@h4swift(keystone_admin)]#swift-ring-builderaccount.builderaddz2-192.168.1.204:6202/zone2100
[root@h4swift(keystone_admin)]#swift-ring-builderobject.builderaddz1-192.168.1.204:6200/zone1100
[root@h4swift(keystone_admin)]#swift-ring-builderobject.builderaddz2-192.168.1.204:6200/zone2100
[root@h4swift(keystone_admin)]#swift-ring-buildercontainer.builderaddz1-192.168.1.204:6201/zone1100
[root@h4swift(keystone_admin)]#swift-ring-buildercontainer.builderaddz2-192.168.1.204:6201/zone2100


创建ring文件

[root@h4swift(keystone_admin)]#swift-ring-builderaccount.builderrebalance
[root@h4swift(keystone_admin)]#swift-ring-builderobject.builderrebalance
[root@h4swift(keystone_admin)]#swift-ring-buildercontainer.builderrebalance
[root@h4swift(keystone_admin)]#ls*.gz
account.ring.gzcontainer.ring.gzobject.ring.gz


启动服务

[root@h4srv(keystone_admin)]#systemctlstartopenstack-swift-accountopenstack-swift-objectopenstack-swift-container
[root@h4srv(keystone_admin)]#systemctlis-activeopenstack-swift-accountopenstack-swift-objectopenstack-swift-container
active
active
active
[root@h4srv(keystone_admin)]#systemctlenableopenstack-swift-accountopenstack-swift-objectopenstack-swift-container


代维服务proxy server

[root@h4swift(keystone_admin)]#vimproxy-server.conf
53[filter:authtoken]
54paste.filter_factory=keystonemiddleware.auth_token:filter_factory
55admin_tenant_name=services
56admin_user=swift
57admin_password=hequan
58#
59identity_uri=http://192.168.1.204:35357/
60auth_port=35357
61auth_protocol=http
62#auth_uri=http://192.168.1.204:5000/
[root@h4swift(keystone_admin)]#systemctlstartopenstack-swift-proxy.service
[root@h4swift(keystone_admin)]#systemctlenableopenstack-swift-proxy.service
[root@h4swift(keystone_admin)]#systemctlstartmemcached.service
[root@h4swift(keystone_admin)]#systemctlenablememcached.service


[root@h4swift(keystone_admin)]#swiftposth1
[root@h4swift(keystone_admin)]#swiftlist
h1
[root@h4swift(keystone_admin)]#swiftuploadh1/etc/hosts


任意一个分区挂了,还是可以正常查看
两个都挂了,就看不到了

openstack学习笔记七 swift安装的更多相关文章

  1. openstack swift ring文件解析

    一直以为对swift的ring文件充满好奇,这段时间重新研究swift,正好借此机会好好研究下。

  2. KeyStone安装部署笔记

    KeyStone客户端:OpenStack身份服务API的命令行接口。OpenStack出于扩展性的考虑也支持多个region。下面的命令在regionOne创建了keystone的三种端点:为admin租户和用户申请令牌:最后验证admin租户和用户:输出结果验证了身份服务工作正常,Keystone安装部署成功。

  3. OpenStack对象存储――Swift

    Swift前身是RackspaceCloudFiles项目,随着Rackspace加入到OpenStack社区,于2010年7月贡献给OpenStack,作为该开源项目的一部分。Swift目前的最新版本是OpenStackEssex1.5.1。Swift特性在OpenStack官网中,列举了Swift的20多个特性,其中最引人关注的是以下几点。在OpenStack中还可以与镜像服务Glance结合,为其存储镜像文件。Auth认证服务目前已从Swift中剥离出来,使用OpenStack的认证服务Keysto

  4. OpenStack之swift安装笔记

    安装过程依然参考的是OpenStack的官方安装手册,但补充了一些细节。OpenStack的对象存储是一个多租户的、高可扩展的对象存储系统,通过RESTfulHTTPAPI管理着大量的非结构化数据,在部署对象存储之前必须至少安装了身份服务。首先在KeyStone中创建Swift的用户、服务及endpoint,具体命令及结果如下:然后安装proxy-server,swift客户端、memcached等:yuminstallopenstack-swift-proxypython-swiftclientpyth

  5. OpenStack入门到实战视频教程全集下载罗勇老师经典教程系列

    全网最经典的openstack视频教程,现在免费了!罗老师讲得实在是太好了,目前绝对是全网最好的openstack入门视频,而且讲得特别细,非常适合初学者学习,收集了好久终于齐了,现在贡献给大家。

  6. OpenStack Swift 存储策略

    OpenStackSwift对象存储及其存储策略简介Swift2.0于2014年7月8日发布,其中最重要的新特性是存储策略,该特性改变了以往存储系统中存储策略由设计与实施方决定的做法,让用户能够以Container为粒度,为不同需求的数据指定不同的副本数量、不同参数的纠删码、不同性能的存储介质、不同地理位置、不同的后端存储设备。本文只是对存储策略做了一个简要的介绍,让读者体会存储策略的用途,进一步深入探索可以查看参考资料了解有关OpenStackSwift的更多相关信息。

  7. OpenStack Swift源码导读:业务整体架构和Proxy进程

    OpenStack的源码分析在网上已经非常多了,针对各个部分的解读亦是非常详尽。其中proxy是前端的业务接入进程。account、container和object目录分别是账户、容器和对象的业务处理逻辑进程。各个业务进程或模块之间的逻辑关系可以参考《OpenstackSwift简介》文中的架构图。在《OpenstackSwift简介》从理论上面介绍了具体的节点寻找过程。

  8. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  9. 《转》OpenStack对象存储——Swift

    Swift前身是RackspaceCloudFiles项目,随着Rackspace加入到OpenStack社区,于2010年7月贡献给OpenStack,作为该开源项目的一部分。Swift目前的最新版本是OpenStackEssex1.5.1。Swift特性在OpenStack官网中,列举了Swift的20多个特性,其中最引人关注的是以下几点。在OpenStack中还可以与镜像服务Glance结合,为其存储镜像文件。Auth认证服务目前已从Swift中剥离出来,使用OpenStack的认证服务Keysto

  10. Openstack swift对象存储

    Swift提供的服务与AWSS3基本相同:作为IaaS的存储服务与OpenStackCompute对接,为其存储镜像文档存储存储需要长期保存的数据,例如log存储网站的图片,缩略图等Swift使用RESTfulAPI对外提供服务,目前1.4.6版本所提供的功能:Account的GET、HEADContainer的GET、PUT、HEAD、DELETEObject的GET、PUT、HEAD、DELETE、DELETEAccount、Container、Object的元数据支持大文件、访问控制、权限控制临时对

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部