linux搭建ceph集群

news2025/1/10 23:38:09

linux三节点搭建ceph集群

主机IP主机名称
172.26.50.75node1
172.26.50.112node2
172.26.50.228node3

ceph-mon,ceph-mgr,ceph-mds都搭建在node1上,node2和node3上搭建ceph-osd,每个机器1个osd

Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储,Ceph的大致组件如下:

    1. Ceph监视器(ceph-mon):用来维护集群状态的映射,包括监视器映射,管理器映射,OSD映射,MDS映射和CRUSH映射,这些映射是ceph守护程序相互协调所需的关键状态,另外还负责客户端到ceph存储的身份验证;通常要实现高可用,需要3个或以上的ceph-mon服务

    2. Ceph管理器(ceph-mgr):ceph manager守护进程负责跟踪运行时指标和ceph集群当前的状态,包括存储利用率,当前性能指标和系统负载等,ceph-mgr还托管一些python模块,以实现基于web的ceph仪表盘和rest api,通常要实现高可用至少需要2个ceph-mgr进程,通常ceph-mon和ceph-mgr个数相同,1个ceph-mon同节点会伴随1个ceph-mgr守护进程

    3. Ceph对象存储(ceph-osd):Ceph OSD是对象存储守护程序,是用来存储数据的核心组件,实现数据存储、数据复制和恢复、数据的重新平衡,并会检查其他Ceph OSD守护程序的心跳来向ceph-mon和ceph-mgr提供一些监控信息,通常至少需要3个ceph-osd才能实现冗余和高可用性,部署的时候ceph-osd会和ceph-mon分开节点部署. 

    4. Ceph元数据服务(ceph-mds):Ceph MDS为ceph文件系统存储元数据,注意Ceph块设备和对象存储不用mds存储元数据,Ceph MDS允许POSIX文件系统用户执行基本命令,而不会将压力都集中到Ceph OSD集群上,通常mds可以选择部署至少2个节点,可以和其他组件一起也可以分开

环境准备

下面操作默认在三台主机上全部操作

配置yum源

#新机子默认yum会有问题,这里使用阿里云yum源


#首先把之前的yum.repo文件备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#下载完成后执行
yum makecache

配置时间同步

#执行date如果三台节点时间不同步,需要配置时间同步
#首先下载chrony服务
yum install chrony -y

#下载vim文本编辑工具
yum install vim -y

#在chrony配置文件中编辑世家按同步服务器
vim /etc/chrony.conf
#这里只需要将前几行已server开头的注释掉,
#添加下面的server,此时使用阿里云时间服务器
server ntp.aliyun.com iburst

#重启cchrony服务
systemctl restart chronyd

#将时间设置写入磁盘(以后重启数据不会丢失)
hwclock -s

配置主机名

#在172.26.50.75节点上执行
hostnamectl set-hostname node1

#在172.26.51.114节点上执行
hostnamectl set-hostname node2

#在172.26.51.228节点上执行
hostnamectl set-hostname node3

关闭防火墙,selinux

systemctl stop firewalld | systemctl disable firewalld | systemctl status firewalld

配置ceph源

ceph软件包

#对于centos7需要安装以下安装包
yum install yum-plugin-priorities

#确认,如果输出结果显示为enabled=1,则成功
cat /etc/yum/pluginconf.d/priorities.conf 

#安装ceph密钥
rpm --import 'https://download.ceph.com/keys/release.asc'

#安装elep-release仓库和其他包
yum install epel-release
yum install snappy leveldb gdisk gperftools-libs

ceph源

[ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/$basearch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc


#配置完成后,保存退出,执行
yum install ceph

配置python环境

上面的yum完成后会自动下载python3.6,但是系统默认python版本韩式python2,此时可以执行python 【回车】,查看python版本

#首先配置python环境依赖,-i指定阿里云加速
pip3 install pecan -i https://mirrors.aliyun.com/pypi/simple/
pip3 install werkzeug  -i https://mirrors.aliyun.com/pypi/simple/

#配置环境python版本
#卸载默认python2环境
rm -rf /usr/bin/python

#重新添加python3.6为默认python环境
ln -s /usr/bin/python3.6 /usrs/bin/python

配置ceph-mon

(在主节点上配置ceph监视服务,这里主节点为172.26.50.75)

配置ceph.conf文件

#首先在主机点输入,会生成密钥
uuidgen

#配置ceph.conf文件
vim /etc/ceph/ceph.cnf
[global]
        fsid = #此处输入刚刚获取的密钥
        mon initial members = node1    #主节点名称
        mon host = 172.26.50.75:6789   #主节点Ip:端口
        public network = 172.26.50.0/16  #ceph集群网关
        auth cluster required = cephx
        auth service required = cephx
        auth client required = cephx
        osd journal size = 1024
        osd pool default size = 2
        osd pool default min size = 1
        osd pool default pg num = 333
        osd pool default pgp num = 333
        osd crush chooseleaf type = 1
        mon_allow_pool_delete = true


#设置完成后保存退出
#依次执行
# 为集群创建1个密钥环,作为监视器密钥 注意其中的点.不要丢
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
# 生成管理员密钥环 创建admin用户 也是第一个客户端用户
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
# 生成bootstrap密钥环和用户
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'

# 然后将刚才生成的密钥追加到ceph.mon.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring

# 修改ceph.mon.keyring的权限为ceph ceph用户安装时已经自动创建
chown ceph:ceph /tmp/ceph.mon.keyring


# 注意这里主机名, ip, fsid要换成实际的
monmaptool --create --add node1 172.26.50.75 --fsid 【这里写刚刚的密钥】 /tmp/monmap
   
然后创建ceph-mon数据目录:

# 目录名为: 集群名-主机名  这里是: ceph-node1
mkdir /var/lib/ceph/mon/ceph-node1

使用刚才生成的密钥环和映射初始化数据目录:
# -i 指定主机名
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
    
调整数据目录权限为ceph:
chown -R ceph:ceph /var/lib/ceph/mon/ceph-node1/
    
然后启动ceph-mon服务:
# 服务名为:ceph-mon@主机名
systemctl start ceph-mon@node1
# 查看服务状态
systemctl status ceph-mon@node1

检查ceph集群状态

ceph -s

配置ceph-mgr

主节点操作

配置守护进程

# 创建mgr密钥目录, 命名为: 集群名-主机名
mkdir /var/lib/ceph/mgr/ceph-node1
# 创建mgr身份验证密钥 注意里面的mgr.node1,node1为主机名
ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-node1/keyring
# 修改权限
chown -R ceph:ceph /var/lib/ceph/mgr/ceph-node1/

ceph-mgr -i node1

查看集群状态

systemctl start ceph-mgr@node1

systemctl status ceph-mgr@node1

osd配置

(在另外两台节点上配置)

#将 密钥从node1传输到node2和node3,node1上操作
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node2:/var/lib/ceph/bootstrap-osd/
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node3:/var/lib/ceph/bootstrap-osd/

#将ceph.conf从node1节点传输到另外两台节点上,node1上操作
scp /etc/ceph/ceph.conf 172.26.51.114:/etc/ceph/
scp /etc/ceph/ceph.conf 172.26.51.228:/etc/ceph/

创建osd节点

ceph-volume lvm create --data /dev/sdb1  #这里写使用lsblk之后的分区配置

ceph-mds部署

(node1主节点上操作,部署守护进程)

# 目录名同样是: 集群名-主机名
mkdir /var/lib/ceph/mds/ceph-node1
# 然后创建mds 密钥环到刚建的目录中, 注意mds.node1同样写主机名
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node1/keyring --gen-key -n mds.node1
# 最后导入密钥环  设置访问权限 同样注意主机名
ceph auth add mds.node1 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node1/keyring

编辑配置文件

#
vim /etc/ceph/ceph.conf
#在末尾添加
[mds.node1]
    host = node1

启动守护进程

ceph-mds --cluster ceph -i node1 -m node1:6789

创建存储池

# 创建名字为cephfs_data的数据池 pg大小为128
ceph osd pool create cephfs_data 128
# 创建名字为cephfs_metadata的存储池 pg大小为64
ceph osd pool create cephfs_metadata 64

ceph fs new cephfs cephfs_metadata cephfs_data

查看ceph情况

挂载

mkdir /mnt/mycephfs
mount -t ceph :/ /mnt/mycephfs/ -o name=admin

df -h

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

选择排序(直接选择排序和堆排序)

一、直接选择排序 1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 2.动图展示 3.思路讲解 ①在元素集合array[i]—array[n-1]中选择关键码最大&…

个人博客系统-自动化测试

1、项目背景 1.1技术背景 1)个人博客系统主要是通过前端(HTMLcssjs)后端(SpringBoot)实现的一个博客的基本功能。前端通过jQuery的方式向后端请求数据。后端通过MyBatis从数据库中查询数据响应给前端。 2&#xff0…

天通报警呼叫柱助力宜宾——破汛期河心洲岛通信困境,守护人民群众生命安全

随着主汛期的到来,我国多地遭遇频繁降雨,强降雨或连绵不断的降雨,极易引发山洪、滑坡、泥石流等次生灾害。8月18日23时至20日10时,辽宁省西部地区出现暴雨到大暴雨,葫芦岛市部分乡镇出现特大暴雨。受到强降雨影响&…

Qt-QWidget的windowIcon属性(14)

目录 描述 相关API 使用 并不需要在堆上创建 不要带中文路径 运行观察 不要使用绝对路径 描述 这个其实就是你打开窗口的左上角那个图标,这个就是用来设置那个的 相关API 使用 创建一个新的项目,如下,添加一个设置图片的代码 并不需…

uboot中 fastboot udp 协议分析

注: 1. 本文所分析的fastboot源码不是android下的源码,而是恩智浦芯片厂商在IMX6UL芯片的uboot源码中自己实现的源码,二者不同,请读者注意区分。一些图片是网上找到的,出处不好注明,请见谅。 2. 分析fastbo…

VM——轮廓/快速匹配中的多模版匹配

