• Ceph存储部署


    前言:后续配置的解释可能标题不是很清晰,但是根据流程配置一定可以成功,还希望大家多多指点,希望能帮助过大家!(#.#)

    一、Ceph概述

    是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
    特点

    1. 统一存储
      虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
    2. 高扩展性
      扩容方便、容量大。能够管理上千台服务器、EB 级的容量。
    3. 可靠性强
      支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。
    4. 高性能
      因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

    二、Ceph的组件

    1. Monitor
      一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
    2. OSD
      OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
    3. MDS
      MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
    4. Object
      Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
    5. PG
      PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
    6. RADOS
      RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
    7. Libradio
      Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
    8. CRUSH
      CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
    9. RBD
      RBD全称RADOS block device,是Ceph对外提供的块设备服务。
    10. RGW
      RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
    11. CephFS
      CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

    三、架构

    1:文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)
    2:切片后的文件object会存入到Ceph中
    3:文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG
    4:PG是逻辑概念上对文件存储范围划分的索引
    5:根据PG索引将文件存储到指定服务器的OSD中

    四、安装步骤

    一、环境部署

    准备四台虚拟机分别是
    注意 一定要把主机名称改对,要不然容易混淆

    centos1 ip 192.168.115.128
    centos2 ip 192.168.115.130
    centos3 ip 192.168.115.131
    centos4 ip 192.168.115.132
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    每一台机器都要关闭防火墙、图形化、关闭selinx、更改主机名

    关闭防火墙
    	systemctl stop firewalld.service 
    	systemctl disable firewalld.service 
    关闭图形网络管理器
    	systemctl stop NetworkManager
    	systemctl disable NetworkManager
    关闭Selinux
    	setenforce 0
    主机名修改
    	hostnamectl set-hostname centos{1..4}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二、修改ssh配置

    sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
    
    • 1

    在这里插入图片描述

    重启ssh服务

    systemctl restart sshd
    
    • 1

    三、hosts文件修改

    在每个节点主机都要这么操作
    在vim /etc/hosts下

    vim /etc/hosts
    
    • 1

    添加内容

    192.168.115.128	centos1
    192.168.115.130	centos2
    192.168.115.131	centos3
    192.168.115.132	centos4
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    四台机器上都进行这样的操作

    四、ssh免密配置

    在这里插入图片描述
    按照上图的操作,可成功在四台机器上实现免密登录

    五、时间同步

    首先在centos1上开启时间同步服务器
    安装

    yum install -y ntp
    
    • 1

    在这里插入图片描述
    配置

    vim /etc/ntp.conf
    
    • 1

    在配置文件中注释掉下面四行的内容

     21 #server 0.centos.pool.ntp.org iburst
     22 #server 1.centos.pool.ntp.org iburst
     23 #server 2.centos.pool.ntp.org iburst
     24 #server 3.centos.pool.ntp.org iburst
    
    • 1
    • 2
    • 3
    • 4

    下面两行的内容添加到配置文件的最后

    server 127.127.1.0    定义时间服务器
    
    • 1
    fudge 127.127.1.0 stratum 8   定义时间层次
    
    • 1

    更改完成后 重启服务并设置开机自启

    systemctl start ntpd
    
    • 1
    systemctl enable ntpd
    
    • 1

    重启完成后,要在后三台机器上与第一台机器对时
    输入命令

    for i in 130 131;do ssh 192.168.115.$i  ntpdate 192.168.115.128;done
    
    • 1

    在这里插入图片描述
    因为初始创建的时候就已经加入了磁盘后重启的,所以就不需要再次加一块磁盘了,如果没有增加磁盘的话,需要热扫描或者重启
    命令

    echo "- - -" > /sys/class/scsi_host/host0/scan
    
    • 1
    for i in 130 131;do ssh 192.168.115.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done
    
    • 1

    六、格式化磁盘

    在每一台机器上都进行格式化磁盘的操作

    mkfs.xfs /dev/sdb
    
    • 1

    在这里插入图片描述

    七、后续的操作暂时都在centos1执行

    安装epel 和 lttng-ust

    yum install epel-release -y
    
    • 1
    yum install lttng-ust -y
    
    • 1

    在这里插入图片描述
    安装完成后
    输入

    vim /etc/yum.repos.d/ceph.repo
    
    • 1

    在里面加入内容

    [Ceph]
    name=Ceph packages for $basearch
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=https://download.ceph.com/keys/release.asc
    
    [Ceph-noarch]
    name=Ceph noarch packages
    # 清华源
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=https://download.ceph.com/keys/release.asc
    
    [ceph-source]
    name=Ceph source packages
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=https://download.ceph.com/keys/release.asc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    输入后 输入 yum clean all 清除yum缓存

     yum clean all
    
    • 1

    创建缓存

    yum makecache fast
    
    • 1

    在这里插入图片描述
    成功的提示就是 查看 元数据缓存已建立
    在这里插入图片描述

     yum -y install ceph ceph-deploy 
    
    • 1

    在这里插入图片描述
    集群构建
    创建集群目录

    	mkdir -p /usr/local/soft/cephcluster
    	cd /usr/local/soft/cephcluster
    
    • 1
    • 2

    创建集群 创建集群一定一定要进入集群目录下操作否则是报错
    输入命令创建集群

    ceph-deploy new centos1 centos2 centos3
    
    • 1

    在这里插入图片描述
    将下方内容粘贴到 ceph.conf下

    #对外开放网段
    public network = 192.168.115.0/24
    # 设置pool池默认分配数量
    osd pool default size = 2
    # 容忍更多的时钟误差
    mon clock drift allowed = 2
    mon clock drift warn backoff = 30
    # 允许删除pool
    mon_allow_pool_delete = true
    [mgr]
    # 开启WEB仪表盘
    mgr modules = dashboard
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    继续安装,注意这一步相当的重要,这一步如果没有报错后面都很好做

    ceph-deploy install centos1 centos2 centos3
    
    • 1

    初始化monitor

    ceph-deploy mon create-initial
    
    • 1

    同步管理信息

    ceph-deploy admin  centos1 centos2 centos3
    
    • 1

    安装mgr 管理守护进程

    ceph-deploy mgr create  centos1 centos2 centos3
    
    • 1

    安装rgw

    ceph-deploy rgw create centos1 centos2 centos3
    
    • 1

    创建mds服务

    ceph-deploy mds create centos1 centos2 centos3
    
    • 1

    OSD安装
    创建OSD

    ceph-deploy osd create --data /dev/sdb centos1
    
    • 1
    ceph-deploy osd create --data /dev/sdb centos2
    
    • 1
    ceph-deploy osd create --data /dev/sdb centos3
    
    • 1

    查看集群状态

    ceph -s
    
    • 1

    查看验证结果
    在这里插入图片描述
    dashboard安装
    开启dashboard模块

    ceph mgr module enable dashboard
    
    • 1

    生成签名

    ceph dashboard create-self-signed-cert
    
    • 1

    创建目录

    mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
    
    • 1

    进入路径

    cd /usr/local/jx/cephcluster/mgr-dashboard
    
    • 1

    使用OpenSSL生成自签名证书

    openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca
    
    • 1

    在这里插入图片描述
    启动服务

    ceph mgr module disable dashboard
    
    • 1

    设置开机自启

    ceph mgr module enable dashboard
    
    • 1

    设置访问地址与端口

    ceph config set mgr mgr/dashboard/server_addr 192.168.115.128
    
    • 1
    ceph config set mgr mgr/dashboard/server_port 9001
    
    • 1

    关闭https

    ceph config set mgr mgr/dashboard/ssl false
    
    • 1

    查看当前运行管理器的服务状态

    ceph mgr services
    
    • 1

    设置Ceph仪表板的登录凭据。Ceph仪表板是Ceph集群的Web管理界面,可以通过此命令设置登录凭据(用户名和密码)。在示例命令中,"jx123"是要设置的用户名,"123.com"是与该用户名关联的密码。这个命令使得用户可以使用指定的凭据登录Ceph仪表板,以便进行集群管理和监控等操作。

    ceph dashboard set-login-credentials jx123 123.com
    
    • 1

    访问网站验证
    注意不要手动输入 要复制粘贴否则无法访问

    https://192.168.115.128:8443
    
    • 1

    显示结果
    请添加图片描述
    请添加图片描述
    显示了登录界面
    请添加图片描述
    输入账户 jx123 密码 123.com 成功进入界面
    在这里插入图片描述
    ceph文件系统创建
    创建存储池

    ceph osd pool create cephfs_data 128
    
    • 1
    ceph osd pool create cephfs_metadata 64
    
    • 1

    查看存储池

     ceph osd lspools
    
    • 1

    创建文件系统

    ceph fs new  fs_test  cephfs_metadata cephfs_data
    
    • 1

    查看文件系统

    ceph fs ls
    
    • 1

    查看mds状态

    ceph mds stat
    
    • 1

    显示状态结果

    ceph mds stat
    fs_test-1/1/1 up  {0=centos3=up:active}, 2 up:standby
    
    • 1
    • 2

    根据以上信息,可以判断状态正常。文件系统(fs_test-1/1/1)是活跃状态,其中一个元数据服务器(centos3)处于活跃状态,而另外两个元数据服务器是备用状态。这符合正常的高可用性设置,其中一个MDS处于活跃状态,其他MDS作为备用,以确保系统的可靠性和冗余
    安装

    ceph-deploy install centos4
    
    • 1

    同步管理信息 路径要在

    /usr/local/soft/cephcluster下面这个路径
    
    • 1
    ceph-deploy admin  centos4
    
    • 1

    在centos4中安装

    yum install -y ceph-fuse
    
    • 1

    centos4和centos1中 都要存在

     ceph.client.admin.keyring
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在centos4中 创建挂载目录

    mkdir /ceph
    
    • 1

    挂载ceph文件系统

    ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.128:6789 /ceph
    
    • 1

    提示
    在这里插入图片描述

    五、成功将ceph配置完成

    df -Th查看挂载结果
    在这里插入图片描述

  • 相关阅读:
    789. 数的范围
    建模助手(Revit)插件如何生成基坑开挖和地下连续墙?
    RabbitMQ - 06 - Topic交换机
    Docker自定义镜像
    Shell脚本之if的用法
    【调制解调】ISB 独立边带调幅
    关于wParam和lParam
    在方法上打断点?劝你不要乱来
    表白墙(前端+后端+数据库)
    【数据结构】栈
  • 原文地址:https://blog.csdn.net/Mapinyi666/article/details/133137102