本文章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. Vue中控制更新的方式

    一.  强制更新的实例方法   vm.$forceUpdate() 迫使 Vue 实例重新渲染.注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件. 在没有留意到数组或对象的变更检测注意事 ...

  2. Chisel3 - 使用chisel-iotesters进行验证

    https://mp.weixin.qq.com/s/KqyklKrPLtPm38sftMYlHA   1. 使用Maven获取库   Chisel相关的库基本上都可以使用Maven获取到(https ...

  3. Java实现 LeetCode 699 掉落的方块(线段树?)

    699. 掉落的方块 在无限长的数轴(即 x 轴)上,我们根据给定的顺序放置对应的正方形方块. 第 i 个掉落的方块(positions[i] = (left, side_length))是正方形,其 ...

  4. Java实现 蓝桥杯VIP 算法训练 方格取数

    问题描述 设有NN的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0. 某人从图的左上角的A 点(1,1)出发,可以向下行走,也可以向右走,直到到达右下角的B点 ...

  5. Java实现 蓝桥杯VIP 算法提高 前10名

    算法提高 前10名 时间限制:1.0s 内存限制:256.0MB 问题描述 数据很多,但我们经常只取前几名,比如奥运只取前3名.现在我们有n个数据,请按从大到小的顺序,输出前10个名数据. 输入格式 ...

  6. 浅谈python中的赋值、浅拷贝与深拷贝:

    1.赋值----------是对原对象的引用,指向同一片内存地址 浅拷贝和深拷贝对于容器类型对象才有意义 2.浅拷贝----------对于一个对象的顶层进行拷贝 浅拷贝有三种方式: (1)切片 (2 ...

  7. [html][js]视频倍速播放功能

    代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  8. Ubuntu安装qwt步骤

    1.svn获取代码 svn checkout https://svn.code.sf.net/p/qwt/code/trunk/qwt 2.生产makefile qmake 3.编译(确保已经安装了q ...

  9. SSM框架处理跨域问题

    什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.跨域的严格一点的定义是:只要 协议,域名,端口有任何一个 ...

  10. 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...