Ceph概述
[toc]
分布式文件系统
- 分布式文件系统( Distributed File Syste ) 是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连
- 分布式文件系统的设计基于客户机/服务器模式
常用分布式文件系统
- Lustre
- Hadoop
- FastDFS
- Ceph
- GlusterFS
什么是 Ceph
- Ceph 是一个分布式文件系统
- 具有 高扩展 高可用 高性能 的特点
- Ceph 可以提供 块存储 文件系统存储 对象存储
- Ceph 可以提供 PB 级别的存储空间
- 软件定义存储作为存储行业的一大发展趋势,已经越来越受到市场的认可.
Ceph 组件
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 存储集群造成负担的前提下,执行诸如 ls
、find
等基本命令。
RADOS
可靠自主分布式对象存储.它是 ceph 存储的基础,保证一切都以对象形式存储.
RBD
RADOS block device 块设备,提供块存储
CephFS
提供文件提醒级别存储
RGW
RADOS 网关,提供对象存储
准备阶段
拓扑图配置
主机 | 主机名 | 角色 |
---|---|---|
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内网搭建.具体步骤略
存储集群
重新开始
如果您遇到麻烦并且想要重新开始,请执行以下操作以清除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
- 创建集群,指定monitor 节点
ceph-deploy new node1
检查ceph-deploy
with ls
和cat
当前目录中的输出。您应该看到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
- 如果有多个网络接口,可在Ceph配置文件 的部分下添加该设置。
tee >>ceph.conf <<EOF
public network = 192.168.1.0/24
EOF
- 如果要在IPv6环境中部署,请
ceph.conf
在本地目录中添加以下内容 :
echo ms bind ipv6 = true >> ceph.conf
- 安装Ceph包,默认会更新使用官方yum源,但是国内会超时.使用 --no-adjust-repo 参数不调整源
ceph-deploy install --no-adjust-repos node{1..3}
- 初始化监控服务并手机密钥
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 。
- 使用
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
- 部署管理器守护程序。( 仅适用于 luminious + 版本 >= 12.x)
ceph-deploy mgr create node1
- 添加三个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
,而不是卷的块设备的路径。
- 检查群集的运行状况。
ssh node1 sudo ceph health
您的群集应该报告HEALTH_OK
。您可以使用以下命令查看更完整的群集状态:
ssh node1 sudo ceph -s
扩展集群
启动并运行基本群集后,下一步是展开群集。添加Ceph元数据服务器node1
。然后添加Ceph Monitor和Ceph Manager node2
,node3
以提高可靠性和可用性。
添加元数据服务器
要使用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 网关节点,对应端口得到以下返回说明已经完成.
存储/检索对象数据
要将对象数据存储在Ceph存储集群中,Ceph客户端必须:
- 设置对象名称
- 指定一个池
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使您不必手动执行数据迁移或平衡。
块存储
可以为ceph-client
节点使用虚拟机,但不要在与Ceph存储群集节点相同的物理节点上执行以下过程
主机 | 主机名 | 角色 |
---|---|---|
test11 | client1 | clientt ( RBD ) |
test12 | client2 | clien2 ( CephFS ) |
安装 CEPH
需要提前在admin节点的hosts文件中写入此客户端,在客户端上配置cephuser用户,时间同步,admin对此服务器的免密登陆,ceph 的yum源.
- 在admin节点上,用于
ceph-deploy
在ceph-client
节点上安装Ceph.
ceph-deploy install client1
- 在管理节点上,使用
ceph-deploy
复制Ceph的配置文件和ceph.client.admin.keyring
到ceph-client
。
ceph-deploy admin client1
- 该
ceph-deploy
实用程序将密钥环复制到/etc/ceph
目录。确保密钥环文件具有适当的读取权限
chmod a+r /etc/ceph/ceph.client.admin.keyring
创建块设备
- 在管理节点上,使用该
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
- 在管理节点上,使用该
rbd
工具初始化池以供RBD使用:
rbd pool init rbd
配置块设备
- 在
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
- 在
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
- 通过在
ceph-client
节点上创建文件系统来使用块设备。
sudo mkfs.ext4 -m0 /dev/rbd/{pool-name}/foo
- 在
ceph-client
节点上挂载文件系统。
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/{pool-name}/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
- (可选)将块设备配置为自动映射并在引导时挂载(并在关闭时卸载/取消映射) - 请参阅rbdmap联机帮助页。
示例
编辑 /etc/ceph/rbdmap 文件,rbd map POOLNAME/IMAGENAME --PARAM1 VAL1 --PARAM2 VAL2
POOLNAME
为 rbd
, IMAGENAME
为 foo
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
文件存储
先决条件
-
验证您是否具有适当版本的Linux内核。有关详细信息,请参阅OS建议
lsb_release -a uname -r
-
在admin节点上,用于
ceph-deploy
在ceph-client
节点上安装Ceph 。ceph-deploy install ceph-client
-
确保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存储集群在默认情况下启用身份验证的情况下运行。您应该有一个包含密钥的文件(即,不是密钥环本身)。要获取特定用户的密钥,请执行以下过程:
-
在密钥环文件中标识用户的密钥。例如:
cat ceph.client.admin.keyring
-
复制将使用已安装的CephFS文件系统的用户的密钥。它应该看起来像这样:
[client.admin] key = AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
打开文本编辑器。
-
将密钥粘贴到空文件中。它应该看起来像这样:
AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
使用用户
name
作为属性保存文件(例如,admin.secret
)。确保文件权限适合用户,但对其他用户不可见。
内核驱动程序
将CephFS挂载为内核驱动程序。
sudo mkdir /mnt/mycephfs
sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs
Ceph存储集群默认使用身份验证。指定用户name
和secretfile
您在“ 创建加密文件”部分中创建的用户。例如:
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对象网关
执行您的预安装步骤
client-node
。如果你打算使用Civetweb的默认端口7480
,则必须使用开它firewall-cmd
或iptables
。有关更多信息,请参阅操作前检查清单。-
从管理服务器的工作目录中,在
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对象网关实例
-
要更改默认端口(例如,更改为端口
80
),请修改Ceph配置文件。[client.rgw.client-node] rgw_frontends = "civetweb port=80"
注意: 确保
port=<port-number>
在rgw_frontends
键/值对之间不留空格。
-
要使新端口设置生效,请重新启动Ceph对象网关。在Red Hat Enterprise Linux 7和Fedora上,运行以下命令:
sudo systemctl restart ceph-radosgw.service
-
应该能够进行未经身份验证的请求,并收到回复
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对象网关指南。