6 Ceph

Ceph概述

[toc]

分布式文件系统

  • 分布式文件系统( Distributed File Syste ) 是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连
  • 分布式文件系统的设计基于客户机/服务器模式

常用分布式文件系统

  • Lustre
  • Hadoop
  • FastDFS
  • Ceph
  • GlusterFS

什么是 Ceph

  1. Ceph 是一个分布式文件系统
  2. 具有 高扩展 高可用 高性能 的特点
  3. Ceph 可以提供 块存储 文件系统存储 对象存储
  4. Ceph 可以提供 PB 级别的存储空间
  5. 软件定义存储作为存储行业的一大发展趋势,已经越来越受到市场的认可.

Ceph 组件

1550248027852

OSDs

存储设备,真正存储数据的组件.一般来说,每块参与存储的磁盘都需要一个 OSD 进程

Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。

Monitor

集群监控组件,因为保存集群状态,要放置单点故障所以需要多台.另外,MON 需要是奇数,如果出现意见分歧,采用投票机制,少数服从多数

Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

MDS

文件系统元数据,只有 CephFS 需要它.元数据: metadata,存储数据的各种信息,例如权限路径位置.

Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 lsfind 等基本命令。

RADOS

可靠自主分布式对象存储.它是 ceph 存储的基础,保证一切都以对象形式存储.

RBD

RADOS block device 块设备,提供块存储

CephFS

提供文件提醒级别存储

RGW

RADOS 网关,提供对象存储

准备阶段

拓扑图配置

1550404780508
主机 主机名 角色
test7 admin-node ceph-deploy
test8 node1 mon.node1 osd.0
test9 node2 osd.1
test10 node3 osd.2

基础环境

名称 版本
Linux OS CentOS Linux release 7.6.1810 (Core)
ceph-deploy 2.0.1
ceph mimic 13.2.4

所有节点准备环境

配置 hosts

为方便部署,hosts中根据服务器 配置 test 主机别名

tee > /etc/hosts <<EOF
192.168.1.107 admin-node test7
192.168.1.108 node1 test8   
192.168.1.109 node2 test9   
192.168.1.110 node3 test10
192.168.1.111 client1 test11
192.168.1.112 client2 test12
EOF

将 hosts 文件同步到集群其他服务器

for i in {8..12};do scp /etc/hosts root@test$i:/etc/;done 

根据 hosts 修改对应主机 hostname

hostnamectl set-hostname admin-node
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname client1
hostnamectl set-hostname client2

添加用户

添加用户,授权 sudo

useradd -d /home/cephuser -m cephuser
echo "cephuser:123123" | chpasswd
echo "cephuser ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser

为集群所有节点添加用户,授权 sudo

for i in {7..10}
do
ssh test$i 'useradd -d /home/cephuser -m cephuser && echo "cephuser:123123" | chpasswd && echo "cephuser ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/cephuser && chmod 0440 /etc/sudoers.d/cephuser && hostname'
done

配置 ssh

配置集群内 server 通过 以上添加的用户 ( cephuser ) 互相免密登陆.

切换至 cephuser 用户

su - cephuser

集群内所有节点生成 cephuser 用户的公钥

for i in {7..10}
do
ssh cephuser@test$i 'ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa'
done

将所有节点公钥 写入 .ssh/authorized_keys

