阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ceph RBD CephFS 存储

447次阅读
没有评论

共计 9535 个字符,预计需要花费 24 分钟才能阅读完成。

Ceph RBD  CephFS 存储

环境准备:(这里只做基础测试, ceph-manager , ceph-mon, ceph-osd 一共三台)

10.6.0.140 = ceph-manager

10.6.0.187 = ceph-mon-1

10.6.0.188 = ceph-osd-1

10.6.0.94 = node-94

注:ceph 对时间要求很严格,一定要同步所有的服务器时间

一、在 manager 上面修改 /etc/hosts :

10.6.0.187 ceph-mon-1
10.6.0.188 ceph-osd-1
10.6.0.94 node-94

二、并修改各服务器上面的 hostname (说明:ceph-deploy 工具都是通过主机名与其他节点通信)

hostnamectl –static set-hostname ceph-manager
hostnamectl –static set-hostname ceph-mon-1
hostnamectl –static set-hostname ceph-osd-1
hostnamectl –static set-hostname node-94

三、配置 manager 节点与其他节点 ssh key 访问

[root@ceph-manager ~]# ssh-keygen

将 key 发送到各节点中

[root@ceph-manager ~]#ssh-copy-id ceph-mon-1
[root@ceph-manager ~]#ssh-copy-id ceph-osd-1

四、在 manager 节点安装 ceph-deploy

[root@ceph-manager ~]#yum -y install CentOS-release-ceph
[root@ceph-manager ~]#yum makecache
[root@ceph-manager ~]#yum -y install ceph-deploy ntpdate

在其他各节点安装 ceph 的 yum 源

[root@ceph-mon-1 ~]# yum -y install centos-release-ceph
[root@ceph-mon-1 ~]# yum makecache

[root@ceph-osd-1 ~]# yum -y install centos-release-ceph
[root@ceph-osd-1 ~]# yum makecache

五、配置 ceph 集群

创建 ceph 目录
[root@ceph-manager ~]#mkdir -p /etc/ceph
[root@ceph-manager ~]#cd /etc/ceph

创建监控节点:
[root@ceph-manager /etc/ceph]#ceph-deploy new ceph-mon-1

执行完毕会生成 ceph.conf ceph.log ceph.mon.keyring 三个文件

编辑 ceph.conf 增加 osd 节点数量
在最后增加:
osd pool default size = 1

使用 ceph-deploy 在所有机器安装 ceph

[root@ceph-manager /etc/ceph]# ceph-deploy install ceph-manager ceph-mon-1 ceph-osd-1

如果出现错误,也可以到各节点中直接 yum -y install ceph ceph-radosgw 进行安装

初始化监控节点

[root@ceph-manager /etc/ceph]# ceph-deploy mon create-initial

osd 节点创建存储空间

[root@ceph-osd-1 ~]# mkdir -p /opt/osd1

在管理节点上启动 并 激活 osd 进程

[root@ceph-manager ~]# ceph-deploy osd prepare ceph-osd-1:/opt/osd1
[root@ceph-manager ~]# ceph-deploy osd activate ceph-osd-1:/opt/osd1

把管理节点的配置文件与 keyring 同步至其它节点

[root@ceph-manager ~]# ceph-deploy admin ceph-mon-1 ceph-osd-1

查看集群健康状态 (HEALTH_OK 表示 OK)

[root@ceph-manager ~]# ceph health
HEALTH_OK

客户端 挂载: ceph 有多种挂载方式, rbd 块设备映射,cephfs 挂载 等

注:
在生产环境中,客户端应该对应 pool 的权限,而不是 admin 权限

[root@ceph-manager ~]# ssh-copy-id node-94

客户端安装 ceph
[root@ceph-manager ~]# ceph-deploy install node-94

或者 登陆 node-94 执行 yum -y install ceph ceph-radosgw

如果 ssh 非 22 端口,会报错 可使用 scp 传

scp - P 端口 ceph.conf node-94:/etc/ceph/
scp - P 端口 ceph.client.admin.keyring node-94:/etc/ceph/

创建一个 pool
[root@ceph-manager ~]# ceph osd pool create press 100
pool ‘press’ created

设置 pool 的 pgp_num
[root@ceph-manager ~]# ceph osd pool set press pgp_num 100

查看创建的 pool
[root@ceph-manager ~]# ceph osd lspools
0 rbd,1 press,

设置副本数为 2 (osd 必须要大于或者等于副本数,否则报错, 千万注意)
[root@ceph-manager ~]# ceph osd pool set press size 2

