cephFS高可用分布式文件系统部署指南

简介: 关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。

一.cephFS概述

1.什么是cephFS

cephFS是一个可用的文件系统,可以简单理解为高可用,高性能,扩展性强的nfs。

cephFS存储数据时将其分为两个部分,元数据和实际数据。

推荐阅读:
    https://docs.ceph.com/en/nautilus/cephfs/

2.cephFS架构图解

如上图所示,本教程会做出两种cephFS高可用的架构设计

二.部署高可用cephFS集群

1.在ceph-deploy节点安装ceph-mds

    1.查看现有环境是没有mds服务器
[root@harbor250 ceph-cluster]# ceph -s
  cluster:
    id:     5821e29c-326d-434d-a5b6-c492527eeaad
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph141,ceph142,ceph143 (age 60m)
    mgr: ceph142(active, since 61m), standbys: ceph141, ceph143
    osd: 7 osds: 7 up (since 59m), 7 in (since 19h)

  task status:

  data:
    pools:   3 pools, 96 pgs
    objects: 60 objects, 100 MiB
    usage:   7.8 GiB used, 1.9 TiB / 2.0 TiB avail
    pgs:     96 active+clean

[root@harbor250 ceph-cluster]# 
[root@harbor250 ceph-cluster]# pwd
/yinzhengjie/softwares/ceph-cluster
[root@harbor250 ceph-cluster]# 

    2.安装mds服务器
[root@harbor250 ceph-cluster]# ceph-deploy --overwrite-conf mds create  ceph141 ceph142 ceph143
...
[ceph141][INFO  ] Running command: systemctl start ceph-mds@ceph141
[ceph141][INFO  ] Running command: systemctl enable ceph.target
...
[ceph142][INFO  ] Running command: systemctl start ceph-mds@ceph142
[ceph142][INFO  ] Running command: systemctl enable ceph.target
...
[ceph143][INFO  ] Running command: systemctl start ceph-mds@ceph143
[ceph143][INFO  ] Running command: systemctl enable ceph.target
[root@harbor250 ceph-cluster]#

2.查看集群状态

[root@ceph141 ~]# ceph -s  # 注意观察"mds"相关字段。
  cluster:
    id:     5821e29c-326d-434d-a5b6-c492527eeaad
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph141,ceph142,ceph143 (age 64m)
    mgr: ceph142(active, since 64m), standbys: ceph141, ceph143
    mds:  3 up:standby  # 注意,有3个mds均处于standby模式,无法对外提供服务
    osd: 7 osds: 7 up (since 63m), 7 in (since 19h)

  data:
    pools:   3 pools, 96 pgs
    objects: 60 objects, 100 MiB
    usage:   7.8 GiB used, 1.9 TiB / 2.0 TiB avail
    pgs:     96 active+clean

[root@ceph141 ~]# 
[root@ceph141 ~]# ceph mds stat  # 只查看mds相关状态信息
 3 up:standby
[root@ceph141 ~]#

3.创建元数据存储池和数据存储池

[root@ceph141 ~]# ceph osd pool create yinzhengjie-cephfs-metadata 32 32
pool 'yinzhengjie-cephfs-metadata' created
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph osd pool create yinzhengjie-cephfs-data 128 128
pool 'yinzhengjie-cephfs-data' created
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph osd pool ls detail  | grep cephfs
pool 5 'yinzhengjie-cephfs-metadata' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 634 flags hashpspool stripe_width 0
pool 6 'yinzhengjie-cephfs-data' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 637 flags hashpspool stripe_width 0
[root@ceph141 ~]#

4.初始化cephFS文件系统

    1 查看ceph集群现有的文件系统
[root@ceph141 ~]# ceph fs ls
No filesystems enabled
[root@ceph141 ~]# 


    2 创建cephFS实例
[root@ceph141 ~]# ceph fs new yinzhengjie-linux-cephfs yinzhengjie-cephfs-metadata yinzhengjie-cephfs-data
new fs with metadata pool 5 and data pool 6
[root@ceph141 ~]# 

    3 再次查看ceph集群现有的文件系统
[root@ceph141 ~]# ceph fs ls
name: yinzhengjie-linux-cephfs, metadata pool: yinzhengjie-cephfs-metadata, data pools: [yinzhengjie-cephfs-data ]
[root@ceph141 ~]# 

    4 查看cephFS的状态信息
