ceph-16.2.10P版分布式存储部署以及块存储、文件存储、对象存储的具体使用方式介绍

1. 部署ceph集群

部署ceph 16 即 Pacific 版本
官网地址: https://docs.ceph.com/en/latest/releases/pacific/
支持的操作系统:
在这里插入图片描述

1.1 部署方式

cephadm: https://docs.ceph.com/en/latest/cephadm/ #ceph 官方在 ceph 15 版本加入的ceph 部署工具
ceph-deploy:https://github.com/ceph/ceph-deploy #python
是一个 ceph 官方维护的基于 ceph-deploy 命令行部署 ceph 集群的工具,基于 ssh 执行可
以 sudo 权限的 shell 命令以及一些 python 脚本 实现 ceph 集群的部署和管理维护。
Ceph-deploy 只用于部署和管理 ceph 集群,客户端需要访问 ceph,需要部署客户端工具

1.1.1 服务器硬件选型

http://docs.ceph.org.cn/start/hardware-recommendations/ #官方硬件推荐

组件名称服务器类型网络磁盘类型cpu 内存
monitorx86_6410G、40G、100G 或更快的光纤网络SSD4C 8G~16G【小型】 8C 16G~32G【中型】16C ~32C 32G~64G 【大型/超大型 专用物理机】
mgrx86_6410G、40G、100G 或更快的光纤网络SSD4C 8G~16G【小型】 8C 16G~32G【中型】16C ~32C 32G~64G 【大型/超大型 专用物理机】
radosgwx86_6410G、40G、100G 或更快的光纤网络SSD4C 8G~16G【小型】 8C 16G~32G【中型】16C ~32C 32G~64G 【大型/超大型 专用物理机】
mdsx86_6410G、40G、100G 或更快的光纤网络SSD8C 8G~16G【小型】 16C 16G~32G【中型】32C ~32C 32G~64G 【大型/超大型 专用物理机】

OSD 节点 CPU:
每个 OSD 进程至少有一个 CPU 核心或以上,比如服务器一共 2 颗 CPU 每个 12 核心 24线程,那么服务器总计有 48 核心 CPU,这样最多最多最多可以放 48 块磁盘。

OSD 节点内存:
OSD 硬盘空间在 2T 或以内的时候每个硬盘 2G 内存,4T 的空间每个 OSD 磁盘 4G 内存,即大约每 1T 的磁盘空间(最少)分配 1G 的内存空间做数据读写缓存。

1.1.2 集群规划图

在这里插入图片描述

1.1.3 部署环境

1.四台服务器作为 ceph集群 OSD存储服务器,每台服务器支持两个网络,public网络针对客户端访问,cluster网络用于集群管理及数据同步,每台三块或以上的磁盘
172.31.6.134/192.168.2.134
172.31.6.135/192.168.2.135
172.31.6.136/192.168.2.136
172.31.6.137/192.168.2.137
各存储服务器磁盘划分:/dev/sdb /dev/sdc /dev/sdd #100G

2.三台服务器作为 ceph集群 Mon监视服务器,每台服务器可以和 ceph集群的 cluster网络通信。
172.31.6.131/192.168.2.131
172.31.6.132/192.168.2.132
172.31.6.133/192.168.2.133

3.两个 ceph-mgr管理服务器,可以和 ceph集群的 cluster网络通信。172.31.6.138/192.168.2.138
172.31.6.139/192.168.2.139

4.一个服务器用于部署 ceph集群即安装 Ceph-deploy,也可以和 ceph-mgr等复用。172.31.6.130/192.168.2.130

5.创建一个普通用户,能够通过 sudo执行特权命令,配置主机名解析,ceph集群部署过程中需要对各主机配置不同的主机名,另外如果是 centos系统则需要关闭各服务器的防火墙和 selinux。

1.2系统初始化

时间同步(各服务器时间必须一致)
关闭 selinux和防火墙
配置主机域名解析或通过 DNS解析

1.3部署rados集群

