本文章ceph版本为luminous,操作系统为centos7.7,ceph安装部署方法可以参考本人其他文章。
[root@ceph1 ceph-install]# ceph -v
ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
一、执行安装前的准备工作
首先进行 环境检查并在你的 Ceph 对象网关节点上执行安装前的准备工作。特别的,你需要禁用部署 Ceph 集群所用用户的 requiretty ,同时设置 SELinux 为 Permissive 以及 Ceph 部署用户使用 sudo 时无需密码。对于 Ceph 对象网关,在生产环境下你需要开起 Civetweb 所使用的端口。Civetweb默认运行在 7480 端口上。
二、安装 Ceph 对象网关
在你的管理节点的工作目录下,给 Ceph 对象网关节点安装Ceph对象所需的软件包。例如:
ceph-deploy install --rgw <gateway-node1> [<gateway-node2> ...]
ceph-common 包是它的一个依赖性,所以 ceph-deploy 也将安装这个包。 ceph 的命令行工具就会为管理员准备好。为了让你的 Ceph 对象网关节点成为管理节点,可以在管理节点的工作目录下执行以下命令:ceph-deploy admin <node-name>
步骤如下:
1 在你的管理节点的工作目录下,使用命令在 Ceph 对象网关节点上新建一个 Ceph对象网关实例。
ceph-deploy rgw create ceph1
2 在网关服务成功运行后,你可以使用未经授权的请求来访问端口 7480 ,就像这样:
[root@ceph1 ceph-install]# curl http://ceph1:7480
<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>
备注:ceph1为本地,或者可以解释成IP的主机名或者域名。
查看开启rgw服务
[root@ceph1 ceph-install]# ss -ltpn | grep gw
LISTEN 0 128 *:7480 *:* users:(("radosgw",pid=2457,fd=40))
[root@ceph1 ceph-install]# ps -ef | grep gw
ceph 2457 1 0 12:32 ? 00:00:38 /usr/bin/radosgw -f --cluster ceph --name client.rgw.ceph1 --setuser ceph --setgroup ceph
root 3694 2352 0 16:00 pts/0 00:00:00 grep --color=auto gw
查看rgw自动生成pool
[root@ceph1 ceph-install]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
2.93TiB 2.92TiB 6.05GiB 0.20
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
.rgw.root 1 1.09KiB 0 948GiB 4
default.rgw.control 2 0B 0 948GiB 8
default.rgw.meta 3 849B 0 948GiB 5
default.rgw.log 4 0B 0 948GiB 175
default.rgw.buckets.index 5 0B 0 948GiB 1
三 使用网关
1 为了使用 REST 接口,首先需要为S3接口创建一个初始 Ceph 对象网关用户。然后,为 Swift 接口创建一个子用户。然后你需要验证创建的用户是否能够访问网关。
为 S3 访问创建 RADOSGW 用户
一个``radosgw`` 用户需要被新建并被分配权限。命令 man radosgw-admin 会提供该命令的额外信息。
为了新建用户,在 gateway host 上执行下面的命令:
sudo radosgw-admin user create --uid="testuser" --display-name="First User"
建立如下:
radosgw-admin user create --uid="wangjinxiong" --display-name="wangjinxiong"
{
"user_id": "wangjinxiong",
"display_name": "wangjinxiong",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "wangjinxiong",
"access_key": "NJFWJMCDV4IX966BWYHR",
"secret_key": "WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw"
}
2 新建一个 Swift 用户
如果你想要使用这种方式访问集群,你需要新建一个 Swift 子用户。创建 Swift 用户包括两个步骤。第一步是创建用户。第二步是创建 secret key。
在``gateway host`` 上执行喜爱按的步骤:
新建 Swift 用户:
sudo radosgw-admin subuser create --uid=testuser --subuser=testuser:swift --access=full
步骤如下:
# radosgw-admin subuser create --uid=wangjinxiong --subuser=wangjinxiong:swift --access=full
{
"user_id": "wangjinxiong",
"display_name": "wangjinxiong",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "wangjinxiong:swift",
"permissions": "full-control"
}
],
"keys": [
{
"user": "wangjinxiong",
"access_key": "NJFWJMCDV4IX966BWYHR",
"secret_key": "WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0"
}
],
"swift_keys": [
{
"user": "wangjinxiong:swift",
"secret_key": "UoyOcMgRSzzIUheXHx4oUf4By3cXfwomhskJzSPk"
}
],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw"
}
新建 secret key:
sudo radosgw-admin key create --subuser=testuser:swift --key-type=swift --gen-secret
步骤如下:
[root@ceph1 ceph-install]# radosgw-admin key create --subuser=wangjinxiong:swift --key-type=swift --gen-secret
{
"user_id": "wangjinxiong",
"display_name": "wangjinxiong",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "wangjinxiong:swift",
"permissions": "full-control"
}
],
"keys": [
{
"user": "wangjinxiong",
"access_key": "NJFWJMCDV4IX966BWYHR",
"secret_key": "WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0"
}
],
"swift_keys": [
{
"user": "wangjinxiong:swift",
"secret_key": "V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW"
}
],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw"
}
四 访问验证
1 测试 swift 访问
Swift 访问的验证则可以使用``swift`` 的命令行客户端。可以通过命令 man swift 获取更多命令行选项的更多信息。
执行下面的命令安装 swift 客户端,
sudo yum install python-setuptools sudo easy_install pip sudo pip install --upgrade setuptools sudo pip install --upgrade python-swiftclient
步骤如下:
# yum install python-setuptools
# easy_install pip
# pip install --upgrade setuptools
# pip install --upgrade python-swiftclient
执行下面的命令验证 swift 访问:
swift -A http://{IP ADDRESS}:{port}/auth/1.0 -U testuser:swift -K '{swift_secret_key}' list
使用网关服务器的外网 IP 地址替换其中的 {IP ADDRESS} ,使用新建 swift 用户时执行的命令 radosgw-admin key create 的输出替换其中的 {swift_secret_key} 。使用你的 Civetweb 所使用的端口替换其中 {port} ,比如默认是 7480 。如果你不替换这个端口,它的默认值是 80.
举例如下:
 
