ceph osd内存溢出,osd进程限制隔离

针对生产环境中Ceph OSD节点内存溢出问题,本文介绍了通过系统cgroup限制osd进程内存使用,防止内存达到90%时导致集群宕机。详细步骤包括创建cgroup目录,设置内存限制,以及使用bash脚本监控和重启osd.target服务,确保集群稳定运行。

生产集群出现osd节点内存溢出的现象,现象为:现有集群其他节点内存使用率都为90%左右的情况下,重启1台ceph-osd.target,会导致集群在重平衡时,导致其他osd节点内存上升,系统宕机,从而导致整个集群不可用;
操作方法:
1.系统层面cgroup限制内存,脚本如下,60G为osd进程使用内存,系统内存预留32G:

$cat cgroup.sh

#!/bin/bash
if [ ! -d /sys/fs/cgroup/memory/OSD ] ; then
mkdir /sys/fs/cgroup/memory/OSD
echo “60G” > /sys/fs/cgroup/memory/OSD/memory.limit_in_bytes
fi
for i in $(ps -eo pid,cmd | grep ceph-osd | grep cluster | grep -v grep | awk ‘{ print $1 }’) ; do echo $i > /sys/fs/cgroup/memory/OSD/tasks ; done

2.执行脚本

  $ chmod +x cgroup.sh 
  $ systemctl restart ceph-osd.target
  $ bash cgroup.sh 

3.最好使用contab,定时检查

 $cat check_mem_kill_osd.sh

#!/bin/bash
USE_MEM=$(free -mh | grep Mem | awk -F ’ ’ ‘{print $3}’ | awk -F ‘G’ ‘{print $1}’)
if [ $USE_MEM -gt 90 ]; then
systemctl restart ceph-osd.target
/bin/bash /root/cgr

### Ceph OSD 配置与管理 Ceph OSD(Object Storage Daemon)是 Ceph 存储集群的核心组件之一,负责管理物理存储设备并执行数据存储、复制、恢复等任务。在实际操作中,OSD 的配置和管理直接影响集群的性能和稳定性。 在部署和管理 Ceph OSD 时,首先需要确保硬件设备的兼容性和性能。每个 OSD 通常绑定到一个物理磁盘或 SSD 上,建议使用高性能存储介质以提升 I/O 吞吐量。此外,Ceph 支持在每块硬盘驱动器上运行多个 OSD,但这可能导致资源竞争并降低整体吞吐量[^2]。因此,在生产环境中,通常建议为每个 OSD 分配独立的物理设备。 OSD 的日志(Journal)可以与对象数据存储在同一驱动器上,但这会增加写入延迟,因为 Ceph 必须先写入日志再响应客户端请求。为了优化性能,推荐将日志单独存储在高速设备上。文件系统方面,btrfs 支持同时写入日志和对象数据,而 xfs 和 ext4 则不支持此功能。 在配置 OSD 时,可以使用 `ceph-deploy` 工具简化部署流程。例如,安装完成后,可以使用以下命令查看 `ceph-deploy` 是否正常工作: ```bash ceph-deploy --version ``` 此外,`ceph-deploy admin` 命令可用于推送配置文件和管理密钥到远程主机,以便进行集群管理: ```bash ceph-deploy admin <host-name> ``` 一旦 OSD 被正确部署并加入集群,可以使用 `ceph -s` 命令查看集群状态,确认 OSD 的数量和状态: ```bash ceph -s ``` 如果集群健康状态显示警告(如 `HEALTH_WARN`),可能是因为 OSD 数量不足或未正确配置存储池的应用类型。例如,若未设置池子的应用类型,可以通过以下命令将其设置为 `rbd`: ```bash ceph osd pool application enable <pool-name> rbd ``` 对于 Ceph OSD 的日常管理,`ceph health detail` 命令可提供详细的健康状态信息,帮助识别潜在问题: ```bash ceph health detail ``` ### 相关问题 1. 如何在 Ceph 中添加和删除 OSD? 2. Ceph OSD 日志与数据分离的最佳实践是什么? 3. 如何使用 `ceph-deploy` 部署 Ceph 集群? 4. Ceph 存储池的应用类型有哪些?如何设置? 5. 如何排查 Ceph 集群中 OSD 状态异常的问题?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Eason哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值