cat .ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+pG3aeCPBAO8XTasqKKz/P0MhHEyXfjHRZ79MLEraSHOAkxCX6DoOM37tT6eAHADrGNgLOqYdDVxG2K/+VQ0AlqBe4jg1vWMutXr9wWQuBTvbejowfH6u5u7b5duuCuQr6fnW5ClTe0S5Au4X8/iwEtpK3JvCCZSb4os1OWt0fPEj2z+sQAuvsNNGXxcRD0HAevi82p8SqR9vQLtWaY5dKsnDUror9ry3ECwa2nPj2mlgCjV3NkLW1dgsNsOtmKjhvLRh7VWZHy/yaxBh1U1N2/EdIZVomhU+BpSwTbS9Msfbbjvg3oEAon8kEEp45K/Hbv5gJft7mEreVgmRGvy1 cephuser@test7
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLvy20vvbGe8pG0EbCDgfOIyFWWGjz6JbeFB0/kvNentaMl6QSYXjZvbNAXirfWKFuALlrAaBks7dMTup/3xwUm0yfs5VpolO3OYPI1jPrx1GKbmJZJRMJIn7hOJnM5K2vH/NqZkcgLkcqcqW9xLADf+FZ0bDFfAyZPg+V8ZHDNvvKnPPX6UhNCgzGpxHrGrF3DT8TDmxfU6hGmlWwHRzs8wgZNUKZqt9tp+qXTF8X2HzHbKTsT3j17B1wNrMXiNP5Sgvf+BpdXmI3NVnxQUn1vA5nIrB3VXNSuDe21PfvM9s5Cvpiaoq3tMfiqfIS55GgaHmS9HVoVC3GL+O2WZN cephuser@test8
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdx8igKmEeGNQUafXVMgelumbC3dL0oiYPtu8zjCL/IZBWBMq9+78lQ73x2/tE9DtWJShx2iZ9xDcL+QCNV/fiCnd9PCP6mdUGo9HxoC0Bw2dd1L4cDtYZ6UZ8iOWCrYGf8lAP1Q05eTUMvYd2R9PyJmhIAwxgr9CVG1uwEsi+uDV8QXSTK8z+VCGMpFouDaflZjjOb/tsIHcMQWB5B98MF6wY0/pObwXbm8pZfDUr8hkfbbCYkI7H1qYomk4CsOf4wveUKzppInZEqrv2YYe04am98CuIuWU5s3WQ+MuG9jS1rhdIrzz81k7y6KWJuK4UIl50XP3NbMLLIjWCEUvT cephuser@test9
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Z3Q0UuQ16Wpu8mrW9TFg4EXXzbkoMiWT8E3gy5VRItcK4VcYHqXAYpxNlt4iaSZLcX+s1QQ2L0A8ohWXOGerGpAu4Ac7XhPSv0R44ihcIP+FTR8X9UWmjYCUJzKCjzCyCK1SOV47cEzfLPRjtLHoKToqAFqW55KU4tZItwJI94HfZ0+dsA6PLk9H3Cnsl0RV9ZV4Zb0C4u5nZ8+71qe2r4FcNg/65Vniezd4NuwIW9/gpdLM3csyu7ukxaXgz7D7CLVJBskgzo25IXKBs2mwLMaHuUSFzs/fECXsY5FvPDzG2LbHvqIoml1jruk0nDMRC4JZN7E+0EZg9K0lvwIn cephuser@test10

此文件权限必须为 600 用户用户组为 cephuser,否则 ssh免密失败

chown cephuser.cephuser ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ll ~/.ssh/authorized_keys 
-rw------- 1 cephuser cephuser 1585 Feb 17 21:24 /home/cephuser/.ssh/authorized_keys

将 授权密钥文件 authorized_keys 同步到所有节点,则所有节点可以互相免密登陆.

for i in {8..10};do scp .ssh/authorized_keys cephuser@test$i:~/.ssh/;done

验证免密登陆

for i in {7..10};do ssh test$i "id; hostname"; done

第一次登陆需要手动输入yes,可同步 known_hosts 文件到所有节点解决

for i in {8..10};do scp .ssh/known_hosts test$i:~/.ssh/;done

修改deploy主机上的~/.ssh/config文件,此步只需修改deploy节点

tee ~/.ssh/config <<EOF
#关键词
Host ceph-deploy
   #主机名
   Hostname admin-node
   User cephuser
Host osd0
   Hostname node1
   User cephuser
Host osd1
   Hostname node2
   User cephuser
Host osd2
   Hostname nde3
   User cephuser
EOF

修改权限

chmod 644 ~/.ssh/config

YUM配置

rpm-mimic 为对应 ceph 版本,可替换成自己需要的

# 保留文本内的 $变量 EOF 前加转义符 或者 EOF添加双引号 "EOF"
tee /etc/yum.repos.d/ceph.repo <<\EOF
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
EOF