[root@localhost ~]# swift -A http://192.168.3.232:7480/auth/1.0 -U wangjinxiong:swift -K 'V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW' list
wangjinxiong
查看容器里面的文件
[root@localhost ~]# swift -A http://192.168.3.232:7480/auth/1.0 -U wangjinxiong:swift -K 'V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW' list wangjinxiong
CentOS-7-x86_64-Minimal-1804.iso
环球都会广场光缆建设图.jpg
2 使用S3 windows客户端软件 Gladinet下载
软件下载地址:https://pan.baidu.com/s/1-CZ1m48uAtWuAtIh3fD63A 提取码:5crs
操作如下:
打开软件,点击attach cloud storage
在storage server选择:Amazon S3 Compatible storage
 
接着点击下一步
输入一下信息,点击下一步完成。
备注:以上地址为ceph rgw的地址。
我的电脑会出现以下图标:
接着可以跟操作网络盘一样,随意上传,下载,删除文件。

ceph对象存储RADOSGW安装与使用的更多相关文章

  1. 006.Ceph对象存储基础使用

    一 Ceph文件系统 1.1 概述 Ceph 对象网关是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关 . Ceph 对象存 ...

  2. Ceph对象存储 S3

    ceph对象存储 作为文件系统的磁盘,操作系统不能直接访问对象存储.相反,它只能通过应用程序级别的API访问.ceph是一种分布式对象存储系统,通过ceph对象网关提供对象存储接口,也称为RADOS网 ...

  3. 腾讯云存储专家深度解读基于Ceph对象存储的混合云机制

    背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象 ...

  4. Ceph对象存储网关中的索引工作原理<转>

    Ceph 对象存储网关允许你通过 Swift 及 S3 API 访问 Ceph .它将这些 API 请求转化为 librados 请求.Librados 是一个非常出色的对象存储(库)但是它无法高效的 ...

  5. 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例

    ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...

  6. ceph 对象存储跨机房容灾

    场景分析 每个机房的Ceph都是独立的cluster,彼此之间没有任何关系. 多个机房都独立的提供对象存储功能,每个Ceph Radosgw都有自己独立的命名空间和存储空间. 这样带来两个问题: 针对 ...

  7. ceph对象存储场景

    安装ceph-radosgw [root@ceph-node1 ~]# cd /etc/ceph # 这里要注意ceph的源,要和之前安装的ceph集群同一个版本 [root@ceph-node1 c ...

  8. 直播流怎么存储在Ceph对象存储上? Linux内存文件系统tmpfs(/dev/shm) 的应用

    一./dev/shm理论 默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录.可以通过df 命令查看结果./dev/shm/是linux下一个非常有用的目录,因为这 ...

  9. CEPH 对象存储的系统池介绍

    RGW抽象来看就是基于rados集群之上的一个rados-client实例. Object和pool简述 Rados集群网上介绍的文章很多,这里就不一一叙述,主要要说明的是object和pool.在r ...

随机推荐

  1. 从汉堡加料说起——浅谈C#中的Decorator模式

    相信大家都在都在汉堡店吃过汉堡,有些汉堡店很有特色,推出了汉堡订制服务,即,可以在汉堡中加料,加肉饼,加生菜之类(有点类似我们本地的肥肠粉里面加冒结子).更是让不少吃货大快朵颐,大呼过瘾,加6,7层肉 ...

  2. Chisel3 - model - UserModule commands

    https://mp.weixin.qq.com/s/0ECca6XyFyEri0B4ckOZ4A   介绍UserModule类中,如何管理构建硬件模型所需的命令.   ​​   1. _comma ...

  3. Java实现 LeetCode 593 有效的正方形(判断正方形)

    593. 有效的正方形 给定二维空间中四点的坐标,返回四点是否可以构造一个正方形. 一个点的坐标(x,y)由一个有两个整数的整数数组表示. 示例: 输入: p1 = [0,0], p2 = [1,1] ...

  4. Java实现蓝桥杯算法提高 陶陶摘苹果

    试题 算法提高 陶陶摘苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30 ...

  5. Java实现蓝桥杯VIP算法训练 自行车停放

    试题 算法训练 自行车停放 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或 ...

  6. Android如何使用OKHttp

    首先要在build.gradle里面写入 // 添加OKHttp支持 implementation("com.squareup.okhttp3:okhttp:4.3.1") 下面是 ...

  7. 性能测试中TPS上不去的原因

    TPS(Transaction Per Second):每秒事务数,指服务器在单位时间内(秒)可以处理的事务数量,一般以request/second为单位. 压测中为什么TPS上不去的原因: .网络带 ...

  8. JavaScript使用for循环和splice删除数组指定元素的注意点

    在JavaScript里可以结合for循环和splice来删除数组指定的元素.但是要注意删除元素后,数组索引会发生改变 示例 var arr = ["a","b" ...

  9. 循序渐进VUE+Element 前端应用开发(7)--- 介绍一些常规的JS处理函数

    在我们使用VUE+Element 处理界面的时候,往往碰到需要利用JS集合处理的各种方法,如Filter.Map.reduce等方法,也可以设计到一些对象属性赋值等常规的处理或者递归的处理方法,以前对 ...

  10. matplotlib 示例

    示例1 import numpy as np import matplotlib.pyplot as plt #plt.rcParams['font.family'] = ['sans-serif'] ...