ceph - crushmap 扩容记录

前提

参考 ceph - 扩容记录 文档记录了如何进行 ceph 扩容的部署过程

最后一步, 需要对 ceph crushmap 进行重定义

容量计算

新加入 3 台存储节点, 每个存储节点具有 10 个 OSD 节点, 每个 OSD 对应 4TB 空间, 即共增加 3* 10 * 4TB = 120 TB

由于一直都有业务在 ceph 存储中使用, 假如立即把所有新加入的 ceph 节点存储使用率设定为 100% 会导致 ceph 集群处于一个维护期中, CPU, 网络带宽都会被需要进行恢复的 ceph 影响, 所有业务都会出现数据卡顿问题,

因此, 计划每天晚上只对 ceph osd 进行部分部分扩容,

3台存储节点, 每个存储节点具有 10 个OSD 节点, 每个 OSD 对应 4TB 空间, 每个 OSD 晚上扩展 200GB 空间, 即 3 * 10 * 200GB = 6TB 空间

我们从 2015-12-26 开始, 对 ceph 通过修改 weight 方法, 对 ceph 进行扩容, 每次扩容约为 CEPH 添加 6 TB 磁盘空间

实施

参考脚本

#!/bin/bash
#
#   edit by terry.zeng@vipshop.com
#     last_version: 2015-12-25
#       modify: reweight -> 0.5   || ceph status  ( grep 'misplaced' )
#
#  目标: 自动进行 ceph weight 调整,
#  条件
#   调整时间 start_time 1,  end_time 8 之间
#   ceph 必须是 health_ok 状态
#   最大可用 weight 10
#               需要调整的主机 reweight_host
#
#               邮件辅助 sh: /root/ceph/check_ceph_reweight.sh [只有发生 ceph -s [出现 misplace] 或其状态改变时候才发邮件
#

time=`date +%Y-%m-%d-%H%M%S`
savecrushfile='/root/ceph/crushmap.txt'
start_time=1
end_time=7
reweight=0.5
reweight_host='hh-yun-ceph-cinder014-128054 hh-yun-ceph-cinder021-128071 hh-yun-ceph-cinder022-128072'
max_weight=10.000
now=`date +%k`

### time

if [[ $now -lt $start_time ]] || [[ $now -ge $end_time ]]
then
       exit
fi

#### ceph status

ceph -s | grep 'misplaced' > /dev/null
if [ $? -eq 0 ]
then
        exit
fi

echo $time 'reweight start' >> /root/ceph/reweight_record.txt

###  rewieght

if [ -f $savecrushfile ]
then
        mv $savecrushfile $savecrushfile-$time
fi

ceph osd getcrushmap -o /root/ceph/crushmap.dump
crushtool -d /root/ceph/crushmap.dump -o /root/ceph/crushmap.txt
for host in $reweight_host
do
        weight=`grep $host $savecrushfile | grep item | awk '{print $4}'`
        line=`grep  --line-number $host $savecrushfile  | grep item | awk -F: '{print $1}'`
        new_weight=`echo $weight + $reweight | bc -l`
                                if [ "$new_weight" == "$max_weight" ]
                                then
                                                exit
                                fi
        sed -i "$line"s#$weight#$new_weight# $savecrushfile
done
crushtool -c /root/ceph/crushmap.txt -o /root/ceph/crushmap.done
ceph osd setcrushmap -i /root/ceph/crushmap.done

优化

目前在扩容期间, 对 ceph 集群执行了下面的参数修改

ceph tell osd.\* injectargs '--osd_max_backfills 1  --osd_recovery_max_active=1 --osd_disk_thread_ioprio_class  idel --osd_disk_thread_ioprio_priority 7 --osd_recovery_threads 1 --osd_recovery_op_priority 10  --osd_backfill_scan_min 64 --osd_backfill_scan_max 512’
时间: 2024-10-06 11:05:45

ceph - crushmap 扩容记录的相关文章

ceph - 扩容记录

时间点与步骤 事件 相关信息 相关机器 详细信息 12/15 10:00 服务器重装,把原来 glusterfs 服务器重装成 el7 240.30.128.54,240.30.128.71,240.30.128.72 利用 kickstart 重装 12/15 11:30 基础配置 维护系统常用基础配置 240.30.128.54,240.30.128.71,240.30.128.72 详情参考 p1 12/16 01:00 ceph 基础配置 配置 ceph 基础信息 240.30.128.