创建一个 100G 名为 image 镜像
[root@ceph-manager ~]# rbd create -p press –size 100000 image

查看一下镜像:
[root@ceph-manager ~]# rbd -p press info image
rbd image ‘image’:
 size 100000 MB in 25000 objects
 order 22 (4096 kB objects)
 block_name_prefix: rb.0.104b.74b0dc51
 format: 1

客户端块存储挂载:
在 node-94 上面 map 镜像
[root@node-94 ~]# rbd -p press map image
/dev/rbd0

格式化 image
[root@node-94 ~]# mkfs.xfs /dev/rbd0

创建挂载目录
[root@node-94 ~]# mkdir /opt/rbd

挂载 rbd
[root@node-94 ~]# mount /dev/rbd0 /opt/rbd

[root@node-94 ~]# time dd if=/dev/zero of=haha bs=1M count=1000

取消 map 镜像
[root@node-94 ~]# umount /opt/rbd
[root@node-94 ~]# rbd unmap /dev/rbd0

客户端 cephFS 文件系统 (cephFS 必须要有 2 个 osd 才能运行,请注意):

使用 cephFS 集群中必须有 mds 服务

创建 mds 服务 (由于机器有限就在 mon 的服务器上面 创建 mds 服务)
[root@ceph-manager ~]# ceph-deploy mds create ceph-mon-1

创建 2 个 pool 做为文件系统的 data 与 metadata

[root@ceph-manager ~]# ceph osd pool create cephfs_data 99
pool ‘cephfs_data’ created

[root@ceph-manager ~]# ceph osd pool create cephfs_metadata 99
pool ‘cephfs_metadata’ created

创建 文件系统:
[root@ceph-manager ~]# ceph fs new jicki cephfs_metadata cephfs_data
new fs with metadata pool 6 and data pool 5

查看所有文件系统:
[root@ceph-manager ~]# ceph fs ls
name: jicki, metadata pool: cephfs_metadata, data pools: [cephfs_data]

删除一个文件系统
[root@ceph-manager ~]# ceph fs rm jicki –yes-i-really-mean-it

客户端挂载 cephFS

安装 ceph-fuse:
[root@node-94 ~]# yum install ceph-fuse -y

创建挂载目录:
[root@node-94 ~]# mkdir -p /opt/jicki
[root@node-94 ~]# ceph-fuse /opt/jicki
[root@node-94 ~]# df -h|grep ceph
ceph-fuse 1.6T 25G 1.6T 2% /opt/jicki

基于 docker ceph-rbd-volume-plugin

六、ceph 相关命令:

一、manager 篇

查看实时的运行状态信息:
[root@ceph-manager ~]# ceph -w

查看状态信息:
[root@ceph-manager ~]# ceph -s

查看存储空间:
[root@ceph-manager ~]# ceph df

删除某个节点的所有的 ceph 数据包:
[root@ceph-manager ~]# ceph-deploy purge ceph-mon-1
[root@ceph-manager ~]# ceph-deploy purgedata ceph-mon-1

为 ceph 创建一个 admin 用户并为 admin 用户创建一个密钥,把密钥保存到 /etc/ceph 目录下:
[root@ceph-manager ~]# ceph auth get-or-create client.admin mds ‘allow’ osd ‘allow *’ mon ‘allow *’ -o /etc/ceph/ceph.client.admin.keyring

为 osd.ceph-osd- 1 创建一个用户并创建一个 key
[root@ceph-manager ~]# ceph auth get-or-create osd.ceph-osd-1 mon ‘allow rwx’ osd ‘allow *’ -o /etc/ceph/keyring

为 mds.ceph-mon- 1 创建一个用户并创建一个 key
[root@ceph-manager ~]# ceph auth get-or-create mds.ceph-mon-1 mon ‘allow rwx’ osd ‘allow *’ mds ‘allow *’ -o /etc/ceph/keyring

查看 ceph 集群中的认证用户及相关的 key
[root@ceph-manager ~]# ceph auth list

删除集群中的一个认证用户
[root@ceph-manager ~]# ceph auth del osd.0

查看集群健康状态详细信息
[root@ceph-manager ~]# ceph health detail

查看 ceph log 日志所在的目录
[root@ceph-manager ~]# ceph-conf –name mds.ceph-manager –show-config-value log_file

二、mon 篇

查看 mon 的状态信息
[root@ceph-manager ~]# ceph mon stat

