OpenStack对象存储管理手册(9) OpenStack对象存储系统管理-7
来源:互联网 发布:oracle数据库收费吗 编辑:程序博客网 时间:2024/06/07 00:45
OpenStack对象存储管理手册(9) OpenStack对象存储系统管理-7
目录(?)[+]
4. OpenStack对象存储系统管理
4.11 使用Amazon S3的API配置对象存储
Swift3中间件在对象存储之上模拟AmazonS3的API。
目前支持下述操作:
l GET Service
l DELETE Bucket
l GET Bucket(List Objects)
l PUT Bucket
l DELETE Object
l GET Object
l HEAD Object
l PUT Object
l PUT Object(Copy)
首先要下载这个中间件
$ git clone https://github.com/fujita/swift3.git
Swift 1.7.0及之前的版本使用这个中间件的话你需要使用fujiata/swift3库的V1.7版。然后:
$ cd swift3; git checkout v1.7
然后,使用标准的python机制安装:
$ sudo python setup.py install
或者,如果你配置了Ubuntu Cloud Archive,你可以使用:
$ sudo apt-get install swift-python-s3
为了把这个中间件添加到你的配置中,在认证中间件前添加swift3中间件,并且在其他考虑swift请求的中间件之前(比如速率控制)。
确保你的proxy-server.conf文件在piptline和[filter:swift3]部分包含swift3,如下所示:
接下来,配置你用来链接S3API的工具。比如S3curl,你需要在@endpoints array中添加你的host IP信息(line33 in s3curl.pl):
my @endpoints = (‘1.2.3.4’);
现在你可以向终端发送命令,比如:
$ ./s3curl.pl – ‘myacc:myuser’ –key mypw –get- -s –v http://1.2.3.4:8080
为了设置你的客户端,账户和用户字符串如test:tester通过access key连结,秘密的access key是账户的密码。Host还需要指向swift存储节点的主机名。它需要使用旧的调用格式,而不是基于主机名的容器格式。下面是一个在本地安装swift all-in-one的使用python boto库的客户端设置
4.12 使用swift的CLI管理对象存储
在对象存储(swift)项目中,有个叫swift的工具能够在你的对象存储集群上执行各种任务。这个客户端工具可以用来进行特殊的工作,集合数据,列出条目,更新元数据,上传、下载和删除文件。它基于本地的swift客户端库client.py。把client.py合并到swift中提供了很多好处,比如如果当前的token在处理过程中过期了,能够无缝的进行重新授权,对于操作进行最多五次的重试,10个进程并发。所有这些使得swift工具具有鲁棒性,非常适合使用。
4.12.1 swift访问控制列表(ACL)
Swift的ACL对用户和账户有效。用户在账户中有角色,比如‘admin’,它对账户中的所有容器和对象具有完全的权限。ACL在容器级设置,支持列出使用X-Container-Read和X-Container-Write设置的读和写权限。
Swift客户端可以用来设置ACL,使用post子命令和-r选项来设置读,-w选项来设置写。下面的列子允许用户“testuser”读容器中的对象:
$ swift post –r ‘testuser’
也可以使用一个用户列表来替换。
如果你在使用静态网页中间件来允许Openstack对象存储服务于公共的web内容,你也应该注意管理允许的链接的ACL语法。‘.r:’后面跟允许链接的列表。比如,下面的命令允许所有的链接对对象的访问:
$ swift post –r ‘.r:*’
4.12.2 swift CLI基础
Swift的命令行用法,CLI工具是:
Swift (command) [options][args]
下面是swift可用的命令。
(1)stat[container][object]
显示账户、容器或对象的信息,比如:
Swift –A http://auth.api.rackspacecloud.com/v1,0–U user –K key stat
(2)list[options][container]
列出账户中的容器或者容器中的对象。-p或-prefix只列出指定前缀的项。-d或者-delimiter(只用于目录列表)使用给定的定界符处理条目。
(3)upload[options] container file_or_directory [file_or_directory] [……]
向指定的容器上传文件或目录。-c或-changed,只上传上次上传之后改变过的文件。
(4)post [options][container][object]
为账户、容器或对象上传元数据信息。如果没找到容器,会自动创建,但是对账户和对象并不是这么做的。容器允许-r(或-read-acl)和-w(或-write-acl)选项。-m或-meta选项对有所都允许,用来定义用户元数据,格式是Name:Value。这个选项可以重复,如post –m color:blue –m size:large
(5)download –all 或者download container [object][object]……
下载账户中的所有内容(使用-all),或者一个容器中的所有内容或者一个列表中的对象。对于下载一个对象,你可以使用-o[-output] (filename)选项来重定向输出到一个特定的文件或者如果是“-”,那就重定向到标准输出。
(6)delete –all 或者delete container [object][object]……
删除容器中的所有内容(使用-all),或者一个容器中的所有内容,或者一个列表上的对象
(7)swift 的选项
-version
程序的版本号
-h, -help
帮助信息
-s,-snet
使用SERVICENET内部网络
-v,-verbose
打印更多信息
-q,-quiet
禁止状态输出
-A AUTH,-auth=AUTH
获得一个auth token的URL
-U USER,-user=USER
获得一个auth token的用户名
-K KEY, -key=KEY
获得一个auth token的密码
4.12.3 使用swift CLI分析日志文件
当你想要关于日志问题的快速地命令行的答案时,你可以使用swift的-o或者-output选项。-o或-output选项重定向当个对象的下载到一个不同的文件名或者标准输出(-)。重定向输出到标准输出的能力是你能够使用管道“|”而不用先把数据存到磁盘上。一个常用的应用就是进行快速的日志文件分析。首先,我们使用swift来创建一些数据。“logtest”目录包含4个日志文件,格式如下:
Swift工具能够上传这4个文件到“logtest”目录:
在账户上获取数据:
在容器上获取数据:
列出容器中所有对象:
下面三个例子使用-o –output选项来回答关于上传的日志文件的问题。Swift命令下载一个对象,把他的数据流传给awk,通过返回2010年9月16日2200期间所有的返回码来判断请求故障。根据日志行的格式,第9列是请求的类型,第12列是返回码。在awk处理完成数据流后,通过管道排序并通过uniq –c来将相同的请类型和返回码加起来。
下面这个例子使用了awk,swift的-o-output选项来找出每个日志文件中有多少PUT请求。首先在“logtest”容器中使用list命令创建一列对象,然后对于list中的每个条目运行swift 的download –o,然后通过管道传送到grep来过滤PUT请求,最后使用wc –l计算行数。
通过添加-p-prefix选项来返回拥有指定字符串的对象名。让我们来算出每个以“2010-11-15”开头的对象有多少个PUT请求。首先创建对象,对象名前缀为2010-11-15。运行swift的download –o然后通过管道传送到grep和wc。Echo命令用来显示对象名。
Swift工具简单、可扩展、灵活并且提供有用的解决方法,这些都是云计算的核心原则,-o选项只是他很多特性中的一个。
(第四章 完)
- OpenStack对象存储管理手册(9) OpenStack对象存储系统管理-7
- OpenStack对象存储管理手册(9) OpenStack对象存储系统管理-7
- OpenStack对象存储管理手册(7) OpenStack对象存储系统管理-5
- OpenStack对象存储管理手册(3) OpenStack对象存储系统管理-1
- OpenStack对象存储管理手册(4) OpenStack对象存储系统管理-2
- OpenStack对象存储管理手册(5) OpenStack对象存储系统管理-3
- OpenStack对象存储管理手册(6) OpenStack对象存储系统管理-4
- OpenStack对象存储管理手册(8) OpenStack对象存储系统管理-6
- OpenStack对象存储管理手册(1)关于OpenStack
- OpenStack对象存储管理手册(2)OpenStack对象存储简介
- OpenStack对象存储管理手册(10) OpenStack对象存储使用教程
- OpenStack对象存储管理手册(11)OpenStack对象存储监控及故障排除
- OpenStack对象存储-swift
- Openstack swift对象存储
- OpenStack对象存储监控(OpenStack Object Storage Monitoring)
- OpenStack对象存储——Swift
- Hadoop和OpenStack对象存储的区别
- OpenStack对象存储:Swift架构详解
- 动态创建对象,并渲染贴图,动态添加删除脚本
- 水1276
- tomcat中的用户名密码配置以及roles的含义
- 关于radio的onchange事件在IE、FF中行为不同的问题
- Windows 7的系统保护设置
- OpenStack对象存储管理手册(9) OpenStack对象存储系统管理-7
- java 垃圾回收理解
- 计算机是如何启动的?
- SNMP:简单网络管理协议
- mysql数据库优化
- Linux 的启动流程
- sadfasd
- 装饰模式
- UVAlive 6195 拓扑排序 描述巨坑