暂未分类
未读前言之前写过一篇关于查询OSD的运行的CPU的情况的分享,本篇是讲的获取内存占用的,代码包括两种输出,一种是直接的表格,一种是可以方便解析的json
代码直接上代码,python才用不久,所以可能代码实现比较低级,主要是看实现的方法
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#!/usr/bin/env python# -*- coding: UTF-8 -*-import osimport sysimport jsonimport psutilimport commandsfrom prettytable import PrettyTabledef main(): if len(sys.argv) == 1: printosdmemtable("table") elif sys.argv[1] == 'json': printosdmemtable(&qu ...
Linux当中最核心的部分就是内核,这个也是最基础,最可能被忽视的一部分,随便找一个刚入职的运维,学习个两三天,网上找些资料也能能自己安装编译内核了,很多运维的初期培训就是做的这些学习,为什么在网上已经有这么多文章的情况下,还要写一篇关于内核的文章,这是因为,我想讲的是如何去选择内核
一般来说,找内核的时候都会去下面这个网站进行选择
https://www.kernel.org/
很多人在问我的时候,都会问,我该怎么去选择哪个版本的内核,一般来说我的回答是这样的
选取最后一个长期支持版本,或者最后一个稳定的版本
一般来说,选择这两个版本基本不会出太大的问题,并且即使有问题,后面做小版本的升级也不是很难的事情,当然这是基于你对自定义内核很有兴趣,或者需要自己去裁剪,增加一些东西的时候,用我上面说的两个版本都没有问题,下面是一个其他的选择
最近把linus的just for fun看完了,也基本上了解了linux大概的发展历程,linux走向成功也有一定的原因是围绕在其周围的一些商业公司,红帽是其中最成功的一个公司,当然还有其他各种发型版本,开源版本和商业版本的最大区别在于服务上 ...
Ceph和OpenStack是一个非常有用和非常受欢迎的组合。 不过,部署Ceph / OpenStack经常会有一些容易避免的缺点 - 我们将帮助你解决它们
使用 show_image_direct_url and the Glance v2 API使用ceph的RBD(RADOS Block Device),你可以创建克隆,你可以将克隆理解为可写的快照(快照通常是只读的)。克隆只会为相对于父快照变化的部分创建对象,这意味着:
可以节省空间。这是显而易见的,但是这并不能很有说服力,毕竟存储是分布式系统当中最便宜的部分
克隆中没有修改的部分还是由原始卷提供。这很重要,因为很容易命中相同的RADOS 对象,相同的osd,不论是用的哪个克隆。而且这意味着,这些对象是从OSD的页面缓存进行响应,换句话说,是RAM提供。RAM比任何存储访问方式速度都快,所以从内存当中提供大量的读取是很好的。正因为这样,从克隆的卷提供数据读取,要比相同数据全拷贝的情况下速度要快一些
Cinder(当从image创建一个卷)和Nova(从ceph提供临时磁盘)都能够使用ceph的后端的RBD i ...
前言fio是一个适应性非常强的软件,基本上能够模拟所有的IO请求,是目前最全面的一款测试软件,之前在看德国电信的一篇分享的时候,里面就提到了,如果需要测试存储性能,尽量只用一款软件,这样从上层测试到底层去,才能更好的去比较差别
fio对于ceph来说,可以测试文件系统,基于文件系统之上测试,可以测试内核rbd,将rbdmap到本地格式化以后进行测试,或者基于librbd直接对rbd进行测试,这个是目前都已经有的测试场景,这些不在本篇的讨论的范围内,今天讲的是一种新的测试场景,直接对ceph的底层存储进行测试
为什么会有这个,因为在以前,如果你要测试一块磁盘是不是适合ceph使用的时候,都是直接对挂载的磁盘进行一些测试,这个是基于文件系统的,并没有真正的模拟到ceph自己的写入模型,所以在开发人员的努力下,模拟对象的写入的驱动已经完成了,这就是本篇需要讲述的内容
实践过程fio engine for objectstore 这个是在ceph的11.0.2这个版本才正式发布出来的,可以看这个pr(pr10267),11.0.2是ceph第一个公开释放的KRAKEN版本的,也说明Jewel ...
暂未分类
未读前言在看CPU相关的文章的时候,想起来之前有文章讨论是否要做CPU绑定,这个有说绑定的也有说不绑定的,然后就想到一个问题,有去观测这些OSD到底运行在哪些CPU上面么,有问题就好解决了,现在就是要查下机器上的OSD运行在哪些CPU上
代码这里直接上代码了,最近学习python在,就用python来实现
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#!/usr/bin/env python# -*- coding: UTF-8 -*-import osimport sysimport jsonimport psutilimport commandsfrom prettytable import PrettyTabledef main(): if len(sys.argv) == 1: printosdcputable("process") ...
前言通过yum安装指定的rpm包,这个一般是 yum –showduplicates list ceph | expand ,然后去通过yum安装指定的版本即可,这个在hammer下是没有问题的,但是在Jewel下进行安装的时候却出现了问题,我们来看下怎么解决这个问题的
实践过程我们需要安装 ceph-10.2.0-0.el7 这个版本的,根据之前的方法
12345678910111213141516171819[root@lab8106 ~]# yum install ceph-10.2.0-0.el7Loaded plugins: fastestmirror, langpacks, prioritiesbase | 3.6 kB 00:00:00 ceph | 2.9 kB 00:00:00 ceph-noarch | 2.9 kB 00:00:00 epel | 4.3 kB 00:00:00···Er ...
暂未分类
未读前言在某些场景下Ceph集群会出现stale的情况,也就是ceph集群PG的僵死状态,这个状态实际上是无法处理新的请求了,新的请求过来只会block,那么我们如何去恢复环境
实践过程首先模拟stale环境,这个比较好模拟
设置副本2,然后同时关闭两个OSD(不同故障域上),然后删除这两个OSD
集群这个时候就会出现stale的情况了,因为两份数据都丢了,在一些环境下,数据本身就是临时的或者不是那么重要的,比如存储日志,这样的环境下,只需要快速的恢复环境即可,而不担心数据的丢失
处理过程首先用ceph pg dump|grep stale 找出所有的stale的pg
然后用 ceph force_create_pg pg_id
如果做到这里,可以看到之前的stale的状态的PG,现在已经是creating状态的了,这个时候一个关键的步骤需要做下
就是重启整个集群的OSD,在重启完成了以后,集群的状态就会恢复正常了,也能够正常的写入新的数据了,对于老的数据,做下清理即可
变更记录
Why
Who
When
创建
武汉-运维-磨渣
2016-11-14
暂未分类
未读一、前言本章很简单,就是预估集群恢复的时间,这个地方是简单的通过计算来预估需要恢复的实际,动态的显示
二、代码12345678910111213141516171819202122232425262728293031323334353637#!/usr/bin/env python# -*- coding: UTF-8 -*-import osimport sysimport commandsimport jsondef main(): gettime()def conversecs(sec): d = sec/86400 h = sec%86400/3600 m = sec%3600/60 s = sec%60 return "remain time:%s day %s hour %s min %s sec" %(d,h,m,s)def gettime(): try: recover_time = commands.getoutput('timeout 10 ceph -s -f json 2& ...
这是一篇分享文,作者因为最近想深入研究下ceph的cache pool,作者写的文章非常的好,这里先直接翻译这篇文章,然后再加入我自己的相关数据
blog原文作者想启动blog写下自己的Openstack和Ceph的相关经验,第一个话题就选择了 Ceph cache tiering , 作者的使用场景为短时间的虚拟机,用来跑测试的,这种场景他们准备用Nvme做一个缓冲池来加速的虚拟机
cache 相关的一些参数
123456target_max_bytestarget_max_objectscache_target_dirty_ratiocache_target_full_ratiocache_min_flush_agecache_min_evict_age
Jewel版本还新加入了一个参数
1cache_target_dirty_high_ratio
作者的想法是先把数据写入到缓冲池当中,等后面某个时刻再写入到真实的存储池的当中
Flushing vs. EvictingFlushing是将缓冲池中的数据刷到真实的存储池当中去,但是并不去删除缓冲池里面缓存的数据,只有clean的数据 ...
ceph Vol 45 Issue 11.unfound objects blocking cluster, need help!
Hi,
I have a production cluster on which 1 OSD on a failing disk was slowing the whole cluster down. I removed the OSD (osd.87) like usual in such case but this time it resulted in 17 unfound objects. I no longer have the files from osd.87. I was able to call “ceph pg PGID mark_unfound_lost delete” on 10 of those objects.
On the remaining objects 7 the command blocks. When I try to do “ceph pg PGID query” on this PG it also b ...