查看 mon 的选举状态
[root@ceph-manager ~]# ceph quorum_status –format json-pretty

看 mon 的映射信息
[root@ceph-manager ~]# ceph mon dump

删除一个 mon 节点
[root@ceph-manager ~]# ceph mon remove ceph-mon-1

获得一个正在运行的 mon map,并保存在 mon-1-map.txt 文件中
[root@ceph-manager ~]# ceph mon getmap -o mon-1-map.txt

查看 mon-1-map.txt
[root@ceph-manager ~]# monmaptool –print mon-1-map.txt

把上面的 mon map 注入新加入的节点
[root@ceph-manager ~]# ceph-mon -i ceph-mon-3 –inject-monmap mon-1-map.txt

查看 mon 的 socket
[root@ceph-manager ~]# ceph-conf –name mon.ceph-mon-1 –show-config-value admin_socket

查看 mon 的详细状态
[root@ceph-mon-1 ~]# ceph daemon mon.ceph-mon-1 mon_status

删除一个 mon 节点
[root@ceph-manager ~]# ceph mon remove ceph-mon-1

三、msd 篇

查看 msd 状态
[root@ceph-manager ~]# ceph mds dump

删除一个 mds 节点
[root@ceph-manager ~]# ceph mds rm 0 mds.ceph-mds-1

四、osd 篇

查看 ceph osd 运行状态
[root@ceph-manager ~]# ceph osd stat

查看 osd 映射信息
[root@ceph-manager ~]# ceph osd stat

查看 osd 的目录树
[root@ceph-manager ~]# ceph osd tree

down 掉一个 osd 硬盘 (ceph osd tree 可查看 osd 的硬盘信息,下面为 down osd.0 节点)
[root@ceph-manager ~]# ceph osd down 0

在集群中删除一个 osd 硬盘
[root@ceph-manager ~]# ceph osd rm 0

在集群中删除一个 osd 硬盘 并 crush map 清除 map 信息
[root@ceph-manager ~]# ceph osd crush rm osd.0

在集群中删除一个 osd 的 host 节点
[root@ceph-manager ~]# ceph osd crush rm ceph-osd-1

查看最大 osd 的个数
[root@ceph-manager ~]# ceph osd getmaxosd

设置最大的 osd 的个数(当扩大 osd 节点的时候必须扩大这个值)
[root@ceph-manager ~]# ceph osd setmaxosd 10

设置 osd crush 的权重 ceph osd crush set <ID> <WEIGHT> <NAME> ID WEIGHT NAME 使用 ceph osd tree 查看
[root@ceph-manager ~]# ceph osd crush set 1 3.0 host=ceph-osd-1

设置 osd 的权重 ceph osd reweight <ID> <REWEIGHT>
[root@ceph-manager ~]# ceph osd reweight 1 0.5

把一个 osd 节点踢出集群
[root@ceph-manager ~]# ceph osd out osd.1

把踢出的 osd 重新加入集群
[root@ceph-manager ~]# ceph osd in osd.1

暂停 osd(暂停后整个集群不再接收数据)
[root@ceph-manager ~]# ceph osd pause

再次开启 osd(开启后再次接收数据)
[root@ceph-manager ~]# ceph osd unpause

五、PG 篇

查看 pg 组的映射信息
[root@ceph-manager ~]# ceph pg dump |more

查看一个 PG 的 map
[root@ceph-manager ~]# ceph pg map 0.3f

查看 PG 状态
[root@ceph-manager ~]# ceph pg stat

查询一个 pg 的详细信息
[root@ceph-manager ~]# ceph pg 0.39 query

查看 pg 中 stuck 的状态 (如有非正常 pg 会显示)
[root@ceph-manager ~]# ceph pg dump_stuck unclean
[root@ceph-manager ~]# ceph pg dump_stuck inactive
[root@ceph-manager ~]# ceph pg dump_stuck stale

显示一个集群中的所有的 pg 统计
[root@ceph-manager ~]# ceph pg dump –format plain|more

恢复一个丢失的 pg (og-id 为丢失的 pg, 使用 ceph pg dump_stuck inactive|unclean|stale 查找)
[root@ceph-manager ~]# ceph pg {pg-id} mark_unfound_lost revert

六、pool 篇

查看 ceph 集群中的 pool 数量
[root@ceph-manager ~]# ceph osd lspools

查看 PG 组 号码:
[root@ceph-manager ~]# ceph osd pool get rbd pg_num