将 yum 仓库同步到所有节点

for i in {7..10};do sudo scp /etc/yum.repos.d/ceph.repo test$i:/etc/yum.repos.d/ceph.repo;done

时间同步

ceph集群强依赖时间同步,否则会告警出错,将所有节点指向时间同步服务器.推荐chrony内网搭建.具体步骤略

存储集群

1550411916524

重新开始

如果您遇到麻烦并且想要重新开始,请执行以下操作以清除Ceph软件包,并清除其所有数据和配置:

# 清除ceph安装包
ceph-deploy purge {ceph-node} [{ceph-node}]
# 清除ceph安装数据
ceph-deploy purgedata {ceph-node} [{ceph-node}]
# 清除ceph生成kyes
ceph-deploy forgetkeys
rm ceph.*

创建集群

使用 ceph-deploy 创建一个集群,先在deploy节点,安装 ceph-deploy

sudo yum install ceph-deploy

创建一个文件夹,用来存放部署生成的各种信息

mkdir my-cluster
cd my-cluster
  1. 创建集群,指定monitor 节点
ceph-deploy new node1

检查ceph-deploywith lscat当前目录中的输出。您应该看到Ceph配置文件(ceph.conf),监视器密钥密钥环(ceph.mon.keyring)和新集群的日志文件

-rw-rw-r-- 1 cephuser cephuser    252 Feb 18 13:50 ceph.conf
-rw-rw-r-- 1 cephuser cephuser 319194 Feb 19 21:48 ceph-deploy-ceph.log
-rw------- 1 cephuser cephuser     73 Feb 18 13:49 ceph.mon.keyring
  1. 如果有多个网络接口,可在Ceph配置文件 的部分下添加该设置。
tee >>ceph.conf <<EOF
public network = 192.168.1.0/24
EOF
  1. 如果要在IPv6环境中部署,请ceph.conf在本地目录中添加以下内容 :
echo ms bind ipv6 = true >> ceph.conf
  1. 安装Ceph包,默认会更新使用官方yum源,但是国内会超时.使用 --no-adjust-repo 参数不调整源
ceph-deploy install --no-adjust-repos node{1..3}
  1. 初始化监控服务并手机密钥
ceph-deploy mon create-initial

完成此过程后,您的本地目录应具有以下密钥环

  • ceph.client.admin.keyring
  • ceph.bootstrap-mgr.keyring
  • ceph.bootstrap-osd.keyring
  • ceph.bootstrap-mds.keyring
  • ceph.bootstrap-rgw.keyring
  • ceph.bootstrap-rbd.keyring
  • ceph.bootstrap-rbd-mirror.keyring

注意: 如果此过程失败并显示类似于“无法找到/etc/ceph/ceph.client.admin.keyring”的消息,请确保ceph.conf中为监控节点列出的IP是公共IP,而不是私有IP 。

  1. 使用ceph-deploy复制配置文件和管理密钥到您的管理节点和你的Ceph的节点,以便您可以使用ceph CLI,而无需指定监视地址和 ceph.client.admin.keyring每次执行命令
ceph-deploy admin node{1..3}

​ 修改所有节点key文件权限,否则无法正确识别

for i in {8..10};do ssh test$i 'sudo chmod a+r /etc/ceph/ceph.client.admin.keyring';done
  1. 部署管理器守护程序。( 仅适用于 luminious + 版本 >= 12.x)
ceph-deploy mgr create node1
  1. 添加三个OSD。每个节点中已有一个未使用的磁盘/dev/sdb
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

注意: 如果要在LVM卷上创建OSD,则参数 --data 必须volume_group/lv_name,而不是卷的块设备的路径。

  1. 检查群集的运行状况。
ssh node1 sudo ceph health

您的群集应该报告HEALTH_OK。您可以使用以下命令查看更完整的群集状态:

ssh node1 sudo ceph -s

扩展集群

启动并运行基本群集后,下一步是展开群集。添加Ceph元数据服务器node1。然后添加Ceph Monitor和Ceph Manager node2node3以提高可靠性和可用性。

