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

实验环境Ceph 9.2.1部署笔记

495次阅读
没有评论

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

一、准备工作

1、环境说明

Ceph 分布式存储系统共部署 4 个节点(使用云主机),即 ceph1、ceph2、ceph3。系统均使用 CentOS7.1。
使用三个云主机作为 Ceph 节点,第 4 个主机作为 admin-node。每个节点上增加两个虚拟磁盘 vda 和 vdb 作为 OSD 存储磁盘,每个节点上安装 MON,前两个节点上安装 MDS。
Ceph 集群部署过程中,请保持各主机可以访问互联网下载 rpm 资源。部署完成后,可以切断 Ceph 子网的外网访问权限。
节点名称 IP 地址 部署进程 数据盘
ceph1
10.0.2.5
1MON+1MDS+2OSD /dev/vdb, /dev/vdc
ceph2
10.0.2.7
1MON+1MDS+2OSD /dev/vdb, /dev/vdc
ceph3
10.0.2.8
1MON+1RGW+2OSD
/dev/vdb, /dev/vdc
admin-node              10.0.2.16/192.168.10.16
注:192.168.10.16 为管理节点使用的管理子网地址。
实验环境 Ceph 9.2.1 部署笔记

2、Ceph deploy 管理节点部署

配置 admin-node 的 ceph 软件仓库镜像源:
yum install -y yum-utils && yum-config-manager --add-repo https://dl.Fedoraproject.org/pub/epel/7/x86_64/ 
&& yum install --nogpgcheck -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 
&& rm /etc/yum.repos.d/dl.fedoraproject.org*

创建一个 Ceph yum 源配置文件:
vi  /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-infernalis/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

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

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

 

安装 ceph-deploy 工具:
yum update && yum install ceph-deploy

3、Ceph 节点部署环境准备

(1)在 4 个主机上均配置好 ntp 服务
yum -y install ntp ntpdate ntp-doc
设置好定时任务:
# crontab -l
*/5 * * * * /usr/sbin/ntpdate  s2m.time.edu.cn > /dev/null 2>&1
 
(2)在 4 个主机上设置主机名与 IP 地址映射关系
vi  /etc/hosts
10.0.2.5     ceph1
10.0.2.7     ceph2
10.0.2.8     ceph3
10.0.2.16     ceph-mgmt
 
(3)在 3 个 ceph 节点上创建一个普通管理帐号,并授权 sudo 权限
# useradd -d /home/dpadmin -m dpadmin
#echo "dpadmin ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/dpadmin
#chmod 0440 /etc/sudoers.d/dpadmin
 
(4)在管理节点上创建一个普通帐号(不使用 root,也不要授权 sudo 权限),用于管理 ceph 集群各 server 节点
建立该帐号对 ceph 集群内各存储节点的 ssh 免密码登录(对每个存储节点上有 sudo 权限的 dpadmin 用户)。
# useradd -d /home/dpadmin -m dpadmin
#su - dpadmin
$ssh-keygen
注:设置密钥密码为空
$ssh-copy-id  dpadmin@ceph1
$ssh-copy-id  dpadmin@ceph2
$ssh-copy-id  dpadmin@ceph3
 
(5)打开系统防火墙端口
Ceph Monitors 使用 tcp 端口 6789,Ceph OSDs 使用 tcp 端口 6800:7300,Ceph RGW 使用 tcp 端口 7480。
firewall-cmd --zone=public --add-port=6789/tcp --permanent
firewall-cmd --zone=public --add-port=7480/tcp --permanent
firewall-cmd --zone=public --add-port=6800:7300/tcp --permanent
 
关闭 selinux。
 
(6)设置 3 个存储节点上 requiretty 参数
在使用 ceph-deploy 进行部署时需要登录存储节点执行 sudo 权限的命令。这需要在每个存储节点上都允许 ceph 执行这样的系统配置。
#visudo   -- 修改如下
Defaults:ceph  !requiretty
 

二、创建 Ceph 存储集群

1、在管理节点上创建一个目录,用于保存集群的配置文件和密钥文件。

使用我们前面创建的普通帐号 dpadmin 执行:
mkdir my-cluster
cd my-cluster

2、开始创建新集群,生成集群使用的配置文件和密钥

$ceph-deploy new ceph{1,2,3}
$ ls
ceph.conf  ceph.log  ceph.mon.keyring
 
