• ceph分布式存储部署


    一、概述

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

    特点

    1、统一存储

            虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

    2、高扩展性

            扩容方便、容量大。能够管理上千台服务器、EB 级的容量。

    3、可靠性高

            支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。

    4、高性能

            因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

    二、组件

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

    三、架构图

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

    5:根据PG索引将文件存储到指定服务器的OSD中

    四、搭建

    1、环境拓扑

    node1monitor
    osd
    192.168.2.3

    node2monitor
    osd
    192.168.2.4

    node3monitor
    osd
    192.168.2.5

    node4monitor
    osd
    192.168.2.6

    2、准备工作

    1.关闭防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service

    2.关闭图形化网络管理器

    systemctl stop NetworkManager
    systemctl disable NetworkManager

    3.配置IP

    sed -i "s/ONBOOT=no/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-ens33
    systemctl restart network

    4.关闭selinux

    setenforce 0

    5.主机名修改

    hostnamectl set-hostname node{1..4}

    (每个服务器都配置)

    6.修改ssh配置

    sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
    systemctl restart sshd

     

    7.hosts文件修改

                    每个节点主机都需要操作

    vim /etc/hosts192.168.2.3 node1
    192.168.2.4 node2
    192.168.2.5 node3
    192.168.2.6 node4
    scp /etc/hosts 192.168.2.3【4 5 6】:/etc/

    8.ssh免密配置

    node1ssh-keygen
    for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
    node2ssh-keygen
    for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
    node3ssh-keygen
    for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
    node4ssh-keygen
    for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done

    9.时间同步

    1、在node1开启时间同步服务器
    2、安装

                    yum install -y ntp

    3、配置
    vim /etc/ntp.conf
    server 127.127.1.0 定义时间服务器
    fudge 127.127.1.0 stratum 8


        定义时间层次

     

     

    4、启动

                    systemctl start ntpd
                    systemctl enable ntpd

    5、客户端对时
    for i in 4 5;do ssh 192.168.2.$i  ntpdate 192.168.2.3;done

    10.添加磁盘

    node1 node2 node3 服务器上都添加一块磁盘

    11.热扫描磁盘

    echo "- - -" > /sys/class/scsi_host/host0/scan

    for i in 4 5;do ssh 192.168.2.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done

    cd /sys/class/scsi_host

    for i in `ls`;do echo "- - - ">$i/scan;done

    cd /sys/class/scsi_host/
    for i in `ls ./`;do echo "- - -" > $i/scan;done
    lsblk

    12.格式化

    mkfs.xfs /dev/sdb

    3、ceph安装(只在node1上操作)

    1.yum install epel-release -y

    2.yum install lttng-ust -y

    3.添加ceph安装源

    [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

     

    4. yum -y install ceph ceph-deploy

    5.集群架构

    创建集群目录

            mkdir -p /usr/local/soft/cephcluster
            cd /usr/local/soft/cephcluster

    创建集群

            ceph-deploy new node1 node2 node3

    修改配置文件

            vim ceph.conf

    添加以下内容:

    安装

            ceph-deploy install node1 node2 node3

    初始化monitor

            ceph-deploy mon create-initial

    同步管理信息

                    ceph-deploy admin  node1 node2 node3

    安装mgr(管理守护进程)

            ceph-deploy mgr create  node1 node2 node3

    安装rgw

            ceph-deploy rgw create node1 node2 node3

    创建mds服务

            ceph-deploy mds create node1 node2 node3

    OSD安装
    创建OSDceph-deploy osd create --data /dev/sdb node1
    ceph-deploy osd create --data /dev/sdb node2
    ceph-deploy osd create --data /dev/sdb node3

     

    查看集群状态

            ceph -s

    6.dashboard安装

            ceph mgr module enable dashboard    开启dashboard模块

            ceph dashboard create-self-signed-cert    生成签名

            mkdir -p /usr/local/jx/cephcluster/mgr-dashboard            创建目录

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

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

    启动服务:

            ceph mgr module disable dashboard
            ceph mgr module enable dashboard

    设置访问地址与端口

            ceph config set mgr mgr/dashboard/server_addr 192.168.2.3
            ceph config set mgr mgr/dashboard/server_port 9001


            ceph config set mgr mgr/dashboard/ssl false    关闭https

            ceph mgr services

            ceph dashboard set-login-credentials jx123 123.com  创建账户

           https://192.168.2.3:8443

    7.ceph文件系统创建

    1-创建存储池

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

        少于5个OSD可把pg_num设置为128
        OSD数量在5到10,可以设置pg_num为512
        OSD数量在10到50,可以设置pg_num为4096
        OSD数量大于50,需要计算pg_num的值

    2-查看存储池

             ceph osd lspools

    3-创建3-文件系统

            ceph fs new  fs_test  cephfs_metadata cephfs_data

    4-查看文件系统

            ceph fs ls

    5-查看mds状态

            ceph mds stat

    4、客户端挂载

    1.在node1中

    安装:ceph-deploy install node4

    同步管理信息    ceph-deploy admin  node4

                    非集群节点,/var/run/ceph 无内容

    2.在node4上操作

            yum install -y ceph-fuse

    3.查看信息

            ls  /etc/ceph

    ceph.client.admin.keyring

    4.创建挂载目录

            mkdir /ceph

    5.挂载ceph文件系统

            ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.2.3:6789 /ceph

    查看web页面


  • 相关阅读:
    前端三大Css处理器之Less
    adb and 软件架构笔记
    Java雪花算法生成id
    AI+教育的结合
    追求极致性能!Qwik 1.0版本发布
    K8s 有损发布问题探究
    山西电力市场日前价格预测【2023-10-18】
    计算机组成原理——数据的表示和运算②
    CANopen扫盲
    CDN加速在目前网络安全里的重要性
  • 原文地址:https://blog.csdn.net/lsqaa/article/details/133141909