错误类似:26 slow ops, oldest one blocked for 48 sec, daemons [osd.15,osd.17,osd.18,osd.5,osd.6,osd.7] have slow ops.

如果只是集群中极少部分的OSD出现该问题,可以通过:

systemctl status ceph-osd@{num}

查看OSD日志找到问题并处理,常见的有磁盘故障等,根据错误网络搜索很多解决方案。


如果是集群中所有osd,或者过半数的osd出现这个问题呢?检查了磁盘、网络、mon都正常。其实还有一种可能,想一下是否近期升级过ceph,有升级不完整osd版本问题造成。

- 阅读剩余部分 -

自Nautilus版本开始Ceph支持自动调整PG merging,减少了每次加osd时候自己计算、修改的麻烦。

但其实自己计算也是很简单的,一个原则就是每个OSD大约能够分配到100pg就是合理的范围,计算公式:

(OSD数量100)/副本数量,如果有多个pool,还需要再除以pool数量,结果取接近计算值的2次幂。比如16个OSD / 3副本/ 1个pool,(16100)/3 / 1= 533.33,近2次幂的就是512了。

- 阅读剩余部分 -

如果CEPH已经使用Bcache缓存加速了OSD,使用未加速的OSD也需要应用Bcache缓存加速,则可以参考下文连贯操作记录,如有出错请留言。

查看当前分区

[root@ceph-node-1 ceph-admin-node]# lsblk
NAME                                                                                                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1                                                                                                 259:0    0 447.1G  0 disk 
├─bcache0                                                                                               252:0    0   3.7T  0 disk 
│ └─ceph--60bcd20c--264c--489b--8315--6b3fe7d9753b-osd--block--40eedca5--3120--416a--a021--b1dceaa15815 253:1    0   3.7T  0 lvm  
└─bcache1                                                                                               252:128  0   3.7T  0 disk 
  └─ceph--f67b425f--a786--42db--8ee7--d0dad6fb2ba4-osd--block--949401de--81d5--477c--8f22--b8c01e671d58 253:2    0   3.7T  0 lvm  
sdd                                                                                                       8:48   0   3.7T  0 disk 
sdb                                                                                                       8:16   0   3.7T  0 disk 
└─bcache0                                                                                               252:0    0   3.7T  0 disk 
  └─ceph--60bcd20c--264c--489b--8315--6b3fe7d9753b-osd--block--40eedca5--3120--416a--a021--b1dceaa15815 253:1    0   3.7T  0 lvm  
sde                                                                                                       8:64   0   3.7T  0 disk 
sdc                                                                                                       8:32   0   3.7T  0 disk 
└─bcache1                                                                                               252:128  0   3.7T  0 disk 
  └─ceph--f67b425f--a786--42db--8ee7--d0dad6fb2ba4-osd--block--949401de--81d5--477c--8f22--b8c01e671d58 253:2    0   3.7T  0 lvm  
sda                                                                                                       8:0    0 232.4G  0 disk 
├─sda2                                                                                                    8:2    0 231.9G  0 part 
│ └─centos-root                                                                                         253:0    0 231.9G  0 lvm  /
└─sda1                                                                                                    8:1    0   512M  0 part /boot

- 阅读剩余部分 -

tcpdump是Linux下的截获分析网络数据包的工具,对优化系统性能有很大参考价值。

安装

tcpdump不是默认安装的,在CentOS下安装:

yum install tcpdump

在Ubuntu下安装:

apt-get install tcpdump

默认启动

tcpdump

普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

- 阅读剩余部分 -

安装

1 加载系统的bcache模块:

lsmod | grep bcache
modprobe bcache

2 如果出现错误:

modprobe: FATAL: Module bcache not found.

则需要升级内核:https://www.cnweed.com/archives/4311/
因为bcache在kernel 3.10版本才进入主线,所以我们要保证CentOS的内核版本大于3.10

3 编译安装

yum install -y git gcc-c++ pkgconfig libblkid-devel
git clone https://evilpiepirate.org/git/bcache-tools.git
cd bcache-tools/
make
make install

- 阅读剩余部分 -

添加OSD

1 格式化盘
如果添加的盘上面有分区,可以通过如下命令清除(分区上的数据也会被清除)

ceph-deploy disk zap {osd-server-name} {disk-name}

2 添加OSD

ceph-deploy osd create {osd-server-name} --data /dev/{disk-name} {osd-server-name}

如果出现类似错误:

ceph-node-1 write cluster configuration to
/etc/ceph/{cluster}.conf ceph_deploy.osd RuntimeError:
config file /etc/ceph/ceph.conf exists with different content; use
--overwrite-conf to overwrite ceph_deploy GenericError: Failed to create 1 OSDs

同步配置文件到其他节点

ceph-deploy --overwrite-conf config push {ceph-node-hostname}

或mv后再次启动服务

mv /etc/ceph/ceph.conf /etc/ceph/ceph.conf.bak




- 阅读剩余部分 -