我们可以通过修改 ceph.conf 来设置 ceph 的副本数量,比如我们设置副本数为 2:
$vi  ceph.conf
[global]
fsid = c10f9ac8-6524-48ea-bb52-257936e42b35
mon_initial_members = ceph1, ceph2, ceph3
mon_host = 10.0.2.5,10.0.2.7,10.0.2.8
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
osd pool default size = 2
 
如果有专用的存储外网和存储内网的划分,那也可以通过修改 ceph.conf 来定义存储外网的网段:
public network = {ip-address}/{netmask}

3、运行 ceph-deploy install  命令在各节点上安装 ceph 软件

在管理节点上使用 dpadminm 帐号:
$ceph-deploy install ceph1
因为从 ceph 官方源下载数据很慢,所以上面的安装操作在等待一定时间后管理节点就超时报错了。但此时,在存储节点上实际上仍然在运行 yum 下载安装包,所以可以把管理节点的报错放一边,等待存储节点的 yum 安装完成。验证方法是登录存储节点,当使用 ceph - v 可以得到正确的输出时,证明存储节点上的 ceph 软件包安装已经成功了。这时,再次从管理节点运行 ceph-deploy install ceph1。
使用同样的方法处理存储节点 2,3。
 
在管理节点上使用 root 帐号:
# ceph-deploy install ceph-mgmt
安装完成后,在存储节点上查看 ceph 的版本信息:
$ceph -v

4、初始化集群的监控服务并收集密钥文件

$cd my-cluster
$ceph-deploy mon create-initial
$ ls
ceph.bootstrap-mds.keyring  ceph.bootstrap-rgw.keyring  ceph.conf  ceph.mon.keyring
ceph.bootstrap-osd.keyring  ceph.client.admin.keyring   ceph.log

5、增加 OSDs

先要确认需要使用的数据磁盘没有做过任何分区初始化。否则就需要使用下面的方法对磁盘进行处理一下。
ceph-deploy disk zap {osd-server-name}:{disk-name}
ceph-deploy disk zap osdserver1:sdb
 
查看存储节点的磁盘信息:
$ceph-deploy disk list ceph1
$ceph-deploy disk list ceph2
$ceph-deploy disk list ceph3
需要能看到类似下面这样的输出信息:
[ceph1][DEBUG] /dev/vdb other, unknown
[ceph1][DEBUG] /dev/vdc other, unknown
 
关于怎么处理 OSD 进程的 journal 数据,有多种方法:不使用独立的 journal 分区或磁盘;使用独立的 journal 分区或磁盘。
在我们这个实验环境中,没有使用专门的 journal 分区或磁盘。
 
在管理节点上把 OSD 磁盘放入集群中并激活:
命令格式为 $ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
注:经实际验证,按官网文档先 prepare 再 activate 的操作步骤会报错“RuntimeError: Failed to execute command: ceph-disk -v activate –mark-init systemd –mount /dev/vdb”。这应该属于软件的一个 bug。而直接使用 create 命令(相当于 prepare+activate)则可以成功完成加入 OSD 磁盘并激活的任务。如果执行了上面的命令并遇到报错后,需要先清除存储节点的分区信息,然后将存储节点系统重启,最后从管理节点上使用 ceph-deploy disk list 命令查看存储节点的磁盘状态是否恢复的初始状态。
 
使用 create 命令在一个步骤中完成 OSD 磁盘的加入和激活:
$ceph-deploy osd  create ceph1:/dev/vdb  ceph2:/dev/vdb  ceph3:/dev/vdb
$ceph-deploy osd  create ceph1:/dev/vdc  ceph2:/dev/vdc  ceph3:/dev/vdc

6、将 配置文件和 Admin key 复制到各个节点

使用 dpadmin 用户:
$ceph-deploy admin   ceph{1,2,3}
使用 root 用户:
# cp ceph.client.admin.keyring  ceph.conf  /etc/ceph
#chmod +r /etc/ceph/ceph.client.admin.keyring
 
在所有存储节点上设置好密钥文��读权限:
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

7、Ceph 集群的监控

查看 ceph 集群的健康状态:
$ ceph
ceph> health
HEALTH_OK

ceph> status
    cluster ef472f1b-8967-4041-826c-18bd31118a9a
     health HEALTH_OK
     monmap e1: 3 mons at {ceph1=10.0.2.5:6789/0,ceph2=10.0.2.7:6789/0,ceph3=10.0.2.8:6789/0}
            election epoch 4, quorum 0,1,2 ceph1,ceph2,ceph3
     osdmap e34: 6 osds: 6 up, 6 in
            flags sortbitwise
      pgmap v82: 64 pgs, 1 pools, 0 bytes data, 0 objects
            203 MB used, 569 GB / 569 GB avail
                  64 active+clean