1550607588214

添加元数据服务器

要使用CephFS,您至少需要一个元数据服务器。执行以下操作以创建元数据服务器:

ceph-deploy mds create node1

添加监视器

Ceph存储集群需要至少运行一个Ceph Monitor和Ceph Manager。为了实现高可用性,Ceph存储集群通常运行多个Ceph监视器,因此单个Ceph监视器的故障不会导致Ceph存储集群崩溃。Ceph使用Paxos算法,该算法需要大多数监视器(即大于N / 2,其中N是监视器的数量)才能形成法定数量。虽然这不是必需的,但监视器的数量往往更好。

将两个Ceph监视器添加到您的群集:

# 官方文档显示可以一次添加多个节点 ceph-deploy mon add node2 node3,这里测试需要分开添加,写多个时会提示第二个节点参数报错
ceph-deploy mon add node2
ceph-deploy mon add node3

一旦你添加了新的Ceph监视器,Ceph将开始同步监视器并形成一个法定人数。您可以通过执行以下操作来检查仲裁状态:

ceph quorum_status --format json-pretty

添加管理进程

Ceph Manager守护进程以活动/备用模式运行。部署其他管理器守护程序可确保在一个守护程序或主机发生故障时,另一个守护程序或主机可以在不中断服务的情况下接管。

要部署其他管理器守护程序

ceph-deploy mgr create node2 node3

您应该在以下输出中看到备用管理器:

ssh node1 sudo ceph -s

添加RGW实例

要使用Ceph的Ceph对象网关组件,必须部署RGW实例。执行以下命令以创建RGW的新实例:

ceph-deploy rgw create node1

默认情况下,RGW实例将侦听端口7480.可以通过在运行RGW的节点上编辑ceph.conf来更改此设置,如下所示:

# IPv4
[client]
rgw frontends = civetweb port=80
# IPv6
[client]
rgw frontends = civetweb port=[::]:80

修改配置后重启生效

systemctl restart ceph-radosgw.target

netstat -nltp|grep radosgw
tcp    0    0 0.0.0.0:80      0.0.0.0:*      LISTEN      6269/radosgw 

访问 radowgw 网关节点,对应端口得到以下返回说明已经完成.

1550608368847

存储/检索对象数据

要将对象数据存储在Ceph存储集群中,Ceph客户端必须:

  1. 设置对象名称
  2. 指定一个

Ceph客户端检索最新的集群映射,CRUSH算法计算如何将对象映射到放置组,然后计算如何动态地将放置组分配给Ceph OSD守护进程。要查找对象位置,您只需要对象名称和池名称。例如:

ceph osd map {poolname} {object-name}

练习:找到一个对象

作为练习,让我们创建一个对象。使用命令行上的命令指定对象名称,包含某些对象数据的测试文件的路径和池名称 。例如:rados put

echo "hello" > 1.txt
#创建池 mytest
ceph osd pool create mytest 8

rados put {object-name} {file-path} --pool=mytest
#存储文件 testfile.txt 指定对象 test-object-1 池 mytest
rados put test-object-1 1.txt --pool=mytest

要验证Ceph存储集群是否存储了该对象,请执行以下命令:

rados -p mytest ls

现在,确定对象位置:

ceph osd map {pool-name} {object-name}
ceph osd map mytest test-object-1

Ceph应该输出对象的位置。例如:

osdmap e58 pool 'mytest' (6) object 'test-object-1' -> pg 6.74dc35e2 (6.2) -> up ([1,0,2], p1) acting ([1,0,2], p1)

要删除测试对象,只需使用该 命令将其删除即可。rados rm

rados rm test-object-1 --pool=mytest

要删除mytest池,则需要先添加配置允许监控删除池,然后重启mon进程

echo "mon_allow_pool_delete = true" >> /etc/ceph/ceph.conf
systemctl restart ceph-mon.target

删除时,需要输入两遍池名称和--yes-i-really-really-mean-it参数

ceph osd pool rm mytest mytest --yes-i-really-really-mean-it