https://mirrors.aliyun.com/ceph/ #阿里云镜像仓库
https://mirrors.tuna.tsinghua.edu.cn/ceph/ #清华大学镜像源

1.3.1 准备仓库

各节点配置ceph yum 仓库
导入key文件:

#支持 https镜像仓库源:
~# apt install -y apt-transport-https ca-certificates curl software-properties-common

导入 key:
~# wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudoapt-key add -

Ubuntu 18.04.x

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main

1.3.2 创建 ceph集群部署用户 cephadmin

在包含 ceph-deploy节点的存储节点、mon节点和 mgr节点等创建 cephadmin用户。

Ubuntu:
[root@ceph-deploy ~]# groupadd -r -g 2088 cephadmin && useradd -r -m -s/bin/bash -u 2088 -g 2088 cephadmin && echo cephadmin:123456 | chpasswd

各服务器允许 cephadmin用户以 sudo执行特权命令:

echo "cephadmin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

1.3.3 配置免秘钥登录

在 ceph-deploy节点配置秘钥分发,允许 cephadmin用户以非交互的方式登录到各 cephnode/mon/mgr节点进行集群部署及管理操作,即在 ceph-deploy节点生成秘钥对,然后分发公钥到各被管理节点:

[root@ceph-deploy ~]# su - cephadmin
cephadmin@ceph-deploy:~$ ssh-keygen
cephadmin@ceph-deploy:~$ ssh-copy-id cephadmin@172.31.6.130 #各节点均需免密交互

1.3.4 配置主机域名解析

[cephadmin@ceph-deploy ~]$ vim /etc/hosts
172.31.6.130 ceph-deploy
172.31.6.134 ceph-node1
172.31.6.135 ceph-node2
172.31.6.136 ceph-node3
172.31.6.137 ceph-node4
172.31.6.131 ceph-mon1
172.31.6.132 ceph-mon2
172.31.6.133 ceph-mon3
172.31.6.138 ceph-mgr1
172.31.6.139 ceph-mgr2

1.3.5 安装ceph部署工具

注意:从16P版本开始,ceph-deploy 2.0.1包镜像仓库移除,需要使用python2安装ceph-deploy,切记勿使用python3。
在 ceph部署服务器安装部署工具 ceph-deploy

apt install python-pip
pip install ceph-deploy

1.3.6 初始化mon节点

[cephadmin@ceph-deploy ~]$ mkdir ceph-cluster #保存当前集群的初始化配置信息
cd ceph-cluster/
ceph-deploy new --cluster-network  192.168.0.0/21 --public-network 172.31.0.0/21   ecph-mon1

验证初始化:

[cephadmin@ceph-deploy ceph-cluster]$ ll
-rw-rw-r-- 1 cephadmin cephadmin    492 Oct 5 06:25 ceph.conf
-rw-rw-r-- 1 cephadmin cephadmin 700024 Oct 5 06:25 ceph-deploy-ceph.log
-rw------- 1 cephadmin cephadmin     73 Oct  5 06:25 ceph.mon.keyring

1.3.7 初始化ceph存储节点

1.准备镜像源
ceph-pacific 版本(16):
Ubuntu 18.04.x

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main
  1. 初始化 node 节点:
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy install --no-adjust-repos  --nogpgcheck ceph-node1 ceph-node2 ceph-node3

–no-adjust-repos #不修改已有的 apt 仓库源(默认会使用官方仓库)
–nogpgcheck #不进行校验

1.3.8 安装ceph-mon服务

1、部署ceph-mon服务:

root@ceph-mon1:~# apt-cache madison ceph-mon
root@ceph-mon1:~# apt install ceph-mon
root@ceph-mon2:~# apt install ceph-mon
root@ceph-mon3:~# apt install ceph-mon

2、ceph 集群添加 ceph-mon 服务:

[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy mon create-initial

3、验证mon节点

cephadmin@ceph-mon1:~/ceph-cluster$ ps -ef|grep ceph-mon
ceph         638       1  0 01:36 ?        00:00:01 /usr/bin/ceph-mon -f --cluster ceph --id ceph-node01 --setuser ceph --setgroup ceph
cephadm+    1909    1629  0 01:57 pts/0    00:00:00 grep ceph-mon

1.3.9 分发admin秘钥

在 ceph-deploy 节点把配置文件和 admin 密钥拷贝至 Ceph 集群需要执行 ceph 管理命令的节点,从而不需要后期通过 ceph 命令对 ceph 集群进行管理配置的时候每次都需要指定ceph-mon 节点地址和 ceph.client.admin.keyring 文件,另外各 ceph-mon 节点也需要同步ceph 的集群配置文件与认证文件。
如果在 ceph-deploy 节点管理集群:

~/ceph-cluster$ sudo apt install ceph-common #先安装 ceph 的公共组件
root@ceph-node1:~# apt install ceph-common -y #node 节点在初始化时已经安装
root@ceph-node2:~# apt install ceph-common -y
root@ceph-node3:~# apt install ceph-common -y
root@ceph-node4:~# apt install ceph-common -y

cephadmin@ceph-deploy:/home/ceph/ceph-cluster$ ceph-deploy adminceph-node1 ceph-node2 ceph-node3 ceph-node4

节点验证秘钥

cephadmin@ceph-node02:/etc/ceph$ ll
-rw-------  1 root root  151 Oct  8 23:38 ceph.client.admin.keyring
-rw-r--r--  1 root root  492 Oct 10 06:25 ceph.conf
-rw-r--r--  1 root root   92 Jul 21 10:38 rbdmap
-rw-------  1 root root    0 Oct  8 00:23 tmpLlCD_g

认证文件的属主和属组为了安全考虑,默认设置为了 root 用户和 root 组,如果需要 ceph用户也能执行 ceph 命令,那么就需要对 ceph 用户进行授权,

root@ceph-node1:~# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring
root@ceph-node2:~# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring
root@ceph-node3:~# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring
root@ceph-node4:~# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

1.3.10 部署 ceph-mgr 节点

[root@ceph-mgr1 ~]# apt install ceph-mgr
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy mgr create ceph-mgr1 #ceph集群添加mgr服务

验证mgr服务

cephadmin@ceph-mgr1:~/ceph-cluster$ ps -ef|grep mgr
ceph         641       1  0 01:36 ?        00:00:14 /usr/bin/ceph-mgr -f --cluster ceph --id ceph-node01 --setuser ceph --setgroup ceph
cephadm+    4062    1629  0 02:09 pts/0    00:00:00 grep mgr

1.3.11 测试ceph命令

[cephadmin@ceph-deploy ceph-cluster]$ ceph -s

cluster:
id: 2cbd1631-dda3-4033-ae99-582cc238f379
health: HEALTH_WARN
OSD count 0 < osd_pool_default_size 3
services:
mon: 1 daemons, quorum ceph-mon1
mgr: ceph-mgr1(active)
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

1.3.12 初始化存储节点

[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy install --release pacific ceph-node1 #擦除磁盘之前通过 deploy 节点对 node 节点执行安装 ceph 基本运行环境
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy install --release pacific ceph-node2 
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy install --release pacific ceph-node3 
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy install --release pacific ceph-node4

查询ceph node节点磁盘:

[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy disk list ceph-node1 #列出远端存储 node 节点的磁盘信息

使用 ceph-deploy disk zap 擦除各 ceph node 的 ceph 数据磁盘:

cephadmin@ceph-deploy:/home/ceph/ceph-cluster$ ceph-deploy disk zap ceph-node1 /dev/sdb
ceph-deploy disk zap ceph-node1 /dev/sdc
ceph-deploy disk zap ceph-node1 /dev/sdd

1.3.13 添加osd

ceph-deploy osd create ceph-node1 --data/dev/sdb
ceph-deploy osd create ceph-node1 --data/dev/sdc
ceph-deploy osd create ceph-node1 --data/dev/sdd
ceph-deploy osd create ceph-node2 --data/dev/sdb
ceph-deploy osd create ceph-node2 --data/dev/sdc
ceph-deploy osd create ceph-node2 --data/dev/sdd
ceph-deploy osd create ceph-node3 --data/dev/sdb
ceph-deploy osd create ceph-node3 --data/dev/sdc
ceph-deploy osd create ceph-node3 --data/dev/sdd
ceph-deploy osd create ceph-node4 --data/dev/sdb
ceph-deploy osd create ceph-node4 --data/dev/sdc
ceph-deploy osd create ceph-node4 --data/dev/sdd

服务验证:

cephadmin@ceph-node02:/etc/ceph$ ps -ef|grep osd
ceph        1082       1  0 02:03 ?        00:00:08 /usr/bin/ceph-osd -f --cluster ceph --id 3 --setuser ceph --setgroup ceph
ceph        1088       1  0 02:03 ?        00:00:08 /usr/bin/ceph-osd -f --cluster ceph --id 4 --setuser ceph --setgroup ceph
ceph        1092       1  0 02:03 ?        00:00:09 /usr/bin/ceph-osd -f --cluster ceph --id 5 --setuser ceph --setgroup ceph

1.3.14 ceph集群验证

root@ceph-node01:~# ceph -s
cluster:
id: 2cbd1631-dda3-4033-ae99-582cc238f379
health: HEALTH_OK

services:
mon: 2 daemons, quorum ceph-node01,ceph-node02 (age 2m)
mgr: ceph-node01(active, since 113s)
mds: 1/1 daemons up, 1 standby
osd: 9 osds: 9 up (since 117s), 9 in (since 13m)
rgw: 2 daemons active (2 hosts, 1 zones)

data:
volumes: 1/1 healthy
pools: 10 pools, 273 pgs
objects: 480 objects, 809 MiB
usage: 2.6 GiB used, 87 GiB / 90 GiB avail
pgs: 273 active+clean

2. ceph集群应用基础

2.1 块存储(rbd)基础

RBD(RADOS Block Devices)即为块存储设备,RBD 可以为 KVM、vmware 等虚拟化技术和云服务(如 OpenStack、kubernetes)提供高性能和无限可扩展性的存储后端,客户端基于 librbd 库即可将 RADOS 存储集群用作块设备,不过,用于 rbd 的存储池需要事先启用rbd 功能并进行初始化。

2.1.1 创建RBD

#创建存储池命令格式:
$ceph osd pool create <poolname> pg_num pgp_num {replicated|erasure}
$ceph osd pool create myrbd1 32 32 #创建存储池,指定 pg 和 pgp 的数量,pgp 是对存在于 pg 的数据进行组合存储,pgp 通常等于 pg 的值
$ ceph osd pool application enable myrbd1 rbd #对存储池启用 RBD 功能
$ rbd pool init -p myrbd1 #通过 RBD 命令对存储池初始化

2.1.2 创建并验证img

rbd 存储池并不能直接用于块设备,而是需要事先在其中按需创建映像(image),并把映像文件作为块设备使用,rbd 命令可用于创建、查看及删除块设备相在的映像(image),以及克隆映像、创建快照、将映像回滚到快照和查看快照等管理操作,例如,下面的命令能够创建一个名为 myimg1 的映像:

$ rbd create myimg1 --size 5G --pool myrbd1 #默认开启映像所有特性
$ rbd create myimg2 --size 3G --pool myrbd1 --image-format 2 --image-feature layering  #由于centos系统内核较低不支持更多的--image-feature特性、因此无法挂载使用,所以只开启部分特性。除了 layering 其他特性需要高版本内核支持

2.1.3 客户端使用块存储

2.1.3.1 客户端安装ceph-common

centos 系统客户端配置 yum 源及 ceph 认证文件:

#配置 yum 源:
# yum install epel-release
# yum install https://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch/ceph-release-1-1.el7.noarch.rpm -y
# yum install ceph-common
#从部署服务器同步认证文件:
[cephadmin@ceph-deploy ceph-cluster]$ scp ceph.conf ceph.client.admin.keyring
root@192.168.2.122:/etc/ceph/
2.1.3.2 客户端映射img
#由于centos内核版本较低,采用myimg2
[root@ceph-client ceph]# rbd -p myrbd1 map myimg2
2.1.3.3 客户端格式化磁盘并挂载使用
[root@ceph-client ceph]# lsblk
[root@ceph-client ceph]# fdisk -l /dev/rbd0
[root@ceph-client ceph]# mkfs.xfs /dev/rbd0
[root@ceph-client ceph]# mkdir /data
[root@ceph-client ceph]# mount /dev/rbd0 /data/  #依旧系统回收闲置空间
[root@ceph-client ceph]# mount -t xfs -o discard /dev/rbd0 /data/ #主要用户 SSD,立即触发闲置的块回收
[root@ceph-client data]# dd if=/dev/zero of=/data/test bs=1MB count=300  #使用此命令可做验证

2.1.3.4 设置开机自动挂载

编辑/etc/ceph/rbdmap文件,设置自动map

# RbdDevice             Parameters
#poolname/imagename     id=client,keyring=/etc/ceph/ceph.client.keyring
myrbd1/myimg2 id=user,keyring=/etc/ceph/ceph.client.user.keyring #后续对ceph用户做说明

设置rbdmap为开机启动

systemctl enable rbdmap

修改fstab,设置开机挂载

/dev/rbd0  /data          xfs     defaults,noatime,_netdev 0 0

2.2 ceph-FS文件存储

Ceph FS即 ceph filesystem,可以实现文件系统共享功能,客户端通过 ceph协议挂载并使用 ceph集群作为数据存储服务器。
Ceph FS需要运行 Meta Data Services(MDS)服务,其守护进程为 ceph-mds,ceph-mds进程管理与 cephFS上存储的文件相关的元数据,并协调对 ceph存储集群的访问。

2.2.1 部署MDS服务

在指定的 ceph-mds服务器部署 ceph-mds服务,可以和其它服务器混用(如 ceph-mon、ceph-mgr)

Ubuntu:
root@ceph-mgr1:~# apt-cache madison ceph-mds
root@ceph-mgr1:~# apt install ceph-mds=16.2.10-1bionic
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy mds create ceph-mgr1 #添加mds服务到ceph集群

2.2.2 创建 CephFS metadata和 data存储池

MDS服务目前还无法正常使用,需要为 MDS创建存储池用于保存 MDS的数据。
使用 CephFS之前需要事先于集群中创建一个文件系统,并为其分别指定元数据和数据相关的存储池,如下命令将创建名为 mycephfs的文件系统,它使用 cephfs-metadata作为元数据存储池,使用 cephfs-data为数据存储池:

[cephadmin@ceph-deploy ceph-cluster]$ ceph osd pool create cephfs-metadata 32 32pool 'cephfs-metadata' created #保存 metadata的 pool
ceph osd pool create cephfs-data 64 64  #保存数据的 pool

2.2.3 创建 cephFS并验证

# ceph fs new <fs_name> <metadata> <data> {--force}{--allow-dangerous-metadata-overlay}
[cephadmin@ceph-deploy ceph-cluster]$ ceph fs new mycephfs cephfs-metadatacephfs-data

验证cephfs状态

cephadmin@ceph-mgr1:~/ceph-cluster$ ceph fs status mycephfs
mycephfs - 0 clients
========
RANK  STATE       MDS         ACTIVITY     DNS    INOS   DIRS   CAPS  
 0    active  ceph-node01  Reqs:    0 /s    12     15     12      0   
      POOL         TYPE     USED  AVAIL  
cephfs-metadata  metadata   184k  27.4G  
  cephfs-data      data    1525M  27.4G  
STANDBY MDS  
ceph-mgr2  
MDS version: ceph version 16.2.10 (45fa1a083152e41a408d15505f594ec5f1b4fe17) pacific (stable)

2.2.4 客户端挂载cephFS

在 ceph的客户端测试 cephfs的挂载,需要指定 mon节点的 6789端口:

[cephadmin@ceph-deploy ceph-cluster]$ cat ceph.client.admin.keyring
[client.admin]
	key = AQAJOkJj4Q7YMBAAC9ONM7Oip3QIMeXzNBKRew==
	caps mds = "allow *"
	caps mgr = "allow *"
	caps mon = "allow *"
	caps osd = "allow *"

#ubuntu及 centos client挂载(内核版本 2.6.34和 3.6.34及以上):
root@ceph-client3-ubuntu1804:~# mount -t ceph 172.31.6.131:6789:/ /mnt -o name=admin,secret=AQAJOkJj4Q7YMBAAC9ONM7Oip3QIMeXzNBKRew==

验证挂载点:

root@ubuntu03:~# df -TH
Filesystem          Type      Size  Used Avail Use% Mounted on
udev                devtmpfs  2.1G     0  2.1G   0% /dev
tmpfs               tmpfs     412M  1.3M  410M   1% /run
/dev/sda1           ext4      106G   32G   69G  32% /
tmpfs               tmpfs     2.1G     0  2.1G   0% /dev/shm
tmpfs               tmpfs     5.3M     0  5.3M   0% /run/lock
tmpfs               tmpfs     2.1G     0  2.1G   0% /sys/fs/cgroup
tmpfs               tmpfs     412M     0  412M   0% /run/user/0
/dev/rbd0           xfs       3.3G  338M  2.9G  11% /data1
172.31.6.131:6789:/ ceph       31G  533M   30G   2% /mnt

开机挂载:

[root@ubuntu03: ~]# cat /etc/fstab
172.31.6.131:6789,172.31.6.132:6789,172.31.6.133:6789:/ /data ceph defaults,name=admin,secretfile=/etc/ceph/admin.key,_netdev 0 0
[root@ubuntu03: ~]# mount -a

2.3 ceph radosgw(RGW)对象存储网关

RadosGW是对象存储(OSS,Object Storage Service)的一种访问实现方式,RADOS网关也称为 Ceph对象网关、RadosGW、RGW,是一种服务,使客户端能够利用标准对象存储API来访问 Ceph集群,它支持 AWS S3和 Swift API。
在 ceph 0.8版本之后使用Civetweb(https://github.com/civetweb/civetweb)的 web服务器来响应 api请求,客户端使用http/https协议通过 RESTful API与 RGW通信,而 RGW则通过 librados与 ceph集群通信,RGW客户端通过 s3或者 swift api使用 RGW用户进行身份验证,然后 RGW网关代表用户利用 cephx与 ceph存储进行身份验证。

2.3.1 对象存储网关radosGW

数据不需要放置在目录层次结构中,而是存在于平面地址空间内的同一级别应用通过唯一地址来识别每个单独的数据对象每个对象可包含有助于检索的元数据通过 RESTful API在应用级别(而非用户级别)进行访问

2.3.2 bucket特性

存储空间(bucket)是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间,可以设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此可以通过灵活创建不同的存储空间来完成不同的管理功能。
同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。
每个用户可以拥有多个存储空间存储空间的名称在 OSS范围内必须是全局唯一的,一旦创建之后无法修改名称。存储空间内部的对象数目没有限制。
bucket命名规范:
只能包括小写字母、数字和短横线(-)。
必须以小写字母或者数字开头和结尾。
长度必须在 3-63字节之间。
存储桶名称不能使用用 IP地址格式。
Bucket名称必须全局唯一。

2.3.3 部署radosGW服务

root@ceph-mgr1:~# apt-cache madison radosgw
root@ceph-mgr1:~# apt install radosgw=16.2.10-1bionic
[cephadmin@ceph-deploy ceph-cluster]$ ceph-deploy --overwrite-conf rgw create ceph-mgr1

2.3.4 验证radosgw存储池

初始化完成 radosgw之后,会初始化默认的存储池如下:

[cephadmin@ceph-deploy ceph-cluster]$ ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log

推送配置文件:
ceph-deploy --overwrite-conf config push ceph-node03

待续

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值