ceph - 索引

架构与部署 openstack 与 ceph (架构) openstack 与 ceph (monitor初始化) openstack 与 ceph (osd 部署) openstack 与 ceph ( pool 管理 ) openstack 管理二十二 - cinder 连接多个存储 backend openstack 管理二十三 - nova compute 连接 ceph 集群 ceph - crush map 与 pool ceph - 更改 ceph journal 位置 故障与测试

openstack 管理二十四 - ceph 与 vm 连接测试记录

目的 测试 ceph 与 vm 连接与使用 创建 vm 主机 128030 及 129094 是全新安装并利用 puppet 推送的 nova compute 主机 计划在这两个主机上进行 vm 连接 ceph 测试 nova boot --flavor b2c_web_1core --image Centos6.3_1.3 --security_group default --nic net-id=9106aee4-2dc0-4a6d-a789-10c53e2b88c1 ceph-test01

【翻译】 问HS:设计和实现可扩容服务?

翻译自:Ask HS: Design And Implementation Of Scalable Services? 我们通过网络编写代理来部署/分布.代理每15秒,甚至可以是每5秒发送一次数据.致力于服务/系统工作为了让所有代理能够通过临界有效载荷推送数据/元组.高达5%的下降率是可以接受的.最终的数据将会被隔离以及存入到数据库管理(DBMS)系统(目前我们使用MYSQL) 我正在寻找答案的问题. 1.  客户端/服务端通信,代理能张贴数据.发送数据的状态并不重要,但是,如果服务端系统基于数

阿里云如何扩容数据盘(Linux 实例)

阿里云如何扩容数据盘(Linux 实例) 随着业务的增长,您的磁盘容量可能无法满足数据存储的需要,这时您可以扩容磁盘. 本文档介绍的方法只适用于数据盘 .如果要扩容系统盘 ,需要采用更换系统盘的方式.请参考 更换系统盘. 扩容须知 扩容前 建议在扩容磁盘之前 手动创建快照,以备份数据. 磁盘上如果正在执行创建快照的操作,则此时不允许进行扩容操作. 只做磁盘容量的扩容,不做文件系统的扩容. 支持普通盘的扩容,不支持本地盘(本地磁盘.本地 SSD 盘)的扩容. 挂载在实例上的数据盘,只有实例 为 运

ceph distributed storage , suse storage based on it

早上起床的时候看朋友圈, 看到少聪分享的一个suse storage的链接(基于ceph改的), 非常棒. http://www.suse.com/company/press/2014/11/suse-offers-beta-preview-of-suse-storage.html ceph是一个很好的开源分布式存储, 光看介绍已经很兴奋了. 先记录一下, 好好研究. Ceph is a distributed object store and file system designed to p

kubernetes学习记录(7)——弹性伸缩与滚动升级

kubernetes学习记录(7)--弹性伸缩与滚动升级. 弹性伸缩 弹性伸缩是指适应负载变化,以弹性可伸缩的方式提供资源. Pod的弹性伸缩就是修改Replication Controller的Pod副本数.可以通过Kubectl scale命令实现. 创建Replication Controller test-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: test-rc spec: replicas: 2

Ceph分布式存储实战.

云计算与虚拟化技术丛书 Ceph分布式存储实战 Ceph中国社区 著 图书在版编目(CIP)数据 Ceph分布式存储实战/Ceph中国社区著. -北京:机械工业出版社,2016.11 (云计算与虚拟化技术丛书) ISBN 978-7-111-55358-8 I. C- II. C- III. 分布式文件系统 IV. TP316 中国版本图书馆CIP数据核字(2016)第274895号 Ceph分布式存储实战 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编

use ceph for openstack block device & object storage (cinder, glance)

转 :  http://docwiki.cisco.com/wiki/OpenStack:Ceph-COI-Installation OpenStack:Ceph-COI-Installation Contents [hide] 1 Installing a ceph cluster and configuring rbd-backed cinder volumes. 1.1 First steps 2 Choosing Your Configuration 2.1 Ceph Standalon