Ceph集群搭建篇

Ceph集群搭建系列(一):Ceph 集群搭建 目录 摘要: 目录 一、准备机器 二、ceph节点安装 三、搭建集群 后续:Ceph集群搭建系列(二):Ceph 集群扩容 参考: 摘要: 本文介绍的Ceph 集群搭建是基于luminous版本(ceph -v: ceph version 12.2.11 (26dc3775efc7bb286a1d6d66faee0ba30ea23eee) luminous (stable)),c... 阅读详情

环境准备

ceph官方文档:https://docs.ceph.com/en/latest/

本次搭建用到的测试机器,规划如下:

主机名IP数据盘
ceph-node01192.168.11.135块1TB容量硬盘
ceph-node02192.168.11.145块1TB容量硬盘
ceph-node03192.168.11.155块1TB容量硬盘

解下来在所有节点完成下面的准备工作

  1. 关闭防火墙、selinux、禁用swap
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

在部署 Ceph 集群时,建议将所有节点的交换分区(swap)禁用或调整到最小值。这是因为 Ceph 对于节点内存的需求较高,如果系统中开启了 swap 分区,那么当内存不足时,系统会将一些内存数据转储到 swap 中,这会导致性能下降和系统不稳定。因此,禁用或调整 swap 分区大小可以确保系统有足够的内存来支持 Ceph 的正常运行和性能。

  1. 配置阿里云yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
  1. 安装epel
yum install epel-release -y
  1. 安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo && yum -y install docker-ce && systemctl enable docker && systemctl start docker

cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

systemctl restart docker
  1. 安装lvm2、python3、ntp
yum install lvm2 python3 ntpdate -y && ntpdate ntp1.aliyun.com

部署ceph集群

  1. 在每个节点安装Cephadm和ceph工具包
# 
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm
mv cephadm /usr/local/bin/

# 查看版本的同时会下载镜像quay.io/ceph/ceph:v15,建议在这一步提前下载好,等会部署ceph集群和加入osd的时候,都要用到这个镜像
# 在一台下载后可以导出分发到其他节点进行导入,省心省力。
[root@ceph-node01 yum.repos.d]# cephadm version
ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable) # 注意这个版本号octopus
[root@ceph-node01 ~]# docker images
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
quay.io/ceph/ceph   v15       93146564743f   7 months ago   1.2GB

# 安装对应版本号的相关软件包
cephadm add-repo --release octopus && cephadm install ceph-common
  1. 在第一个节点(ceph-node01)上,初始化Ceph集群和创建OSD
cephadm bootstrap --mon-ip 192.168.11.13

# 成功后的输出:
Ceph Dashboard is now available at:

             URL: https://ceph-node01:8443/
            User: admin
        Password: 71w76yawgu
You can access the Ceph CLI with:
        sudo /usr/local/bin/cephadm shell --fsid 09588bf8-ce9d-11ed-b54e-0050563ecf1e -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Please consider enabling telemetry to help improve Ceph:
        ceph telemetry on
For more information see:
        https://docs.ceph.com/docs/master/mgr/telemetry/
Bootstrap complete.

在创建完成后,您将看到输出中显示的管理员账号和密码,可以使用浏览器登录到web管理页面。

查看集群状态:

[root@ceph-node01 ~]# ceph -s
  cluster:
    id:     cf322aa0-ce9d-11ed-a072-0050563ecf1e
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph-node01 (age 16m)
    mgr: ceph-node01.qzkggl(active, since 15m)
    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:     

可以看到ceph集群已经有一个节点ceph-node01,它担任了mon、mgr的角色,在我的规划中,也是要让ceph-node01节点作为osd角色的,它的osd数量目前为0,接下来我们在ceph-node01上创建osd

# 查看存储设备列表,它有5块盘
[root@ceph-node01 ~]# ceph orch device ls
Hostname     Path      Type  Serial  Size   Health   Ident  Fault  Available  
ceph-node01  /dev/sdb  hdd           1073G  Unknown  N/A    N/A    Yes        
ceph-node01  /dev/sdc  hdd           1073G  Unknown  N/A    N/A    Yes        
ceph-node01  /dev/sdd  hdd           1073G  Unknown  N/A    N/A    Yes        
ceph-node01  /dev/sde  hdd           1073G  Unknown  N/A    N/A    Yes        
ceph-node01  /dev/sdf  hdd           1073G  Unknown  N/A    N/A    Yes        

