本文章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
ceph-common 包是它的一个依赖性,所以 ceph-deploy 也将安装这个包。 ceph 的命令行工具就会为管理员准备好。为了让你的 Ceph 对象网关节点成为管理节点,可以在管理节点的工作目录下执行以下命令:ceph-deploy admin
步骤如下:
1 在你的管理节点的工作目录下,使用命令在 Ceph 对象网关节点上新建一个 Ceph对象网关实例。
ceph-deploy rgw create ceph1 |
2 在网关服务成功运行后,你可以使用未经授权的请求来访问端口 7480 ,就像这样:
[root@ceph1 ceph-install]# curl http://ceph1:7480 |
备注: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的地址。
我的电脑会出现以下图标:
接着可以跟操作网络盘一样,随意上传,下载,删除文件。