[root@ceph141 ~]# ceph fs status yinzhengjie-linux-cephfs
yinzhengjie-linux-cephfs - 0 clients
======================
+------+--------+---------+---------------+-------+-------+
| Rank | State  |   MDS   |    Activity   |  dns  |  inos |
+------+--------+---------+---------------+-------+-------+
|  0   | active | ceph143 | Reqs:    0 /s |   10  |   13  |
+------+--------+---------+---------------+-------+-------+
+---------------------------+----------+-------+-------+
|            Pool           |   type   |  used | avail |
+---------------------------+----------+-------+-------+
| yinzhengjie-cephfs-metadata | metadata | 1536k |  629G |
|   yinzhengjie-cephfs-data   |   data   |    0  |  629G |
+---------------------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|   ceph142   |
|   ceph141   |
+-------------+
MDS version: ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable)
[root@ceph141 ~]# 


    5 再次查看集群信息
[root@ceph141 ~]# ceph mds stat
yinzhengjie-linux-cephfs:1 {0=ceph143=up:active} 2 up:standby
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph -s
  cluster:
    id:     5821e29c-326d-434d-a5b6-c492527eeaad
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph141,ceph142,ceph143 (age 70m)
    mgr: ceph142(active, since 70m), standbys: ceph141, ceph143
    mds: yinzhengjie-linux-cephfs:1 {0=ceph143=up:active} 2 up:standby
    osd: 7 osds: 7 up (since 69m), 7 in (since 19h)

  data:
    pools:   5 pools, 256 pgs
    objects: 82 objects, 100 MiB
    usage:   7.8 GiB used, 1.9 TiB / 2.0 TiB avail
    pgs:     256 active+clean

[root@ceph141 ~]#

5.验证mds的高可用

[root@ceph143 ~]# ceph mds stat
yinzhengjie-linux-cephfs:1 {0=ceph143=up:active} 2 up:standby
[root@ceph143 ~]# 
[root@ceph143 ~]# systemctl stop ceph-mds@ceph143.service   # 停止mds服务后,会自动触发切换mds角色
[root@ceph143 ~]# 
[root@ceph143 ~]# ceph mds stat
yinzhengjie-linux-cephfs:1 {0=ceph142=up:active} 1 up:standby
[root@ceph143 ~]# 
[root@ceph143 ~]# 
[root@ceph143 ~]# systemctl start ceph-mds@ceph143.service 
[root@ceph143 ~]# 
[root@ceph143 ~]# ceph mds stat  # 服务启动后,发现并不会抢占mds角色。
yinzhengjie-linux-cephfs:1 {0=ceph142=up:active} 2 up:standby
[root@ceph143 ~]#

三.cephFS两主一从架构

1.部署ephFS两主一从环境

    1.修改之前查看ceph集群的mds状态
[root@ceph141 ~]# ceph mds stat
yinzhengjie-linux-cephfs:1 {0=ceph142=up:active} 2 up:standby
[root@ceph141 ~]# 


    2.修改max_mds的数量,默认值为1
[root@ceph141 ~]# ceph fs get yinzhengjie-linux-cephfs | grep max_mds
max_mds    1
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph fs set yinzhengjie-linux-cephfs max_mds 2
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph fs get yinzhengjie-linux-cephfs | grep max_mds
max_mds    2
[root@ceph141 ~]#  

    2.查看集群的状态
[root@ceph141 ~]# ceph mds stat
yinzhengjie-linux-cephfs:2 {0=ceph142=up:active,1=ceph141=up:active} 1 up:standby
[root@ceph141 ~]# 
[root@ceph141 ~]# 
[root@ceph141 ~]# ceph fs status yinzhengjie-linux-cephfs
yinzhengjie-linux-cephfs - 0 clients
======================
+------+--------+---------+---------------+-------+-------+
| Rank | State  |   MDS   |    Activity   |  dns  |  inos |
+------+--------+---------+---------------+-------+-------+
|  0   | active | ceph142 | Reqs:    0 /s |   10  |   13  |
|  1   | active | ceph141 | Reqs:    0 /s |   10  |   13  |
+------+--------+---------+---------------+-------+-------+
+---------------------------+----------+-------+-------+
|            Pool           |   type   |  used | avail |
+---------------------------+----------+-------+-------+
| yinzhengjie-cephfs-metadata | metadata | 2688k |  629G |
|   yinzhengjie-cephfs-data   |   data   |    0  |  629G |
+---------------------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|   ceph143   |
+-------------+
MDS version: ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable)
[root@ceph141 ~]#

