Ceph分布式radosgw对象存储融合Swift 、S3的访问应用

**Ceph分布式radosgw对象存储融合Swift 、S3的访问应用**


确保集群状态正常:前半部分配置参照 https://blog.51cto.com/jdonghong/244175 上半部分配置。
安装RGW实例
[[email protected] idc-cluster]# ceph-deploy install --rgw client1 client2 client3

[[email protected] idc-cluster]# ceph-deploy rgw create client{1..3}

添加管理节点权限
[[email protected] idc-cluster]# ceph-deploy admin client{1..3}

创建S3用户
[[email protected] ceph]# radosgw-admin user create --uid="testuser" --display-name="idc jerry"

[[email protected] ceph]# radosgw-admin user create --uid="testuser" --display-name="idc jerry"
{
"user_id": "testuser",
"display_name": "idc jerry",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "testuser",
"access_key": "VWWLX9UP2T9185XLXPF6",
"secret_key": "nwbZ9ufh3tWU8j8XtAoEdVv7WkMAkpRNms9Q39p5j"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"temp_url_keys": []
}

[[email protected] idc-cluster]# curl http://client1:7480 -v

查看所有用户
[[email protected] ceph]# radosgw-admin metadata list user
[
"testuser"
]

查看用户信息
[[email protected] ceph]# radosgw-admin user info --uid=testuser

查看所有桶
[[email protected] ceph]# radosgw-admin bucket list

查看桶内对象

查看池
[[email protected] ceph]# rados lspools


测试S3接口
[[email protected] ceph]# yum install python-boto

创建测试DEMO
[[email protected] ceph]# cat s3_test.py
import boto.s3.connection
access_key = ‘VWWLX9UP2T9185XLXPF6‘
secret_key = ‘nwbZ9ufh3tWU8j8XtAoEdVv7WkMAkpRNms9Q39p5j‘
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host=‘client1‘, port=7480,
is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket(‘my-new-bucket‘)
for bucket in conn.get_all_buckets():
print "{name} {created}".format(
name=bucket.name,
created=bucket.creation_date,
)

执行测试
[[email protected] ceph]# python s3_test.py

创建Swift用户
要通过 Swift 访问对象网关,需要 Swift 用户,我们创建subuser作为子用户。使用命令

[[email protected] ~]# radosgw-admin user create --uid="jerry" --subuser="jerry":swift --display-name="idc_jerry" --access=full [email protected]

[[email protected] ~]# radosgw-admin user create --uid="jerry" --subuser="jerry":swift --display-name="idc_jerry" --access=full [email protected]
{
"user_id": "jerry",
"display_name": "idc_jerry",
"email": "[email protected]",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "jerry:swift",
"permissions": "full-control"
}
],
"keys": [
{
"user": "jerry",
"access_key": "L709JEL05ID5NU2N08TY",
"secret_key": "8XhbwWsWiLylOO9lahYI7WUJ3RpBpQAjmaXUUevp"
}
],
"swift_keys": [
{
"user": "jerry:swift",
"secret_key": "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG"
}
],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"temp_url_keys": []
}
创建密钥(这步省略因为上面通过一条命令直接一起创建了)
[[email protected] ~]# radosgw-admin key create --subuser=jerry:swift --key-type=swift --gen-secret