ceph> quorum_status
{"election_epoch":4,"quorum":[0,1,2],"quorum_names":["ceph1","ceph2","ceph3"],"quorum_leader_name":"ceph1","monmap":{"epoch":1,"fsid":"ef472f1b-8967-4041-826c-18bd31118a9a","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"ceph1","addr":"10.0.2.5:6789\/0"},{"rank":1,"name":"ceph2","addr":"10.0.2.7:6789\/0"},{"rank":2,"name":"ceph3","addr":"10.0.2.8:6789\/0"}]}}

ceph> mon_status
{"name":"ceph2","rank":1,"state":"peon","election_epoch":4,"quorum":[0,1,2],"outside_quorum":[],"extra_probe_peers":["10.0.2.5:6789\/0","10.0.2.8:6789\/0"],"sync_provider":[],"monmap":{"epoch":1,"fsid":"ef472f1b-8967-4041-826c-18bd31118a9a","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"ceph1","addr":"10.0.2.5:6789\/0"},{"rank":1,"name":"ceph2","addr":"10.0.2.7:6789\/0"},{"rank":2,"name":"ceph3","addr":"10.0.2.8:6789\/0"}]}}

ceph> osd tree
ID WEIGHT  TYPE NAME      UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.55618 root default                                    
-2 0.18539     host ceph1                                  
0 0.09270         osd.0       up  1.00000          1.00000
3 0.09270         osd.3       up  1.00000          1.00000
-3 0.18539     host ceph2                                  
1 0.09270         osd.1       up  1.00000          1.00000
4 0.09270         osd.4       up  1.00000          1.00000
-4 0.18539     host ceph3                                  
2 0.09270         osd.2       up  1.00000          1.00000
5 0.09270         osd.5       up  1.00000          1.00000

 

如果需要使用更多的 OSDs 的管理功能,可以参考官网上 http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/。
 
实时观察 ceph 集群工作状态的命令:$ceph -w
 
查看 ceph 存储集群的存储空间使用率:$ceph df
注:这个命令显示的 pools 使用情况,仅是逻辑意义上的一份数据占用的空间,而实际上 ceph 集群还会存储更多的副本、克隆和快照。
 
查看 ceph 集群状态:

$ceph status 或 $ceph -s
 
查看 OSD 服务的状态:
$ ceph osd stat
$ ceph osd dump
$ ceph osd tree
以上均是从不同角度,展示的 OSDs 的进程状态信息。
 
查看 MONITOR 状态:
$ceph mon stat
$ceph mon dump
$ceph quorum_status
 
查看 MDS 状态:
$ceph mds stat
$ceph mds dump
 
关于更高级的 ceph 集群监控功能,例如 PLACEMENT GROUP 状态和怎样使用 ADMIN SOCKET,参见 http://docs.ceph.com/docs/master/rados/operations/monitoring/。

8、创建 METADATA SERVER

$ceph-deploy mds create ceph1 ceph2

9、创建 RGW 服务实例

创建 Ceph 对象服务网关,用于提供对象存取服务。
$ ceph-deploy rgw create ceph3
注:RGW 实例使用 7480 端口,确认已经打开。
 
以上就是部署一个全服务类型的 Ceph 存储集群所需的全部工作。
 

三、在客户机上使用 Ceph RBD 块存储服务

1、测试机的环境准备

找一个测试主机,安装 CentOS7.1 系统,按照本文第一章节介绍内容对系统环境进行配置。

2、安装 ceph 软件

从管理节点运行命令,为测试机安装 ceph 软件:
$ceph-deploy install ceph-client

3、拷贝配置文件到测试机

$ceph-deploy admin ceph-client
在测试机上执行以下命令,确保密钥文件可读:
$sudo chmod +r /etc/ceph/ceph.client.admin.keyring

4、在测试机上创建一个块设备映像

$rbd create foo –size 4096 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]

5、在测试机上把块设备映像映射到一个块设备上去

$sudo rbd map foo –name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]

6、创建文件系统

$sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo

7、挂载并测试块存储设备

$sudo mkdir /mnt/ceph-block-device
$sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
$cd /mnt/ceph-block-device

在 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 的详细介绍 :请点这里
Ceph 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137094.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7980444
文章搜索
热门文章
星哥带你玩飞牛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-提高用户访问的响应速度和成功率
随机文章
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...

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

一言一句话
-「
手气不错
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...