Ceph 运维记录

一、ceph运维

• Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
• Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch ),是整个ceph集群的入口
• MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

#检查ceph存储的使用情况
ceph df
  
#检查集群的状态
ceph -s
 
#查看osd的状态
ceph osd stat
 
#查看监视器的状态
ceph mon stat
 
#查看监视器法定人数的状态
ceph quorum_status
 
#查看mds的状态
ceph mds stat
 
#推送ceph配置文件
ceph-deploy --overwrite-conf config push mon osd01 osd02 osd03
 
#查看ceph pools
ceph osd pool ls

#查看ceph的mds的内存限制,达到限制后会自己释放
ceph daemon mds.dppvmnginc00 config get mds_cache_memory_limit
ceph daemon mds.dppvmnginc00 config show | less
ceph daemon mds.dppvmnginc00 config set mds_cache_memory_limit 1073741824
ceph daemon mds.dppvmnginc00 config set mds_cache_memory_limit 4294967296
ceph mds fail 0


#修改debug日志
ceph tell mds.dpsvdoccep02  injectargs '--debug-mds  10/10'

#查看debug日志是否开启
ceph daemon mds.dpsvdoccep02 config show|grep debug_mds
ceph daemon mon.dppvmngdnc00 config show|grep debug_mon
ceph daemon osd.0 config show|grep debug_osd


#查看osd权重
ceph osd tree |grep osd.137

#调整osd权重
ceph osd crush reweight osd.137 1.5
ceph osd crush reweight osd.8 0.23268

#更改ceph osd数据分布链接:
https://www.jianshu.com/p/afb6277dbfd6

#设置ceph mds数量
ceph fs set cephfs max_mds 2

#踢出mds
ceph mds deactivate cephfs_01:0

#计算pgnum数量  最佳实践参考:http://ceph.com/pgcalc/
ceph osd pool set fs_data pg_num 256
ceph osd pool set fs_data pgp_num 256



#查看ceph的mds的内存限制,达到限制后会自己释放
ceph daemon mds.dppvmnginc00 config get mds_cache_memory_limit
ceph daemon mds.dppvmnginc00 config show | less
ceph daemon mds.dppvmnginc00 config set mds_cache_memory_limit 1073741824
ceph daemon mds.dppvmnginc00 config set mds_cache_memory_limit 4294967296

# 查看ceph balancer状态
ceph balancer status

# 启用balancer模块(默认)
ceph mgr module enable balancer

# 启用balancer平衡
ceph balancer on

# 设置balancer模式(修改PG mapping)
ceph balancer mode upmap
ceph balancer mode crush-compat

# 设置兼容版本(upmap模式需要此设置)
ceph osd set-require-min-compat-client luminous --yes-i-really-mean-it

# 查看调整日志
less /var/log/ceph/ceph.audit.log

# 查看调整结果
ceph osd df

#删除存储池pool
(1)查看是否有删除pools权限
~]# ceph --show-config |grep mon_allow
mon_allow_pool_delete = false

(2)三个节点修改配置文件
~]# vi /etc/ceph/ceph.conf
[global]
mon_allow_pool_delete = true
~]# reboot

~]# ceph fs ls
~]# ceph fs rm cephfs_02 --yes-i-really-mean-it   #报错
~]# systemctl stop ceph-mds@ceph_test1
~]# systemctl stop ceph-mds@ceph_test2
~]# systemctl stop ceph-mds@ceph_test3
~]# ceph fs rm cephfs_02 --yes-i-really-mean-it

~]# ceph osd lspools
~]# ceph osd pool delete fs_datatest fs_datatest --yes-i-really-really-mean-it
~]# ceph osd pool delete fs_metadatatest fs_metadatatest --yes-i-really-really-mean-it
~]# ceph fs set cephfs max_mds 2
~]# systemctl start ceph-mds@ceph_test1
~]# systemctl start ceph-mds@ceph_test2
~]# systemctl start ceph-mds@ceph_test3


二、ceph压测