# sda是系统盘,sdb-sdf计划用来做osd盘,通过查看目前的状态可以知道,这5块盘还没有交由ceph管理
[root@ceph-node01 ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  500G  0 disk 
├─sda1            8:1    0    2G  0 part /boot
└─sda2            8:2    0  498G  0 part 
  ├─centos-root 253:0    0  122G  0 lvm  /
  ├─centos-swap 253:1    0   16G  0 lvm  
  ├─centos-usr  253:2    0   60G  0 lvm  /usr
  ├─centos-var  253:3    0  250G  0 lvm  /var
  ├─centos-tmp  253:4    0   30G  0 lvm  /tmp
  └─centos-home 253:5    0   20G  0 lvm  /home
sdb               8:16   0 1000G  0 disk 
sdc               8:32   0 1000G  0 disk 
sdd               8:48   0 1000G  0 disk 
sde               8:64   0 1000G  0 disk 
sdf               8:80   0 1000G  0 disk 

# 接下来我们创建新的OSD,直接告诉Ceph使用任何可用和未使用的存储设备
ceph orch apply osd --all-available-devices

# 接着查看,sdb-sdf磁盘已经交由ceph管理,并作为osd盘,
[root@ceph-node01 ~]# lsblk 
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                                     8:0    0  500G  0 disk 
├─sda1                                                                                                  8:1    0    2G  0 part /boot
└─sda2                                                                                                  8:2    0  498G  0 part 
  ├─centos-root                                                                                       253:0    0  122G  0 lvm  /
  ├─centos-swap                                                                                       253:1    0   16G  0 lvm  
  ├─centos-usr                                                                                        253:2    0   60G  0 lvm  /usr
  ├─centos-var                                                                                        253:3    0  250G  0 lvm  /var
  ├─centos-tmp                                                                                        253:4    0   30G  0 lvm  /tmp
  └─centos-home                                                                                       253:5    0   20G  0 lvm  /home
sdb                                                                                                     8:16   0 1000G  0 disk 
└─ceph--e445c08f--1564--443c--9f7c--de2772686c56-osd--block--91538bd9--a63e--4d2a--9283--8bc66f01726f 253:6    0 1000G  0 lvm  
sdc                                                                                                     8:32   0 1000G  0 disk 
└─ceph--660d76c7--6f90--422e--baa2--ce8441bd8812-osd--block--1820432c--3ee3--4fb6--9c7f--682160c3b13b 253:7    0 1000G  0 lvm  
sdd                                                                                                     8:48   0 1000G  0 disk 
└─ceph--0c0eaf4c--2b6f--45d9--a8a3--a6cac35b285d-osd--block--1f060c14--2dd7--4fdd--839f--9402616bf9fb 253:8    0 1000G  0 lvm  
sde                                                                                                     8:64   0 1000G  0 disk 
└─ceph--60fceaeb--a0c7--45e5--babe--bd714884fbea-osd--block--7eb9b03a--ea87--4ab3--97f4--2c1dcf802930 253:9    0 1000G  0 lvm  
sdf                                                                                                     8:80   0 1000G  0 disk 
└─ceph--8beea209--9020--4c91--b4a4--38b862de7cc0-osd--block--b224910e--7894--470b--8617--0b28c6a1add8 253:10   0 1000G  0 lvm  

# 查看集群中的osd状态
[root@ceph-node01 ~]# ceph osd status
ID  HOST          USED  AVAIL  WR OPS  WR DATA  RD OPS  RD DATA  STATE      
 0  ceph-node01  1026M   998G      0        0       0        0   exists,up  
 1  ceph-node01  1026M   998G      0        0       0        0   exists,up  
 2  ceph-node01  1026M   998G      0        0       0        0   exists,up  
 3  ceph-node01  1026M   998G      0        0       0        0   exists,up  
 4  ceph-node01  1026M   998G      0        0       0        0   exists,up  
  1. 将另外2个节点添加到集群和创建OSD(在ceph-node01节点上操作)
# 下发ceph集群的公钥和添加节点
ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.11.14
ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.11.15
ceph orch host add ceph-node02 192.168.11.14
ceph orch host add ceph-node03 192.168.11.15

ceph-node02和ceph-node03加入ceph集群后,会自动将任何可用和未使用的存储设备作为osd盘

当然也可以手动指定从特定主机上的特定设备创建OSD,命令如下:

ceph orch daemon add osd 192.168.11.14:/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf
ceph orch daemon add osd 192.168.11.15:/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf

至此,ceph集群已经搭建完成。

  1. 完成后,查看集群状态、osd状态、集群使用情况
[root@ceph-node01 ~]# ceph -s
  cluster:
    id:     cf322aa0-ce9d-11ed-a072-0050563ecf1e
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-node01,ceph-node03,ceph-node02 (age 7m)
    mgr: ceph-node01.qzkggl(active, since 34m), standbys: ceph-node02.ioyzpg
    osd: 15 osds: 15 up (since 6m), 15 in (since 6m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   15 GiB used, 15 TiB / 15 TiB avail
    pgs:     1 active+clean
 
[root@ceph-node01 ~]# ceph osd status
ID  HOST          USED  AVAIL  WR OPS  WR DATA  RD OPS  RD DATA  STATE      
 0  ceph-node01  1030M   998G      0        0       0        0   exists,up  
 1  ceph-node01  1030M   998G      0        0       0        0   exists,up  
 2  ceph-node01  1030M   998G      0        0       0        0   exists,up  
 3  ceph-node01  1030M   998G      0        0       0        0   exists,up  
 4  ceph-node01  1030M   998G      0        0       0        0   exists,up  
 5  ceph-node02  1030M   998G      0        0       0        0   exists,up  
 6  ceph-node02  1030M   998G      0        0       0        0   exists,up  
 7  ceph-node02  1030M   998G      0        0       0        0   exists,up  
 8  ceph-node02  1030M   998G      0        0       0        0   exists,up  
 9  ceph-node02  1030M   998G      0        0       0        0   exists,up  
10  ceph-node03  1030M   998G      0        0       0        0   exists,up  
11  ceph-node03  1030M   998G      0        0       0        0   exists,up  
12  ceph-node03  1030M   998G      0        0       0        0   exists,up  
13  ceph-node03  1030M   998G      0        0       0        0   exists,up  
14  ceph-node03  1030M   998G      0        0       0        0   exists,up  
[root@ceph-node01 ~]# 

[root@ceph-node01 ~]# ceph df
--- RAW STORAGE ---
CLASS  SIZE    AVAIL   USED     RAW USED  %RAW USED
hdd    15 TiB  15 TiB  104 MiB    15 GiB       0.10
TOTAL  15 TiB  15 TiB  104 MiB    15 GiB       0.10
 
--- POOLS ---
POOL                   ID  PGS  STORED  OBJECTS  USED  %USED  MAX AVAIL
device_health_metrics   1    1     0 B        0   0 B      0    4.6 TiB
[root@ceph-node01 ~]# 

登录ceph web管理页面看看:

图片

图片

图片

写在最后

  1. 关于时间同步 在 Ceph 集群中,每台节点的时间同步非常重要,因为 Ceph 集群的各个组件都需要严格的时间同步才能正常运行。以下是一些重要原因:
  • 避免数据不一致:Ceph 集群中的数据副本分布在不同的节点上,如果节点之间的时间不同步,可能会导致写操作的数据不一致,或者无法正确地读取数据。
  • 避免时钟漂移:由于硬件和软件的原因,每个节点的时钟可能会出现漂移。如果这种漂移超过了一定的阈值,可能会导致 Ceph 系统无法正常工作。
  • 避免锁竞争问题:Ceph 集群中的许多组件都使用锁来控制访问资源的顺序。如果节点之间的时间差异太大,可能会导致锁竞争问题,从而影响系统的性能。

因此,确保每台节点的时间同步是 Ceph 集群稳定性和可靠性的重要保证。可以通过使用 NTP(网络时间协议)或其他时间同步工具来实现时间同步。在本次搭建中,同步的是公网阿里云的时间服务器。需要注意的是,如果在生产环境,还要配置定期能够自动同步,本次只是测试,所以就不配置了,如果是生产环境且不能出外网的机器,还要确保本地有NTP服务器。

  1. 关于mon节点的数量

一个典型的 Ceph 集群官方建议部署3个或5个监控守护进程(MON),分布在不同的主机上。因为 MON 负责维护 Ceph 集群的状态信息,包括存储池和 OSD 的映射关系、客户端的连接信息等,它们需要进行定期的状态信息交换和协调。如果某个 MON 发生故障,那么其他的 MON 可以协同工作来维护集群的状态信息。一般来说,部署更多的 MON 可以提高集群的可靠性和容错性,因为它们可以更好地协同工作来维护集群的状态信息。同时,部署更多的 MON 还可以提高集群的性能,因为它们可以更好地分担状态信息交换的负载。

建议在 Ceph 集群中至少部署五个或更多的 MON,以提高集群的可靠性、容错性和性能。

本文转载于WX公众号:不背锅运维(喜欢的盆友关注我们):https://mp.weixin.qq.com/s/YzuaRf2ZABFIU7Wkyro4vw

Ceph分布式存储系统搭建 阅读详情

相关推荐

ceph集群搭建与(文件存储块存储对象存储测试)

环境准备 ①本地主机名解析 ②ntp时间同步 ③ssh免密登录 ④国内yum源配置 我这里用4台vm虚拟机需要上外网,三台做存储,一台做客户端,全部IP静态固定 (除client外每台最少加1个磁盘,最小5G,不用分区); 四台全部做主机名解析 [root@node1 ~]# vim/etc/hosts 添加以下段: (ip与主机名自己相对应的就行) 10.2.2.11 node1 10.2.2.12 node2 10.2.2.13 node3 10.2.2.14 client 时间同步必须做,否

weixin_46942054的博客 938

ceph集群的搭建

这里直接指定cluster-network(集群内部通讯)和public-network(外部访问Ceph集群),也可以在执行命令后修改配置文件方式指定。使用ceph-deploy命令将配置文件和 admin key复制到管理节点和Ceph节点,以便每次执行ceph CLI命令无需指定monitor地址和。创建监视器,初始化monitor,并收集所有密钥,官方介绍:为了获得高可用性,您应该运行带有至少三个监视器的生产Ceph集群。参数–no-adjust-repos是直接使用本地源,不生成官方源。

Cat God 007的博客 3089

Ceph集群搭建部署及常规操作

文章目录一、环境准备1、主机名2、关闭防火墙、核心防护3、配置hosts4、创建免交互5、配置YUM源6、配置NTP时钟服务二、CEPH集群搭建三、CEPH扩容四、osd数据恢复1、模拟故障2、恢复osd到集群中五、ceph常规的维护命令1、创建mgr服务2、创建pool3、删除pool4、修改pool名字5、查看ceph命令6、配置ceph内部通信网段六、制作centos_ceph离线包 一、环...

ML908的博客 4451

ceph集群搭建

CRUSH先将数据分解成一组对象,然后根据对象名称、复制级别和系统中的PG数等信息执行散列操作,再将结果生成PG ID。可以将PG看做一个逻辑容器,这个容器包含多个对象,同时这个逻辑对象映射之多个OSD上。如果没有PG,在成千上万个OSD上管理和跟踪数百万计的对象的复制和传播是相当困难的。没有PG这一层,管理海量的对象所消耗的计算资源也是不可想象的。建议每个OSD上配置50~100个PG。如过定义PG数一般的:少于5个OSD则PG数为1285-10个OSD则PG数为512。

L2111533547的博客 2191

Ceph-deploy搭建ceph集群

Ceph可用于为云平台提供Ceph对象存储、块存储、文件系统存储。所有Ceph存储集群部署都从设置每个Ceph节点开始,然后设置网络块存储RedismasterslavezookeeperMysqlmasterslavecephFS对象存储Ceph存储集群需要以下内容:至少一个和至少一个,以及至少与Ceph集群中存储的给定对象的副本一样多的Ceph对象存储守护进程(OSD)(例如,如果给定对象的三个副本存储在Ceph集群中,则该Ceph集群中必须至少存在三个OSD)

qq_31055683的博客 1925

cephadm搭建ceph集群

ceph分布式存储

m0_51832408的博客 3531

【CEPH-初识篇】Ceph 详细介绍,一篇解决 Ceph 集群搭建, 三大存储使用

你好,我是无名小歌。 今天给大家分享一个分布式存储系统ceph。什么是ceph? Ceph在一个统一的系统中独特地提供对象存储、块存储和文件存储。

持续分享,个人的运维经验,包含:云计算、Linux、Windows、容器、K8s、CICD、Python、运维开发、公有云等;以及个人经历相关内容,包含:实习、面试经验等。 10000

Ceph集群搭建系列(二):Ceph 集群扩容

本文是基于Ceph集群搭建系列(一):Ceph 集群搭建 来做扩容,集群拓扑结构如下: 1. 添加OSD 在 node1 上添加一个 osd.2。 1) 创建目录 $ ssh node1 $ sudo mkdir /var/local/osd2 $ sudo chmod 777 /var/local/osd2/ $ exit 2) 准备OSD $ ceph-deploy osd...

