• 第二课 ceph基础学习-OSD扩容换盘和集群运维


    第二课 ceph基础学习-OSD扩容换盘和集群运维

    第一节 OSD扩容

    1.1 扩容背景

    1. 在企业生产环境中,随着时间的迁移数据会存在磁盘空间不足,或者机器节点故障等情况。OSD又是实际存储数据,所以扩容和缩容OSD就很有必要性
    2. 随着我们数据量的增长,后期可能我们需要对osd进行扩容。目前扩容分为两种,一种为横向扩容,另外一种为纵向扩容
      • 横向扩容scale out增加节点,添加更多的节点进来,让集群包含更多的节点
      • 纵向扩容scale up增加磁盘,添加更多的硬盘进行,来增加存储容量

    1.2 横向扩容

    1. 横向扩容实际上就是把ceph osd节点安装一遍,增加节点。
    # NTP SERVER (ntp server 与阿里与ntp时间服务器进行同步)
    #首先我们配置ntp server,我这里在ceph01上面配置
    yum install -y ntp
    systemctl start ntpd
    systemctl enable ntpd
    timedatectl set-timezone Asia/Shanghai
    # 将当前的 UTC 时间写入硬件时钟
    timedatectl set-local-rtc 0
    # 重启依赖于系统时间的服务
    systemctl restart rsyslog 
    systemctl restart crond
    # 这样我们的ntp server自动连接到外网,进行同步 (时间同步完成在IP前面会有一个*号)
    ntpq -pn
    # NTP Agent (ntp agent同步ntp server时间)
    # ntp agent需要修改ntp server的地址
    vim /etc/ntp.conf 
    server  192.168.44.137  iburst
    
    # 注释默认的server,添加一条我们ntp server的地址
    systemctl restart ntpd
    systemctl enable ntpd
    #等待几分钟出现*号代表同步完成
    ntpq -pn
    crontab -e
    */5 * * * *  /usr/sbin/ntpdate 192.168.44.137
    # ntp时间服务器设置完成后在所有节点修改时区以及写入硬件
    timedatectl set-timezone Asia/Shanghai
    # 将当前的 UTC 时间写入硬件时钟
    timedatectl set-local-rtc 0
    # 重启依赖于系统时间的服务
    systemctl restart rsyslog 
    systemctl restart crond
    date
    
    
    # 添加host
    vim /etc/hosts
    192.168.44.140  ceph-04
    #关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
    iptables -P FORWARD ACCEPT
    setenforce 0
    sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    #ceph yum源配置
    #配置centos、epeo、ceph源
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    wget -O /etc/yum.repos.d/ceph.repo http://down.i4t.com/ceph/ceph.repo
    yum clean all
    yum makecache
    #安装ceph
    yum install -y ceph vim wget 
    # 进入mon节点,分发配置文件,添加osd节点
    cd /root/ceph-deploy/
    ceph-deploy --overwrite-conf config push ceph-04
    ceph-deploy osd create --data /dev/sdb ceph-04
    # 这时候可以看到节点已经添加进来了,并且ceph状态已经是OK
    ceph osd tree
    ceph -s
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    1.3 纵向扩容

    1. 纵向扩容即添加一块新硬盘即可 (我这里只添加ceph-01服务器一块10G盘)
    # 新增的硬盘有数据和分区需要初始化,可以通过下面的命令进行处理
    fdisk -l /dev/sdc            # 查看目前的硬盘空间
    # 需要进入到我们的ceph.conf目录,否则执行命令会报错
    cd ceph-deploy
    # 执行初始化命令,ceph-01为需要初始化的节点,/dev/sdc初始化硬盘 zap可以清理分区
    # 实际下面的命令只是执行了一个dd命令,将我们服务器的数据表内容清除
    ceph-deploy disk zap ceph-01 /dev/sdc    
    
    # 执行扩容ceph-01为扩容节点名称,--data为扩容节点硬盘
    ceph-deploy osd create ceph-01 --data /dev/sdc
    # 扩容完成我们可以看到ceph的状态,此时我们的osd已经发生变化
    ceph -s
    # 通过ceph osd tree可以看到我们三台节点,一共有4个osd,其中ceph-01节点有2台osd节点
    ceph osd tree
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    1.4 数据重分步rebalancing

    1. 数据重分布原理。当Ceph OSD添加到Ceph存储集群时,集群映射会使用新的 OSD 进行更新。回到计算 PG ID中,这会更改集群映射。因此,它改变了对象的放置,因为它改变了计算的输入。
    2. 下图描述了重新平衡过程(尽管相当粗略,因为它对大型集群的影响要小得多),其中一些但不是所有 PG 从现有 OSD(OSD 1 和 OSD 2)迁移到新 OSD(OSD 3) )。即使在再平衡时,许多归置组保持原来的配置,每个OSD都获得了一些额外的容量,因此在重新平衡完成后新 OSD 上没有负载峰值。
    3. PG中存储的是subject,因为subject计算比较复杂,所以ceph会直接迁移pg保证集群平衡
      在这里插入图片描述
    # 查看信息,每个OSD最多只有一个线程再做填充 "osd_max_backfills": "1",
    ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-01.asok config show | grep max_b
        "bluestore_compression_max_blob_size"
    • 1
    • 2
  • 相关阅读:
    编译rk3588_buildroot报错
    【OSTEP】分页: 较小的表 | 分页和分段 | 时空折中 | 多级页表 | 反向页表
    进程之间是怎么协作的(软件实现方法)
    Matlab:有关字符串数组的常见问题解答
    【Unity】2D角色跳跃控制器
    【彩色图像处理GUI】各种颜色映射、重新调整大小和更改分辨率、伽玛校正,对比度,反转颜色(Matlab代码实现)
    绝对最直白的MySQL MVCC机制总结,免费拿走
    树莓派系统压缩备份实操
    爬虫(五)
    瞄准镜-第12届蓝桥杯Scratch选拔赛真题精选
  • 原文地址:https://blog.csdn.net/aa18855953229/article/details/127380226