随着集群的发展,对象位置可能会动态变化。Ceph动态重新平衡的一个好处是Ceph使您不必手动执行数据迁移或平衡。

块存储

1550577527436

注意: Ceph块设备也称为RBDRADOS 块设备。

可以为ceph-client节点使用虚拟机,但不要在与Ceph存储群集节点相同的物理节点上执行以下过程

主机 主机名 角色
test11 client1 clientt ( RBD )
test12 client2 clien2 ( CephFS )

安装 CEPH

需要提前在admin节点的hosts文件中写入此客户端,在客户端上配置cephuser用户,时间同步,admin对此服务器的免密登陆,ceph 的yum源.

  1. 在admin节点上,用于ceph-deployceph-client节点上安装Ceph.
ceph-deploy install client1
  1. 在管理节点上,使用ceph-deploy复制Ceph的配置文件和ceph.client.admin.keyringceph-client
ceph-deploy admin client1
  1. ceph-deploy实用程序将密钥环复制到/etc/ceph 目录。确保密钥环文件具有适当的读取权限
chmod a+r /etc/ceph/ceph.client.admin.keyring

创建块设备

  1. 在管理节点上,使用该ceph工具创建池 (建议使用名称'rbd')
ceph osd pool create rbd 0

ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
7 cephfs_data
8 cephfs_metadata
9 rbd
  1. 在管理节点上,使用该rbd工具初始化池以供RBD使用:
rbd pool init rbd

配置块设备

  1. ceph-client节点上,创建块设备映像。foo 为 imagename 即映像名.
rbd create foo --size 4096 --image-feature layering [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]

​ 例如

rbd create foo --size 4096 --image-feature layering -m 192.168.1.108 -k /etc/ceph/ceph.client.admin.keyring -p rbd
  1. ceph-client节点上,将图像映射到块设备
sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]

​ 例如

rbd map foo --name client.admin -m 192.168.1.108 -k /etc/ceph/ceph.client.admin.keyring -p rbd

​ 得到结果 /dev/rbd1

  1. 通过在ceph-client 节点上创建文件系统来使用块设备。
sudo mkfs.ext4 -m0 /dev/rbd/{pool-name}/foo
  1. ceph-client节点上挂载文件系统。
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/{pool-name}/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
  1. (可选)将块设备配置为自动映射并在引导时挂载(并在关闭时卸载/取消映射) - 请参阅rbdmap联机帮助页

示例

编辑 /etc/ceph/rbdmap 文件,rbd map POOLNAME/IMAGENAME --PARAM1 VAL1 --PARAM2 VAL2

POOLNAMErbd, IMAGENAMEfoo

rbd/foo    id=admin,keyring=/etc/ceph/ceph.client.admin.keyring

文件中的每一行都包含两个字符串,这两行转换为以下命令:rbdmap

rbd map rbd/foo --id admin --keyring /etc/ceph/ceph.client.admin.keyring
rbd unmap rbd/foo --id admin --keyring /etc/ceph/ceph.client.admin.keyring

如果是XFS文件系统,则相应的/etc/fstab 条目可能如下所示:

/dev/rbd/rbd/foo /mnt/ceph-block-device xfs noauto 0 0

创建映像并填充/etc/ceph/rbdmap文件后,使映像自动映射并在启动时挂载只需启用该单元:

systemctl enable rbdmap.service

文件存储

先决条件

  1. 验证您是否具有适当版本的Linux内核。有关详细信息,请参阅OS建议

    lsb_release -a
    uname -r
    
  2. 在admin节点上,用于ceph-deployceph-client节点上安装Ceph 。

    ceph-deploy install ceph-client
    
  3. 确保Ceph存储群集正在运行且处于某种 状态。此外,请确保至少运行一个Ceph元数据服务器active + clean

    ceph -s [-m {monitor-ip-address}] [-k {path/to/ceph.client.admin.keyring}]
    

创建文件系统

您已经创建了MDS(存储群集快速入门),但在创建某些池和文件系统之前它不会变为活动状态。请参阅创建Ceph文件系统