Yannick Jiang 的专栏 3675

ceph实战之ceph集群搭建

ceph是一个开源的分布式存储系统,支持对象存储,块存储,文件系统。

建伟博客 2万+

[ceph]在虚拟机上搭建ceph集群

文章目录说明准备工作安装ceph-deploy和ceph创建monitor与OSDceph集群扩容添加ceph monitor添加OSD 说明 本实验利用三台虚拟机搭建ceph集群。 环境:vmware、Ubuntu18.04*3 主机名与主机ip ceph-node1 192.168.50.101 ceph-node2 192.168.50.102 ceph-node3 192.168.50.1...

Eternally123的博客 2026

ceph搭建及使用详解

第1章 ceph介绍 1.1 Ceph的主要特点 统一存储 无任何单点故障 数据多份冗余 存储容量可扩展 自动容错及故障自愈 1.2 Ceph三大角色组件及其作用 在Ceph存储集群中,包含了三大角色组件,他们在Ceph存储集群中表现为3个守护进程,分别是Ceph OSD、Monitor、MDS。当然还有其他的功能组件,但是最主要的是这三个。 Ceph OSD Ceph的OSD(Object Storage Device)守护进程。主要功能包括:存储数据、副本数据处理、数据恢复、数据回补、平衡数据分布,并将