2.验证两主一从架构

    1 停止服务
[root@ceph142 ~]# ceph mds stat
yinzhengjie-linux-cephfs:2 {0=ceph142=up:active,1=ceph141=up:active} 1 up:standby
[root@ceph142 ~]# 
[root@ceph142 ~]# systemctl stop ceph-mds@ceph142.service
[root@ceph142 ~]# 
[root@ceph142 ~]# ceph mds stat
yinzhengjie-linux-cephfs:2 {0=ceph143=up:active,1=ceph141=up:active}
[root@ceph142 ~]# 

    2 启动服务
[root@ceph142 ~]# systemctl start ceph-mds@ceph142.service
[root@ceph142 ~]# 
[root@ceph142 ~]# ceph mds stat
yinzhengjie-linux-cephfs:2 {0=ceph143=up:active,1=ceph141=up:active} 1 up:standby
[root@ceph142 ~]# 
[root@ceph142 ~]# 

    3 再次查看集群状态信息
[root@ceph141 ~]# ceph fs status yinzhengjie-linux-cephfs
yinzhengjie-linux-cephfs - 0 clients
======================
+------+--------+---------+---------------+-------+-------+
| Rank | State  |   MDS   |    Activity   |  dns  |  inos |
+------+--------+---------+---------------+-------+-------+
|  0   | active | ceph143 | Reqs:    0 /s |   10  |   13  |
|  1   | active | ceph141 | Reqs:    0 /s |   10  |   13  |
+------+--------+---------+---------------+-------+-------+
+---------------------------+----------+-------+-------+
|            Pool           |   type   |  used | avail |
+---------------------------+----------+-------+-------+
| yinzhengjie-cephfs-metadata | metadata | 2688k |  629G |
|   yinzhengjie-cephfs-data   |   data   |    0  |  629G |
+---------------------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|   ceph142   |
+-------------+
MDS version: ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable)
[root@ceph141 ~]# 


综上所述,建议最少保留一个备用节点,如果都指定为主节点,是可以正常工作,但是挂掉任意个主节点,此时cephFS集群不工作!
目录
相关文章
|
6月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2152 57
|
9月前
|
Java 关系型数据库 MySQL
新一代 Cron-Job分布式任务调度平台 部署指南
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
310 107
|
7月前
|
SQL 数据可视化 网络安全
YashanDB分布式可视化部署
本文介绍YashanDB的分布式部署流程,涵盖服务端安装、数据库基本信息与服务器配置、节点信息设置、建库参数调整、环境变量配置及安装结果检查等步骤。通过可视化Web界面操作,详细说明了各环节配置方法和注意事项,确保用户顺利完成数据库集群的搭建与初始化设置。适用于需要分布式数据库部署的场景,提供全面的操作指导。
YashanDB分布式可视化部署
|
8月前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
本文由仁励家网络科技(杭州)有限公司架构师赵云兴、葛志刚撰写,探讨了公司在优化HR SaaS解决方案时遇到的系统资源浪费和运维成本高的问题。通过引入Koupleless框架,成功将模块体积从500M缩减至5M以下,部署时间从6分钟缩短至3分钟,并大幅节省服务器资源。文章详细介绍了Koupleless的部署方案及优化措施,感谢Koupleless团队的专业支持,使人力家实现了多应用合并部署,降低了运维成本。
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
8月前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
通过引入Koupleless框架,解决了多应用部署中资源浪费和运维成本高的问题,实现了模块瘦身、快速部署及流量控制优化,大幅降低了服务器资源占用和发布耗时,提升了系统稳定性和运维效率。最终,人力家成功实现了多应用的轻量集中部署,显著减少了运维成本。
 Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
9月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
534 5
|
9月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
228 0
|
3月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
315 2
|
3月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
249 6

热门文章

最新文章