Ceph集群从入门到入土

Ceph核心组件

Object Storage Daemon(OSD)

OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;

每个OSD节点负责存储一部分数据,并处理读写请求。

Pool、PG和OSD的关系:

  • 一个Pool里有很多PG;
  • 一个PG里包含一堆对象,一个对象只能属于一个PG;
  • PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型);

Monitor(Mon)

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。负责坚实整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权;

这是CEPH集群的管理节点之一,负责监控OSD节点和MDS节点的状态,并协调所有节点之间的通信。在CEPH集群中至少需要3个Mon节点来保证高可用性。

Metadata Server(MDS)

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务;

它可以支持像CephFS这样的分布式文件系统。

Manager(MGR)

ceph 官方开发了 ceph-mgr,主要目标实现 ceph 集群的管理,为外界提供统一的入口。例如cephmetrics、zabbix、calamari、promethus

这个组件会与Mon组件共同管理CEPH集群的各项任务,如数据平衡、容量规划等。

Rados Gateway(RGW)

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。这是一个对象存储网关,允许使用S3、Swift、NFS等协议与CEPH集群进行交互,将CEPH变身为一个云存储服务。

Admin

Ceph常用管理接口通常都是命令行工具,如rados、ceph、rbd等命令,另外Ceph还有可以有一个专用的管理节点,在此节点上面部署专用的管理工具来实现近乎集群的一些管理工作,如集群部署,集群组件管理等。

Ceph三种存储类型

块存储(RBD)

  • 优点:
    • 通过Raid与LVM等手段,对数据提供了保护;
    • 多块廉价的硬盘组合起来,提高容量;
    • 多块磁盘组合出来的逻辑盘,提升读写效率;
  • 缺点:
    • 采用SAN架构组网时,光纤交换机,造价成本高;
    • 主机之间无法共享数据;
  • 使用场景
    • docker容器、虚拟机磁盘存储分配;
    • 日志存储;
    • 文件存储;

文件存储(CephFS)

  • 优点:
    • 造价低,随便一台机器就可以了;
    • 方便文件共享;
  • 缺点:
    • 读写速率低;
    • 传输速率慢;
  • 使用场景
    • 日志存储;
    • FTP、NFS;
    • 其它有目录结构的文件存储

对象存储(Object)(适合更新变动较少的数据)

  • 优点:
    • 具备块存储的读写高速;
    • 具备文件存储的共享等特性;
  • 使用场景
    • 图片存储;
    • 视频存储;

基本步骤和说明

以下是建立Ceph集群的基本步骤:

  1. 安装和配置Mon节点:在Ceph集群中,Mon节点用于存储集群状态和监控信息。您需要安装并配置至少一个Mon节点。

    a.安装Ceph软件包并配置Ceph存储库。

    b.创建并编辑ceph.conf文件,设置mon_ip、public_network和cluster_network等参数。

    c.生成并分发Ceph监视器密钥环。

    d.启动并验证Mon服务。

  2. 安装和配置OSD节点:在Ceph集群中,OSD节点用于存储数据对象。您需要安装并配置至少一个OSD节点。

    a.安装Ceph软件包并配置Ceph存储库。

    b.使用OSD准备脚本创建并格式化OSD数据磁盘。

    c.创建并编辑ceph.conf文件,添加OSD节点。

    d.将OSD数据磁盘添加到Ceph集群中。

    e.启动并验证OSD服务。

  3. 安装和配置MGR和Dashboard:MGR节点用于管理Ceph集群,Dashboard节点提供Web界面以便于监控和管理集群。

    a.安装Ceph软件包并配置Ceph存储库。

    b.创建并编辑ceph.conf文件,启用管理模块和Dashboard模块。

    c.启动并验证MGR服务和Dashboard服务。

  4. 安装和配置MDS节点:如果您要使用Ceph分布式文件系统,则需要安装和配置至少一个MDS节点。

    a.安装Ceph软件包并配置Ceph存储库。

    b.创建并编辑ceph.conf文件,添加MDS节点。

    c.启动并验证MDS服务。

  5. 安装和配置radosgw:如果您要使用Ceph对象存储服务,则需要安装并配置至少一个radosgw节点。

    a.安装Ceph软件包并配置Ceph存储库。

    b.创建并编辑ceph.conf文件,添加rgw节点。

    c.使用radosgw-admin工具创建用户和密钥。

    d.启动并验证radosgw服务。

  6. 在客户端上验证块存储:您可以通过在客户端上执行块快照和克隆操作来验证Ceph集群是否正常工作。

    a.安装Ceph客户端软件包。

    b.创建rbd镜像池和rbd镜像。

    c.验证rbd镜像的读写操作。

    d.测试rbd快照和克隆功能。

  7. 在客户端上验证文件存储:如果您使用了Ceph分布式文件系统,则可以在客户端上验证其正常工作。

    a.安装Ceph客户端软件包。

    b.使用CephFS命令行工具挂载Ceph分布式文件系统。

    c.验证在挂载的文件系统中进行读写操作。

  8. 在客户端上验证对象存储:如果您使用了Ceph对象存储服务,则可以在客户端上验证其正常工作。

    a.安装S3cmd工具或其他S3客户端。

    b.使用S3工具上传和下载对象。

    c.验证对象的元数据和ACL。

  9. 使用Ceph测试iSCSI多路径:您可以使用Ceph来测试iSCSI多路径功能,以确保其能够正常工作。

    a.安装和配置iSCSI initiator和multipath工具。

    b.创建iSCSI target并将其映射到Ceph rbd设备。

    c.测试iSCSI连接和多路径

