当前位置: 首页 > news >正文

一个关于ceph的可用空间测试

为什么80%的码农都做不了架构师?>>>   hot3.png

一、环境

节点概述

mon : ceph-node01 ceph-node02 ceph-node03
osd :ceph-node01 ceph-node02 ceph-node03
mds : ceph-node01 ceph-node02

操作系统:Ubuntu 14.10

每个osd主机有一个OSD,每个OSD可用容量15GB。


二、测试过程

1、ceph -s查看概述

root@ceph-node01:~# ceph -s
    cluster 9ae8eb40-4f71-49ec-aa77-eda1cb6edbc3
     health HEALTH_OK
     monmap e1: 3 mons at {ceph-node01=192.168.239.161:6789/0,ceph-node02=192.168.239.162:6789/0,ceph-node03=192.168.239.163:6789/0}, election epoch 50, quorum 0,1,2 ceph-node01,ceph-node02,ceph-node03
     mdsmap e19: 1/1/1 up {0=ceph-node01=up:active}, 1 up:standby
     osdmap e24: 3 osds: 3 up, 3 in
      pgmap v202: 192 pgs, 3 pools, 672 kB data, 21 objects
            3204 MB used, 45917 MB / 49122 MB avail
                 192 active+clean

2、df查看可用空间

root@ceph-node01:~# df -Pm
Filesystem                                        1048576-blocks  Used Available Capacity Mounted on
/dev/sda1                                                  12277  1474     10804      13% /
none                                                           1     0         1       0% /sys/fs/cgroup
udev                                                        1959     1      1959       1% /dev
tmpfs                                                        394     2       393       1% /run
none                                                           5     0         5       0% /run/lock
none                                                        1970     0      1970       0% /run/shm
none                                                         100     0       100       0% /run/user
/dev/sdb                                                   16374  1067     15308       7% /data
192.168.239.161,192.168.239.162,192.168.239.163:/          49120  3208     45912       7% /mnt/cephfs

上述显示的可用空间肯定是错误的,按照ceph一式三份原则,真实可用的空间应该小于15GB,下面用写 16GB文件的方法来验证。

3、dd写文件

把文件系统挂载到/mnt/cephfs下,用脚本生成8个dd文件,每个文件2GB,为的是撑爆OSD。

脚本内容很简单

#!/bin/bash

count=0
max=8

while [ $count -lt $max ];do
    printf "Writing test${count}.dat\n"
    dd if=/dev/zero bs=1M count=2048 of=test${count}.dat
    ((count++))
done


三、测试结果

写到最后一个文件时,三个节点上的ceph-mon进程无法用ps看到,检查日志文件,有如下提示:

2015-01-03 21:13:55.066943 7f0da98ce700  0 mon.ceph-node01@0(leader).data_health(48) update_stats avail 5% total 16766976 used 15915768 avail 851208
2015-01-03 21:13:55.067245 7f0da98ce700 -1 mon.ceph-node01@0(leader).data_health(48) reached critical levels of available space on local monitor storage -- shutdown!
2015-01-03 21:13:55.067266 7f0da98ce700  0 ** Shutdown via Data Health Service **
2015-01-03 21:13:55.067292 7f0da7ec9700 -1 mon.ceph-node01@0(leader) e1 *** Got Signal Interrupt ***
2015-01-03 21:13:55.067300 7f0da7ec9700  1 mon.ceph-node01@0(leader) e1 shutdown
2015-01-03 21:13:55.067338 7f0da7ec9700  0 quorum service shutdown
2015-01-03 21:13:55.067339 7f0da7ec9700  0 mon.ceph-node01@0(shutdown).health(48) HealthMonitor::service_shutdown 1 services
2015-01-03 21:13:55.067340 7f0da7ec9700  0 quorum service shutdown

看样子,是ceph-mon进程自己退出了,常见的本地文件系统快满时,出错的是应用程序,为什么ceph-mon设计成干掉自己呢?


转载于:https://my.oschina.net/cytan/blog/363302

相关文章:

  • C# Socket系列1
  • 简历查看下载网站列表
  • Android的ListView中用上下文菜单
  • Django之Form组件
  • LVS负载均衡群集
  • 360前端星计划—深入CSS
  • linux signal 处理
  • 如何给域名配置https证书
  • 遍历DataTable
  • curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?...
  • rails4 new没有生成prototype.js之类的脚本解决办法
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • sqlplus
  • 住宅格局解剖图鉴
  • Hibernate中Session.get()/load()之区别
  • @angular/forms 源码解析之双向绑定
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • docker容器内的网络抓包
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js如何打印object对象
  • MySQL-事务管理(基础)
  • PAT A1017 优先队列
  • React组件设计模式(一)
  • Spark RDD学习: aggregate函数
  • 工作手记之html2canvas使用概述
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 聊聊flink的BlobWriter
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​人工智能书单(数学基础篇)
  • ​一些不规范的GTID使用场景
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #{}和${}的区别?
  • (2.2w字)前端单元测试之Jest详解篇
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)ssm高校实验室 毕业设计 800008
  • (一)WLAN定义和基本架构转
  • ****Linux下Mysql的安装和配置
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net Signalr 使用笔记
  • .net反编译工具
  • .NET命令行(CLI)常用命令
  • .net网站发布-允许更新此预编译站点
  • .Net组件程序设计之线程、并发管理(一)
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @angular/cli项目构建--http(2)
  • @Service注解让spring找到你的Service bean
  • @Transactional 详解
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ 数据结构 - C++] AVL树原理及实现
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [100天算法】-二叉树剪枝(day 48)