Ceph文件系统至少需要两个RADOS池,一个用于数据,一个用于元数据。配置这些池时,您可能会考虑:

  • 对元数据池使用更高的复制级别,因为此池中的任何数据丢失都可能导致整个文件系统无法访问。
  • 使用较低延迟的存储(如SSD)作为元数据池,因为这将直接影响客户端上文件系统操作的观察延迟。

请参阅以了解有关管理池的更多信息。例如,要创建两个具有默认设置以用于文件系统的池,您可以运行以下命令:

ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
ceph fs new <fs_name> cephfs_metadata cephfs_data

例如

ceph osd pool create cephfs_data 9
pool 'cephfs_data' created

ceph osd pool create cephfs_metadata 10
pool 'cephfs_metadata' created

ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 8 and data pool 7

创建加密文件

Ceph存储集群在默认情况下启用身份验证的情况下运行。您应该有一个包含密钥的文件(即,不是密钥环本身)。要获取特定用户的密钥,请执行以下过程:

  1. 在密钥环文件中标识用户的密钥。例如:

    cat ceph.client.admin.keyring
    
  2. 复制将使用已安装的CephFS文件系统的用户的密钥。它应该看起来像这样:

    [client.admin]
       key = AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
    
  3. 打开文本编辑器。

  4. 将密钥粘贴到空文件中。它应该看起来像这样:

    AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
    
  5. 使用用户name作为属性保存文件(例如,admin.secret)。

  6. 确保文件权限适合用户,但对其他用户不可见。

内核驱动程序

将CephFS挂载为内核驱动程序。

sudo mkdir /mnt/mycephfs
sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs

Ceph存储集群默认使用身份验证。指定用户namesecretfile您在“ 创建加密文件”部分中创建的用户。例如:

sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret

注意: 在管理节点上安装CephFS文件系统,而不是服务器节点。

例如

sudo mount -t ceph 192.168.1.108:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret

用户空间文件系统(FUSE)

将CephFS挂载为用户空间(FUSE)中的文件系统。

yum install ceph-fuse -y
sudo mkdir ~/mycephfs
sudo ceph-fuse -m {ip-address-of-monitor}:6789 ~/mycephfs

Ceph存储集群默认使用身份验证。如果密钥环不在默认位置(即),请指定密钥环/etc/ceph

sudo ceph-fuse -k ./ceph.client.admin.keyring -m 5

例如

yum install ceph-fuse
sudo mkdir /mnt/mycephfs
ceph-fuse -m 192.168.1.108:6789 /mnt/mycephfs/

附加信息

有关其他信息,请参阅CephFS。CephFS不如Ceph Block Device和Ceph Object Storage稳定。 如果遇到问题,请参阅故障排除

对象存储

安装CEPH对象网关

  1. 执行您的预安装步骤client-node。如果你打算使用Civetweb的默认端口7480,则必须使用开它 firewall-cmdiptables。有关更多信息,请参阅操作前检查清单

  2. 从管理服务器的工作目录中,在client-node节点上安装Ceph对象网关包。例如:

    ceph-deploy install --rgw <client-node> [<client-node> ...]
    

创建CEPH对象网关实例

从管理服务器的工作目录中,在上创建Ceph对象网关的实例client-node。例如:

ceph-deploy rgw create <client-node>

网关运行后,您应该能够在端口上访问它7480。(例如,http://client-node:7480)。

配置CEPH对象网关实例

  1. 要更改默认端口(例如,更改为端口80),请修改Ceph配置文件。

    [client.rgw.client-node]
    rgw_frontends = "civetweb port=80"
    

    注意: 确保port=<port-number>rgw_frontends键/值对之间不留空格。

  1. 要使新端口设置生效,请重新启动Ceph对象网关。在Red Hat Enterprise Linux 7和Fedora上,运行以下命令:

    sudo systemctl restart ceph-radosgw.service
    
  1. 应该能够进行未经身份验证的请求,并收到回复

    http://<client-node>:80
    

    应该得到这样的回应:

    <?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>
    

    有关其他管理和API详细信息,请参阅配置Ceph对象网关指南。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容