iSCSI

Ceph 的 iSCSI 功能是将 Ceph 存储池中的块设备(如 rbd 镜像)映射到 iSCSI 协议上,以便客户端通过 iSCSI 连接来访问这些块设备。这个功能使得 Ceph 可以提供高效的块存储服务,并允许用户通过标准的 iSCSI 接口来使用 Ceph 存储集群。

iSCSI 映射是通过 RADOS Gateway (radosgw) 和 iSCSI 网关实现的。iSCSI 网关在 radosgw 上运行,并将 iSCSI 请求转发给 Ceph 存储池中的 rbd 镜像。在客户端上,可以使用 iSCSI initiator 软件连接到 iSCSI 网关,并访问 Ceph 存储池中的 rbd 镜像。

Ceph 的 iSCSI 功能支持多路径和快照等高级特性,同时还能够与其他 Ceph 组件(如 OSD、MDS 和 radosgw)无缝集成,从而为用户提供完整的分布式存储解决方案。

Ceph版本选择

Ceph版本来源介绍

Ceph 12 是市面用的最广的稳定版本。

分布式存储之Ceph集群介绍搭建

安装前准备

  1. 安装要求
  • 最少三台Centos7系统虚拟机用于部署Ceph集群。硬件配置:2C4G,另外每台机器最少挂载三块硬盘(每块盘5G)
    cephnode01 192.168.0.201
    cephnode02 192.168.0.202
    cephnode03 192.168.0.203
  1. 环境准备(在Ceph三台机器上操作)
(1)关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
(2)关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
(3)关闭NetworkManager
systemctl disable NetworkManager && systemctl stop NetworkManager
(4)添加主机名与IP对应关系:
vim /etc/hosts
192.168.0.201 cephnode01
192.168.0.202 cephnode02
192.168.0.203 cephnode03
(5)设置主机名:
hostnamectl set-hostname cephnode01
hostnamectl set-hostname cephnode02
hostnamectl set-hostname cephnode03
(6)同步网络时间和修改时区
timedatectl #查看本地时间
timedatectl set-timezone Asia/Shanghai #改为亚洲上海时间
yum install -y chrony #同步工具
chronyc -n  sources -v #同步列表
chronyc tracking  #同步服务状态
systemctl restart chronyd.service && systemctl enable chronyd.service
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
(7)设置文件描述符
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
(8)内核参数优化
cat >> /etc/sysctl.conf << EOF
kernel.pid_max = 4194303
vm.swappiness = 0 
EOF
sysctl -p
(9ÿ
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值