1、轮廓或者快速匹配中支持建立多个模型,按照从上而下的顺序进行匹配,匹配上了即停止后续模版的匹配。 2、如果要多个模版都参与匹配,则需要打开“全部搜索模式”。 3、延拓阈值 “延拓阈值”,看参数名字不知所云,文档…

CR-NeRF 代码eval.py解析

这段代码是一个用于CR-NeRF(Neural Radiance Fields)模型的推理脚本。它主要用于生成和保存渲染的图像,并计算图像质量的评价指标(如PSNR和SSIM)。以下是对这段代码的详细解析: (1)…

【亚马逊云科技】有手就能做到的Amazon Lightsail快速建站

文章目录 前言一、为什么选择Amazon Lightsail二、创建账号与登录注册亚马逊账号登录控制台 三、创建Amazon Lightsail进入控制台创建实例实例配置查看实例查看网站定制页面 总结 前言 不论是个人名片还是官方网站都离不开网站建设工作。计算机技术经历漫长的发展,…

2024年如何将低质量视频变成高质量视频

创建低质量的视频对您没有好处,尤其是当您打算将这些视频上传到社交媒体帐户时。观众不喜欢观看模糊和低质量的视频,而这个东西没有意义,不会为你的内容增加价值。 那么,您应该如何确保您的社交媒体观众喜欢您的视频内容呢&#x…

企业内部知识库意义何在?怎么搭建?

引言 在知识经济时代,企业竞争力的核心日益转向知识的管理与应用能力。随着企业规模的扩大和业务复杂性的增加,如何高效地收集、整理、存储并分享内部知识,成为了企业持续发展和创新的关键。企业内部知识库应运而生,它不仅帮助企…

自定义注解+拦截器实现,对部分敏感字段的加解密

上一篇,我用的自定义注解AOP的方式,实现敏感字段的加解密,这一篇换个方案,这个方案相比一个方案,节省了一部分的性能开销 第一步:新建自定义注解 /*** 敏感信息类注解*/ Inherited Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) public interface EnableSe…

tomcat session共享

1. 日志监控工具 安装 tar xf goaccess-1.4.tar.gz cd goaccess-1.4/ yum install GeoIP-devel-1.5.0-13.el7.x86_64.rpm yum install -y ncurses-devel.x86_64 ./configure --enable-utf8 --enable-geoiplegacy make make install2. 使用 goaccess /usr/local/nginx/logs/a…

java多线程(六)关键字Volatile可见性、有序性以及单个变量的原子性

volatile关键字 作用 volatile 是 Java 虚拟机提供的轻量级的同步机制,主要用来确保变量被线程安全地读取和写入。 当一个变量定义为 volatile 后,它具备以下特性: 可见性:确保不同线程对这个变量操作的可见性,即一…

自存实践本地访问 nginx放前端打包好的项目

nginx 部署前端项目_哔哩哔哩_bilibili 将打包好的dits文件放到 配置nginx.conf文件的location 启动命令 start nginx.exe 输入localhost即可访问打包好的项目 nginx的特点 1.静态资源 2.转发 设置代理转发请求 关闭nginx .\nginx.exe -s quit

Kubernetes-Pod调度基础

一.复制控制器(ReplicationController,RC) RC用来确保Pod副本数达到预期值,这样可以确保一个或多个同类Pod总是可用的。可以通过扩缩来增加或减少pod。 (1)示例: vim replicationcontroller-ng…

Codeforces Round 967 (Div. 2)

文章目录 A. Make All Equal题目描述思路代码 B. Generate Permutation题目描述思路代码 C. Guess The Tree题目描述思路代码 A. Make All Equal 题目描述 一个数组,最多实行n-1次,计算最少多少次可以变为同一个数 思路 计算重复次数最多的数&#x…

产业园区数字化转型:面对挑战,我们如何把握机遇加速前行?

在当今数字化的时代浪潮中,产业园区数字化转型已成为推动经济发展和提升竞争力的关键举措。然而,这一进程并非坦途,充满了各种挑战。 产业园区数字化转型面临着技术更新换代快的压力。新技术不断涌现,如物联网、人工智能、大数据…

Mybatis 速通秘籍 节省回顾知识点和学习成本

目录 一、MyBatis简介 1、MyBatis历史 2、MyBatis特性 3、MyBatis下载 4、和其它持久层技术对比 二、搭建MyBatis 1、开发环境 2、创建maven工程 a>打包方式 b>引入依赖 3、创建MyBatis的核心配置文件 4、创建mapper接口 5、创建MyBatis的映射文件 6、通过j…

python学习之路 - python的异常、模块与包

目录 一、python的异常、模块与包1、了解异常2、异常的捕获方法a、捕获基本异常b、捕获指定异常c、捕获多个异常d、捕获异常后的finally 3、异常的传递4、python模块a、定义b、基础语法c、使用方法d、补充 5、python包a、定义b、操作方法c、使用方法 6、安装第三方python包a、命…

MVC和三层架构

👉参考文章:mvc简介,mvc与三层架构的区别 一.MVC是什么? Model-View-Controller(MVC)是一种软件架构模式,是软件设计模式的体现 ,用于组织代码并分离关注点,广泛应用于…