cephfs删除报nospace的问题
ceph Vol 45 Issue 2
CephFS: No space left on device
After upgrading to 10.2.3 we frequently see messages like
'rm: cannot remove '...': No space left on device
The folders we are trying to delete contain approx. 50K files 193 KB each.
The cluster state and storage available are both OK:
cluster 98d72518-6619-4b5c-b148-9a781ef13bcb
health HEALTH_WARN
mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure
mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure
mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure
mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure
mds0: Client XXX.XXX.XXX.XXX failing to respond to cache pressure
monmap e1: 1 mons at {000-s-ragnarok=XXX.XXX.XXX.XXX:6789/0}
election epoch 11, quorum 0 000-s-ragnarok
fsmap e62643: 1/1/1 up {0=000-s-ragnarok=up:active}
osdmap e20203: 16 osds: 16 up, 16 in
flags sortbitwise
pgmap v15284654: 1088 pgs, 2 pools, 11263 GB data, 40801 kobjects
23048 GB used, 6745 GB / 29793 GB avail
1085 active+clean
2 active+clean+scrubbing
1 active+clean+scrubbing+deep
Has anybody experienced this issue so far?
这个问题是作者在升级了一个集群以后(jewel 10.2.3),做删除的时候,发现提示了 No space left on device,按正常的理解做删除不会出现提示空间不足
这个地方的原因是,有一个参数会对目录的entry做一个最大值的控制 mds_bal_fragment_size_max ,而这个参数实际上在做删除操作的时候,当文件被unlink的时候,被放入待删除区的时候,这个也是被限制住的,所以需要调整这个参数,如果有上百万的文件被等待删除的时候,可能就会出现这个情况,并且出现 failing to respond to cache pressure 我们根据自己的需要去设置这个值
默认的 mds_bal_fragment_size_max=100000,也就是单个目录10万文件,如果不调整,单目录写入10万文件就能出现上面的问题,根据需要调大这个值
这个地方可以用命令来监控mds的当前状态
[root@lab8106 mnt]# ceph daemonperf mds.lab8106
-----mds------ --mds_server-- ---objecter--- -----mds_cache----- ---mds_log----
rlat inos caps|hsr hcs hcr |writ read actv|recd recy stry purg|segs evts subm|
0 163k 5 | 0 0 0 | 0 0 36 | 0 0 145k 0 | 33 29k 0
0 163k 5 | 0 0 0 | 6 0 34 | 0 0 145k 6 | 33 29k 6
0 163k 5 | 0 0 0 | 24 0 32 | 0 0 145k 24 | 32 29k 24
0 163k 5 | 0 0 0 | 42 0 32 | 0 0 145k 42 | 32 29k 42
0 159k 5 | 0 0 0 |972 0 32 | 0 0 144k 970 | 33 27k 971
0 159k 5 | 0 0 0 |905 0 32 | 0 0 143k 905 | 31 28k 906
0 159k 5 | 0 0 0 |969 0 32 | 0 0 142k 969 | 32 29k 970
0 159k 5 | 0 0 0 |601 0 31 | 0 0 141k 601 | 33 29k 602
这个地方还有一个硬链接删除以后没有释放stry的问题,最新版的master里面已经合进去了代码(scan_link)
修复过程如下
执行flush MDS journal
ceph daemon mds.xxx flush journal
停止掉所有mds
stop all mds
执行
cephfs-data-scan scan_links
重启mds
restart mds
执行命令
ceph daemon mds.x scrub_path / recursive repair
执行完了以后去对目录进行一次ll,可以看到mds_cache的stry的就会被清理干净了
这个问题就可以解决了,实际测试中在换了新版本以后,重启后然后进行目录的ll,也能清空stry
cephfs删除报nospace的问题的更多相关文章
- mysql用查询结果当删除的判断条件进行删除报错1093 You can't specify target table解决方法
mysql用查询结果当删除的判断条件进行删除报错1093 You can't specify target table解决方法 #分开两个sql执行正常的语句,只保留最新1000条数据,删掉1000条 ...
- gulp使用技巧-删除node_modules文件夹,解决目录层次太深删除报错的问题
问题描述: 在使用gulp当中,自动生成的node_modules文件夹,因为文件目录层级太深,无法系统删除,用360粉碎工具也报错 解决方法: 使用npm中的插件rimraf,专门用于删除的模块插件 ...
- cocos2dx 编译遇到资源里有.svn文件不能删除报错的问题
使用cocos compile -p android 对项目进行编译的时候,遇到res文件中包含了只读属性的svn目录,不能进行删除而报错. 错误如下图(build_android.py里面对.svn ...
- hibernate 级联删除报更新失败的问题(org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update)
首先hibernate级联删除的前提是,首先需要在映射文件中配置,配置多表之间的关联关系: 下面以部门表(Dept)和员工表(Emp)为例: 1.在Emp.hbm.xml映射文件中配置many-to- ...
- (7)Launcher3客制化之,改动单屏幕后,Fix在Hotseat拖动应用删除报错
改动单屏幕后,在workspace里面拖动图标.到删除button上松开的时候,报错问题. 而且无法再次显示拖动的图标. 拖动松开手时候触发 public void onDropCompleted(f ...
- T-SQL openquery 删除报错 “键列信息不足或不正确。更新影响到多行”
DELETE OPENQUERY (VERYEAST_MAIN_MYSQL_CONN, 'SELECT college_userid FROM college_student_information ...
- docker log 批量删除报错: find: `/var/lib/docker/containers/': 没有那个文件或目录
问题描述: 服务器上面docker log太多,打算用之前写的批量清理shell脚本清理掉,但是发现报错. find: `/var/lib/docker/containers/': 没有那个文件或目录 ...
- mysql批量删除报1064原因
DELETE FROM table_name t where t......; 报1064 错误,原因MySQL 中delete 语句不能给表名起别名. 另外.如果记录不存在,delete from ...
- Docker删除镜像报错
问题描述: 笔者意图删除nginx-file的镜像文件,但通过命令删除镜像时出现报错信息,提示存在多个引用(即一个IMAGE可被多个REPOSITORY引用,故删除会出现失败),如下: [root@k ...
随机推荐
- jquery的实时触发事件(textarea实时获取中文个数)
jquery的实时触发事件(textarea实时获取中文个数) (2014-09-16 11:49:50) 转载▼ 标签: 实时触发事件 中文个数 onpropertychange oninput o ...
- pmm-server监控mysql
https://blog.csdn.net/RunzIyy/article/details/104635680?utm_medium=distribute.pc_relevant.none-task- ...
- centos8平台使用ethtool配置网卡
一,ethtool命令所属的包 [root@centos8 liuhongdi]# whereis ethtool ethtool: /usr/sbin/ethtool /usr/share/man/ ...
- php长时间的脚本,报502
php-fpm超时时间设置request_terminate_timeout分析原创loophome 最后发布于2017-11-22 16:17:59 阅读数 21201 收藏展开今天发现了一个很神奇 ...
- Navicat Premium_11.2.7简体中文版 破解版本 windows版本 失效
亲测可用 自己一直在用的 https://pan.baidu.com/s/1VVKKQoIKVB0BgNXBK4YTrQ
- centos 7.8 添加磁盘后查看、分区、格式化、挂载
基础环境 公有云 由于磁盘空间快用完了,现在决定多加一个40G磁盘 第一步 分区 fdisk -l #查看当前磁盘信息 fdisk /dev/vdb #对指定磁盘进行操作 如上图一般磁盘的第一个分区都 ...
- ReSharper 注册码
用户名:ronle 注册码:ZoJzmeVBoAv9Sskw76emgksMMFiLn4NM 原文地址:http://hi.baidu.com/ronle/item/a509b5f7b851971be ...
- laytable 前台删除后加载当前页数据。
laytable一次性获取数据后,点击删除调用后台删除.返回成功状态后刷新当前页数据. 渲染方法: //渲染表格 function renderingTable(pageIndex, sourceDa ...
- 非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了!
Zuul是spring cloud中的微服务网关.网关:是一个网络整体系统中的前置门户入口.请求首先通过网关,进行路径的路由,定位到具体的服务节点上. Zuul是一个微服务网关,首先是一个微服务.也是 ...
- 前端-jstree 一些常用功能
最近使用到了jstree(v3.3.4)这个插件(官网:https://www.jstree.com/),在这里记录下我的使用过程的一些技巧和问题. 1. 获取数据 一般实际项目中用到的数据都是aja ...