ceph测试工具fio
windows:https://ci.appveyor.com/project/axboe/fio/build/job/xje490v82ei5cl57/artifacts
linux:https://github.com/axboe/fio/releases/tag/fio-3.17 redhat默认最新3.7

wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz

yum install libaio-devel
yum install zlib-devel

tar -zxvf fio-2.0.7.tar.gz
cd fio-2.0.7
make
make install

#生成测试用的文件
dd if=/dev/zero of=/data/test bs=4k count=524288

#ceph性能测试命令
(1)4k随机读
fio -filename=/data/test -direct=1 -iodepth 64 -thread -rw=randread -ioengine=libaio -bs=4k -size=50G -numjobs=10 -runtime=300 -group_reporting -name=mytest

(2)4k顺序读
fio -filename=/data/test -direct=1 -iodepth 64 -thread -rw=read -ioengine=libaio -bs=4k -size=50G -numjobs=30 -runtime=300 -group_reporting -name=mytest

(3)4k随机写
fio -filename=/data/test -direct=1 -iodepth 64 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=50G -numjobs=30 -runtime=300 -group_reporting -name=mytest_4k_10G_randwrite 

(4)4k顺序写
fio -filename=/data/test -direct=1 -iodepth 64 -thread -rw=write -ioengine=libaio -bs=4k -size=50G -numjobs=30 -runtime=300 -group_reporting -name=mytest 

(5)4k混合读写
fio -filename=/data/test -direct=1 -iodepth 64 -thread -rw=randrw -rwmixread=70 -ioengine=libaio -bs=4k -size=50G -numjobs=30 -runtime=300 -group_reporting -name=mytest -ioscheduler=noop 

三、ceph故障记录

背景:ceph集群一个osd使用量达到95%,造成集群只读状态
解决方案:把95%的osd踢出集群
后续操作:把ceph集群大小不一的磁盘踢出集群

#踢盘步骤如下
1、将osd 0 踢出集群
ceph osd out 0
2、登录节点,停掉osd进程
systemctl stop  ceph-osd@0
3、把OSD 移出集群 CRUSH 图
ceph osd crush remove osd.0

4、删除 OSD 认证密钥
ceph auth del osd.0

5、删除 OSD
ceph osd rm 0

6、osd已经删除,但是数据还在
]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                 2:0    1    4K  0 disk 
sda                 8:0    0   30G  0 disk 
├─sda1              8:1    0    2M  0 part 
├─sda2              8:2    0  512M  0 part /boot
├─sda3              8:3    0    2G  0 part 
│ └─vgswap-lvswap 253:1    0    2G  0 lvm  [SWAP]
├─sda4              8:4    0    1K  0 part 
└─sda5              8:5    0 27.5G  0 part 
  └─vgroot-lvroot 253:0    0 27.5G  0 lvm  /
sdb                 8:16   0   50G  0 disk 
├─sdb1              8:17   0  100M  0 part /var/lib/ceph/osd/ceph-0
└─sdb2              8:18   0 49.9G  0 part 
sdc                 8:32   0   50G  0 disk 
├─sdc1              8:33   0  100M  0 part /var/lib/ceph/osd/ceph-3
└─sdc2              8:34   0 49.9G  0 part 
sdd                 8:48   0  100G  0 disk 
├─sdd1              8:49   0  100M  0 part /var/lib/ceph/osd/ceph-6
└─sdd2              8:50   0 99.9G  0 part 
sde                 8:64   0  100G  0 disk 
├─sde1              8:65   0  100M  0 part /var/lib/ceph/osd/ceph-9
└─sde2              8:66   0 99.9G  0 part 
sr0                11:0    1 1024M  0 rom
6、卸载挂载的ceph osd 0
umount /dev/sdb1
7、擦除数据
ceph-disk zap /dev/sdb
ceph-disk zap /dev/sdc
8、从vmware删除磁盘

-----------------
为了解决osd数量为题,可如下修改
osd count many 
ceph osd pool set rbd pg_num 128
ceph osd pool set fs_data pg_num 256
ceph osd pool set fs_data pgp_num 256
posted @ 2022-08-12 10:28  彬彬l  阅读(234)  评论(0编辑  收藏  举报