在 ceph 集群中创建一个 pool
[root@ceph-manager ~]# ceph osd pool create test 100 (名称为 test, 100 为 PG 组号码)

为一个 ceph pool 配置配额
[root@ceph-manager ~]# ceph osd pool set-quota test max_objects 10000

显示所有的 pool
[root@ceph-manager ~]# ceph osd pool ls

在集群中删除一个 pool
[root@ceph-manager ~]# ceph osd pool delete test test –yes-i-really-really-mean-it

显示集群中 pool 的详细信息
[root@ceph-manager ~]# rados df

给一个 pool 创建一个快照
[root@ceph-manager ~]# ceph osd pool mksnap test test-snap

删除 pool 的快照
[root@ceph-manager ~]# ceph osd pool rmsnap test test-snap

查看 data 池的 pg 数量
[root@ceph-manager ~]# ceph osd pool get test pg_num

设置 data 池的最大存储空间(默认是 1T, 1T = 1000000000000, 如下为 100T)
[root@ceph-manager ~]# ceph osd pool set test target_max_bytes 100000000000000

设置 data 池的副本数
[root@ceph-manager ~]# ceph osd pool set test size 3

设置 data 池能接受写操作的最小副本为 2
[root@ceph-manager ~]# ceph osd pool set test min_size 2

查看集群中所有 pool 的副本尺寸
[root@ceph-manager ~]# ceph osd dump | grep ‘replicated size’

设置一个 pool 的 pg 数量
[root@ceph-manager ~]# ceph osd pool set test pg_num 100

设置一个 pool 的 pgp 数量
[root@ceph-manager ~]# ceph osd pool set test pgp_num 100

查看 ceph pool 中的 ceph object (volumes 为 pool 名称)(这里的 object 是以块形式存储的)
[root@ceph-manager ~]# rados ls -p volumes | more

创建一个对象 object
[root@ceph-manager ~]# rados create test-object -p test

查看 object
[root@ceph-manager ~]# rados -p test ls

删除一个对象
[root@ceph-manager ~]# rados rm test-object -p test

查看 ceph 中一个 pool 里的所有镜像 (volumes 为 pool 名称)
[root@ceph-manager ~]# rbd ls volumes

在 test 池中创建一个命名为 images 的 1000M 的镜像
[root@ceph-manager ~]# rbd create -p test –size 1000 images
查看刚创建的镜像信息
[root@ceph-manager ~]# rbd -p test info images

删除一个镜像
[root@ceph-manager ~]# rbd rm -p test images

调整一个镜像的尺寸
[root@ceph-manager ~]# rbd resize -p test –size 2000 images

给镜像创建一个快照 (池 / 镜像名 @快照名)
[root@ceph-manager ~]# rbd snap create test/images@images1

删除一个镜像文件的一个快照
[root@ceph-manager ~]# rbd snap rm 快照池 / 快照镜像文件 @具体快照

如果删除快照提示保护,需要先删除保护
[root@ceph-manager ~]# rbd snap unprotect 快照池 / 快照镜像文件 @具体快照

删除一个镜像文件的所有快照
[root@ceph-manager ~]# rbd snap purge -p 快照池 / 快照镜像文件

把 ceph pool 中的一个镜像导出
[root@ceph-manager ~]# rbd export -p images –image < 具体镜像 id> /tmp/images.img

在 CentOS 7.1 上安装分布式存储系统 Ceph  http://www.linuxidc.com/Linux/2015-08/120990.htm

Ceph 环境配置文档 PDF http://www.linuxidc.com/Linux/2013-05/85212.htm 

CentOS 6.3 上部署 Ceph http://www.linuxidc.com/Linux/2013-05/85213.htm 

Ceph 的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm 

HOWTO Install Ceph On FC12, FC 上安装 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm 

Ceph 文件系统安装 http://www.linuxidc.com/Linux/2013-05/85208.htm 

CentOS 6.2 64 位上安装 Ceph 0.47.2 http://www.linuxidc.com/Linux/2013-05/85206.htm 

Ubuntu 12.04 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-04/82588.htm 

Ubuntu 16.04 快速安装 Ceph 集群  http://www.linuxidc.com/Linux/2016-09/135261.htm

实验环境 Ceph 9.2.1 部署笔记 http://www.linuxidc.com/Linux/2016-11/137094.htm

Ceph 的详细介绍:请点这里
Ceph 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140531.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9535字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7976123
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...