weixin_40548182的博客 1万+

CentOS7 搭建ceph集群

CentOS7部署Ceph集群

weixin_46051525的博客 1882

Ceph实战(三):用docker搭建Ceph集群(基于nautilus版本)

本文介绍了通过docker部署ceph集群的详细步骤,本文只是启动了核心的必要的组件,一共有 mon,osd,mgr,rgw四个组件,其中mon,osd,mgr组件是必须要启动的,rgw组件是作为对象存储的网关系统,如果不用对象存储的话则不需要启动该组件,其他的组件入mds也只是cephFS才需要用到。后面文章会详细介绍这些组件的作用,本文主要是将集群搭建起来。

码农飞哥 4615

Ceph分布式存储集群搭建

Ceph分布式存储集群搭建

sky学linux的博客 1947

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 588

【软件使用】Calibre部分提参的实战技巧与常见问题解析

本文详细解析了Calibre部分提参(Partial PEX)的实战技巧,重点介绍了如何利用HCELL与XCELL文件高效排除已知模块,实现精准的寄生参数提取,从而快速定位后仿真中的时序与信号完整性问题。文章涵盖了从图形界面到命令行的完整操作流程,并提供了常见问题(如时钟失真、模块“消失”)的深度Debug指南与最佳实践,助力芯片设计工程师提升验证效率。

yhn456789的博客 1026

三 Ceph集群搭建

Ceph集群   集群组件   Ceph集群包括Ceph OSD,Ceph Monitor两种守护进程。   Ceph OSD(Object Storage Device): 功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD守护进程的心跳来向Ceph Monitors提供一些监控信息。   Ceph Monitor: 是一个监视器,监视Ceph集群状态和维护集群中的各种关系。   Ceph存储集群至少需要一个Ceph Monitor和两个 OSD 守护进程。   集群环境准备

weixin_44767040的博客 3966

STM32与K210串口通信

这篇文章是为了填上一篇埋下的坑,k210和STM32通过串口通信,我是采用数据包的形式发送数据的,因为K210发送的数据有几种,采用数据包的形式发送比较安全。本文代码运行的平台是STM32F103C8T6和K210 Dock,只涉及到K210发送数据给STM32,stm32将接受到的数据显示到0.96寸OLED屏上。

qq_70715693的博客 3万+
上一篇: Python迭代器&生成器:分享贴近实际运维开发场景的小案例
下一篇: 上篇:运维人员不得不看的K8S API入门实战,呕心沥血整理得又臭又长,有人看吗
不背锅运维
博客等级 码龄4年 38粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值