本文章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. java方法句柄-----4.你所不知道的MethodHandle【翻译】

    Method Handles in Java 1.介绍 在本文中,我们将探讨一个重要的API,它是在Java 7中引入的,并在Java 7版本之后更加完善:全限定名是:Java.lang.invoke ...

  2. (Java实现) 洛谷 P1603 斯诺登的密码

    题目背景 根据斯诺登事件出的一道水题 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早已获悉他的具体位置--但这不是最重要 ...

  3. Java实现 LeetCode 572 另一个树的子树(遍历树)

    572. 另一个树的子树 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树.s 的一个子树包括 s 的一个节点和这个节点的所有子孙.s 也可以看做它自身的一棵子树 ...

  4. Java实现 蓝桥杯VIP 算法训练 整除问题

    问题描述 编写一个程序,输入三个正整数min.max和factor,然后对于min到max之间的每一个整数(包括min和max),如果它能被factor整除,就把它打印出来. 输入格式:输入只有一行, ...

  5. Java实现 蓝桥杯VIP 算法训练 校门外的树

    问题描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,--,L,都种 ...

  6. Java实现N*N矩阵旋转(360度)

    N*N矩阵旋转 Description 给你一个n*n的矩阵,你的任务是将它逆时针旋转角度d. [输入] 输入的第一个数为T,表示接下来有T组数据. 每组数据的格式如下: 第一行为两个整数n,d.1& ...

  7. java实现第七届蓝桥杯反幻方

    反幻方 题目描述 我国古籍很早就记载着 2 9 4 7 5 3 6 1 8 这是一个三阶幻方.每行每列以及对角线上的数字相加都相等. 下面考虑一个相反的问题. 可不可以用 1~9 的数字填入九宫格. ...

  8. zabbix 监控cpu 温度

    Zabbix监控Linux主机CPU温度   一.客户端 1.客户Linux主机安装Im_sensors [root@localhost ~]# yum install -y lm-sensors-y ...

  9. CoordinatorLayout简介

    CoordinatorLayout简介 CoordinatorLayout的作用 协调子view的布局,降低子view之间的耦合度 CoordinatorLayout的使用 核心:Behavior,用 ...

  10. Python大神编程常用4大工具,你用过几个?

    摘要:Python是一种跨平台的编程语言,能够在所有主要的操作系统上,运行你编写的任何Python程序.今天介绍几款常见的工具:Python自带的解释器.文本编辑器(Geany.Sublime Tex ...