{
"user_id": "jerry",
"display_name": "idc_jerry--access=full",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "jerry:swift",
"permissions": "<none>"
}
],
"keys": [
{
"user": "jerry",
"access_key": "R97T9XMKI9FBYBSQ3C55",
"secret_key": "UgDVkoHRW9f8vGxAVGCS9smyUPn6YooxdNC04V83"
}
],
"swift_keys": [
{
"user": "jerry:swift",
"secret_key": "eQK89OYXPGIjFtI1Yk4gjABaO7PYph3HeJjbaDYO"
}
],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"max_size_kb": -1,
"max_objects": -1
},
"temp_url_keys": []
}
测试Swift接口(另找一个客户端结点测试)
需要测试SWIFT客户端安装依赖包
yum install python-setuptools
easy_install pip
pip install python-swiftclient
前提:记得先创建桶,不然不方便后续观察和应用(执行脚本)
[[email protected] ceph]# cat s3_test.py
import boto.s3.connection
access_key = "L709JEL05ID5NU2N08TY"
secret_key = "8XhbwWsWiLylOO9lahYI7WUJ3RpBpQAjmaXUUevp"
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host=‘client2‘, port=7480,
is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket(‘isc_tong‘) #本例执行了两次脚本创建了两个桶idc_tong和isc_tong
for bucket in conn.get_all_buckets():
print "{name} {created}".format(
name=bucket.name,
created=bucket.creation_date,
)
执行测试:
[[email protected] ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list
idc_tong


[[email protected] ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" stat

[[email protected] ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list


测试swift接口访问对象存储成功。
附引入环境变量方式配置(方便管理配置):

[[email protected] ceph]# export ST_USER=jerry:swift

[[email protected] ceph]# export ST_AUTH=http://client1:7480/auth/1.0

[[email protected] ceph]# export ST_KEY="lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG"

[[email protected] ceph]# swift stat idc_tong

上传文件到tong:
[[email protected] ceph]# swift upload idc_tong ceph.conf


[[email protected] ceph]# swift stat idc_tong

[[email protected] ceph]# swift stat idc_tong
Account: v1
Container: idc_tong
Objects: 1
Bytes: 369
Read ACL:
Write ACL:
Sync To:
Sync Key:
X-Timestamp: 1567152118.91934
X-Container-Bytes-Used-Actual: 4096
X-Storage-Policy: default-placement
X-Trans-Id: tx00000000000000000001a-005d68e068-d368-default
Accept-Ranges: bytes
Content-Type: text/plain; charset=utf-8
效果展示:


查看桶中存储内容:
[[email protected] ceph]# swift list idc_tong


[[email protected] ceph]# ls
ceph.client.admin.keyring ceph.conf rbdmap s3_test.py tmpGnDYcT
[[email protected] ceph]# swift upload idc_tong s3_test.py
s3_test.py
[[email protected] ceph]# swift list idc_tong
ceph.conf
s3_test.py

下载(Using the download Command)
[[email protected] data]# swift download idc_tong ceph.conf

原文地址:https://blog.51cto.com/jdonghong/2441850

时间: 2024-10-06 19:36:09

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用的相关文章

二十九.块存储应用案例 分布式文件系统 对象存储

client:192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13 1.块存储 应用案例(真机访问) rbd池子\镜像共享盘 块存储 Filesystem---KRBD---Kernel---ceph 要求: Ceph创建块存储镜像 客户端安装部署ceph软件 客户端部署虚拟机 客户端创建secret 设置虚拟机配置文件,调用ceph存储 ************* ]# rpm -e --nodeps

010 Ceph RGW对象存储

一.对象存储 1.1 介绍 通过对象存储,将数据存储为对象,每个对象除了包含数据,还包含数据自身的元数据 对象通过Object ID来检索,无法通过普通文件系统操作来直接访问对象,只能通过API来访问,或者第三方客户端(实际上也是对API的封装) 对象存储中的对象不整理到目录树中,而是存储在扁平的命名空间中,Amazon S3将这个扁平命名空间称为bucket.而swift则将其称为容器 无论是bucket还是容器,都不能嵌套 bucket需要被授权才能访问到,一个帐户可以对多个bucket授权

Ceph对象存储RGW对接企业级网盘OwnCloud三步走

上篇文章我们把Ceph对象存储搭建成功了,但是成功了之后我们怎么用呢?下面我们本文就来讲下Ceph对象存储对接企业私有云网盘OwnCloud. OwnCloud分为企业版和社区版,我们只说社区版,在这里我就不多赘述了. 那么Ceph对接OwnCloud分三步走. 第一:安装Ceph配置RGW对象存储 第二:安装OwnCloud 第三:对接 第一步在上个文章里面已经做了,那么第二步是安装OwnCloud,可以看下我之前的文章进行安装. 如何搭建OwnCloud网盘 主要讲下第三步 要点:网盘节点D

[转载] 对象存储(2):OpenStack Swift——概念、架构与规模部署

原文: http://www.testlab.com.cn/Index/article/id/1085.html#rd?sukey=fc78a68049a14bb228cb2742bdec2b9498806815fcb59399eee501874bb9e9086bce3050baf1438179330d72d2508871 摘要:开源的最大魅力,是能够满足人们的探索欲和求知欲,让我们可以很深入地了解一个系统,如果我们发现它的设计或者实现中有任何不合理的或者错误的地方,我们可以提出自己的想法并且实

swift(Object Storage对象存储服务)(单节点)

# 在部署对象存储服务(swift)之前,你的环境必须包含身份验证服务(keystone); # keystone需要MySQL数据库,Rabbitmq服务,Memcached服务; # 内存:4G # 系统:Ubuntu Server-14.04.5 # 安装方法:http://www.jianshu.com/p/9e77b3ad930a # IP地址:192.168.10.55 # 主机名:object 基本环境配置 配置主机静态IP地址 vim /etc/network/interface

对象存储与块存储、文件存储等对比

看到 一篇文档, 讲 对象存储, 好奇,搜索文章,摘抄,学习记录 ! 背景: 传统存储在面对海量非结构化数据时,在存储.分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结构化内容设计或优化.成本过高.并非PB级的扩展.不支持永远在线.专有的一体机设备等等,非结构化数据以每年60%-80%的速率增长,从而可扩展性变成了最迫切的需求. 传统存储在面对海量非结构化数据时,在存储.分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结构化内容设计或优化.成本过高.并非

部署mimic版本的Ceph分布式存储系统

1.简介 Ceph: 开源的分布式存储系统.主要分为对象存储.块设备存储.文件系统服务.Ceph核心组件包括:Ceph OSDs.Monitors.Managers.MDSs.Ceph存储集群至少需要一个Ceph Monitor,Ceph Manager和Ceph OSD(对象存储守护进程).运行Ceph Filesystem客户端时也需要Ceph元数据服务器( Metadata Server ). Ceph OSDs: Ceph OSD 守护进程(ceph-osd)的功能是存储数据,处理数据的

块存储、文件存储、对象存储

知乎上看到的 [块存储] 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘.做 Raid.或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘.(假设划分完的逻辑盘也是5个,每个也是1G,但是这5个1G的逻辑盘已经于原来的 5个物理硬盘意义完全不同了.例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,所以逻辑硬盘A是由多个 物理硬盘逻辑虚构出

磁盘工作原理、文件系统及i节点、块存储、文件存储、对象存储、DAS、NAS、还有SAN

(一)磁盘工作原理 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义. 硬盘主要由盘体.控制电路板和接口部件等组成,如图1-1所示.盘体是一个密封的腔体.硬盘的内部结构通常是指盘体的内部结构:控制电路板上主要有 硬盘BIOS.硬盘缓存(即CACHE)和主控制芯片等单元,如图1-2所示:硬盘接口包括电源插座.数据接口和主.从跳线,如图1-3所示. 图1-1 硬盘的外观 图1-