当前位置:网站首页 > C++编程 > 正文

ceph存储搭建(ceph 搭建)



  • Ceph监视器(ceph-mon):
    ceph mon用来维护集群状态的映射,包括监视器映射,管理器映射,OSD映射,MDS映射和CRUSH映射,这些映射是ceph守护程序相互协调所需的关键状态,另外还负责客户端到ceph存储的身份验证;通常要实现高可用,需要3个或以上的ceph-mon服务。
  • 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守护进程。
  • Ceph对象存储(ceph-osd):
    Ceph OSD是对象存储守护程序,是用来存储数据的核心组件,实现数据存储、数据复制和恢复、数据的重新平衡,并会检查其他Ceph OSD守护程序的心跳来向ceph-mon和ceph-mgr提供一些监控信息,通常至少需要3个ceph-osd才能实现冗余和高可用性,部署的时候ceph-osd会和ceph-mon分开节点部署。
  • Ceph元数据服务(ceph-mds):
    Ceph MDS为ceph文件系统存储元数据,注意Ceph块设备和对象存储不用mds存储元数据,Ceph MDS允许POSIX文件系统用户执行基本命令,而不会将压力都集中到Ceph OSD集群上,通常mds可以选择部署至少2个节点,可以和其他组件一起也可以分开。
hostnameIPnode110.130.0.101node210.130.0.102node310.130.0.103

node1:hostnamectl set-hostname node1
node2:hostnamectl set-hostname node2
node3:hostnamectl set-hostname node3
配置/etc/hosts文件,三个机器中都需执行

 

然后分别重启node1机器、node2机器、node3机器

node1为例:

 

node2和node3机器中也需要分别执行

 
 
 
 
 

安装源仓库包和部分必须软件包

 

配置Loongnix-Ceph-Nautilus.repo

 
 

安装过程中会自动安装python3.6以及相关的依赖等,安装完成之后最好再确认一下下面两个python模块是否存在,不存在就需要安装一下

 

这样ceph基本软件包安装完成,注意所有节点都要安装一遍

 
 

生成ceph-mon 映射,存储到/tmp/monmap,注意主机名、ip、fsid要根据实际情况进行修改

 

创建ceph-mon数据目录

 

使用刚才生成的密钥环和映射初始化数据目录

 

调整数据目录权限为ceph

 

启动ceph-mon服务

 

【问题描述】
【问题解决
systemctl daemon-reload
systemctl restart ceph-mon@node1

 

health: HEALTH_WARN情况分析解决:
1、
【问题解决】
禁用安全模式,ceph config set mon auth_allow_insecure_global_id_reclaim false
2、
【问题解决】
启用msgr2,ceph mon enable-msgr2

ceph-mgr和ceph-mon是成对出现的,在每个ceph-mon的节点上都应该有ceph-mgr进程,然后就是配置并启动ceph-mgr守护进程。

 
 

-i参数指定主机名,启动后确认进程是否存在

正常显示active就可以了

 

部署ceph-osd的步骤应该在所有的osd节点上运行,当然这里是node2和node3,每个节点都要执行同样的操作,首先要将node1上面的osd密钥发送到osd节点,否则创建osd会报错授权失败,如果刚才已经同步可以忽略,否则就在node1上执行:

 
 
 

除了上面的命令,使用下面的步骤也同样可以创建osd节点,步骤更细一些,分为准备和激活两个阶段:

 
 

然后编译配置文件:/etc/ceph/ceph.conf,添加如下的配置块:

 

这里node1就是主机名,注意根据实际的mds节点替换,保存后将配置文件同步到集群所有节点,最后启动ceph-mds守护进程:

 

这里ceph-mds和ceph-mon是同一个节点,因此都是指定node1,启动之后查看进程是否存在,然后通过ceph -s可以看到mds的状态:

 

如图所示,目前所有的组件状态都是正常的

ceph所有的存储都是基于存储池才能分配,因此要先创建存储池,初始情况至少创建两个存储池(RADOS):1个用于存储数据,1个用于存储元数据信息,创建命令如下:

 

存储池可以创建多个,并且所有的存储池共享底层的存储空间,比如A存储池占用了一部分,那个B存储池就只能用剩下的部分了,而且之后挂载后剩余大小的显示也会变小,这个后面可以验证
另外就是注意这里pg大小正常指定128或64就够了,正常默认1个pool最多支持250个pg,可以通过参数调整限制大小,这里两个池都是一样的数据池,后续创建文件系统会指定哪个用于数据,哪个用于元数据存储,这里名字只是个代号
然后基于存储池创建文件系统,命令如下:

 

执行成功之后通过命令: ceph fs ls 查看存在的文件系统,正常显示如下:

 

可以通过ceph mds stat查看mds当前的活动状态,也可以通过ceph -s查看
【问题描述】
【问题解决】ceph config set global mon_warn_on_pool_no_redundancy false

 

正常没有任何错误信息就挂载上了,通过 df -h 可以查看挂载的情况以及容量

 

查看ceph状态:

 到此这篇ceph存储搭建(ceph 搭建)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • apc和aps什么意思(apc+aps=1是什么意思)2025-04-01 19:45:10
  • cmake中文手册pdf(cmake中文文档)2025-04-01 19:45:10
  • c++ 条件变量性能(c++ 条件语句)2025-04-01 19:45:10
  • git clone git@ 密码(git clone 输入密码)2025-04-01 19:45:10
  • c加加编程入门基础(c加加编程入门基础要用电脑么)2025-04-01 19:45:10
  • tomcat乱码有影响吗(tomcat出现乱码)2025-04-01 19:45:10
  • 阿司匹林与abc有什么区别(阿司匹林和什么区别)2025-04-01 19:45:10
  • conv1D(conv1D什么意思)2025-04-01 19:45:10
  • ifstream和ofstream的区别(c++ifstream和ofstream)2025-04-01 19:45:10
  • conda虚拟环境列表(conda 虚拟环境)2025-04-01 19:45:10
  • 全屏图片