需求由于迁移忽快忽慢,需要知道大概的迁移的时间,做了一个简单的统计脚本,可能不准,大概能够知道在什么范围内
脚本1234567891011121314151617181920#! /bin/shwhile ( 2>1 )do start=`ceph -s|grep pgs|grep mis|awk '{print $2}'|cut -d / -f 1`sleep 5end=`ceph -s|grep pgs|grep mis|awk '{print $2}'|cut -d / -f 1`speed=$((start-end))#echo $end#echo $speedsecond=$((end/speed*5))hour=$(( $second/3600 ))min=$(( ($second-${hour}*3600)/60 ))sec=$(( $second-${hour}*3600-${min}*60 ))echo 当前时间:`date ...
需求说明有的时候我们做测试,需要把当前的时间,精准的往前或者往后调整个几秒钟,这个我写成了一个脚本,方便调整思路是当前时间转换成unix时间,计算后,算到当前时间,然后设置
脚本1234567891011121314timenow=`date`unixtimenow=`date +%s`echo $timenowecho $unixtimenowunixtimenew=$(($unixtimenow-2000))echo $unixtimenewnewtime=`date -d @$unixtimenew "+%Y-%m-%d %H:%M:%S"`echo $newtimedate -s "$newtime"
上面的-2000就是往历史调整2000秒,需要往未来调整就改成+就行了,比较简单
总结留存备用
前言环境因为一些问题(网络,或者磁盘,或者其它各种异常),引起了集群的状态的一些变化,变化之后,集群的某些虚拟机正常某些虚拟机出现异常,异常现象就是无法启动特别是win server2008 ,会一直卡在滚动条这里
这个问题很久前碰到过一个哥们出现过,他问我是否遇到过,这个之前遇到过一次无法启动的,通过导出导入的方式解决了,当时一直也没找到原因这个哥们告诉我,通过关闭rbd的属性后,就可以正常启动了,当时就记了下,也没分析更深层次的原因最近有一个环境因为时间过快,往回调整了十几分钟,集群出现mon选举,osd出现闪断以后,部分虚拟机出现无法启动的情况
问题分析导入导出或者克隆基本可以判断数据是没有问题的,那么应该就是其它问题通过关闭属性可以解决,那么大概能够定位到这几个属性相关的
1features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
而锁文件是最大的怀疑,之前处理ctdb的时候,就有过锁没有加上超时时间,然后ctdb挂掉以后,锁不会自动释放的问题,怀疑这个地方类似
我们的rbd的镜像如下
123 ...
暂未分类
未读前言有的时候需要做个单页的网页显示,这个直接用python启动即可,但是存在一个问题,停止进程以后,如果网页正在被访问,socket会不释放,然后再启动就会提示端口占用,实际上是没有端口占用的
这个增加一个配置项就行
相关代码12345678910111213141516171819202122232425262728293031323334353637383940#!/usr/bin/python3from __future__ import print_functionimport SimpleHTTPServerimport SocketServerimport osimport sysimport signaldef quit(signal_num,frame): print("you stop the threading") sys.exit()path = os.path.dirname(sys.argv[0])os.chdir('/home/cephuse/output/')class ReusingTCPServer( ...
前言随机端口可能会占用后面准备使用的端口,然后在后面进程启动的时候,无法绑定端口引起服务异常
处理方法通过内核参数控制,在/etc/sysctl.conf添加
1net.ipv4.ip_local_reserved_ports=8000,8080
这个容易被冲掉,可以修改下默认的内核参数,通过tune实现
修改配置文件 /usr/lib/tuned/balanced/tuned.conf添加
12[sysctl]net.ipv4.ip_local_reserved_ports=8000,8080
然后执行
1tuned-adm profile balanced
这个相当于修改了内核的默认参数,清空 /etc/sysctl.conf也不影响执行完可以通过
1sysctl -a|grep net.ipv4.ip_local_reserved_ports
检查一下是否生效
前言有的时候为了提供一个完整的包,需要把一些零散的文件或者脚本汇总在一起提供,rpm包就是一个很好的方法,这里我们不需要复杂的写法,就纯粹打包的,复杂的可以参考内核或者其它软件包的打包方法
spec文件信息12345678910111213141516171819202122232425262728293031Name: cephuseVersion: 1.0Release: 1%{?dist}Summary: monitor ceph use spaceGroup: Development/ToolsLicense: GPLURL: http://www.zphj1987.comBuildRequires: pythonSource: cephuse-1.0.tar.gz%descriptionuse to monitor ceph%prep%setup -q%installinstall -D -m 644 cephuse.service %{buildroot}/usr/lib/s ...
前言内核模块的更新一般需要卸载模块再加载,但是很多时候使用场景决定了无法做卸载的操作,而linux支持了热更新内核模块的功能,这个已经支持了有一段时间了,一直没有拿ceph的相关模块进行验证
注意模块的某些函数是不支持的,init的部分是不支持的,补丁弄完验证一下就可以知道支不支持,不支持的部分会提示
准备工作先检查当前的版本支持不
12345[root@lab101 kpatch]# cat /boot/config-3.10.0-1062.el7.x86_64 |grep PATCHCONFIG_HAVE_LIVEPATCH=yCONFIG_LIVEPATCH=yCONFIG_DVB_BUDGET_PATCH=mCONFIG_SND_HDA_PATCH_LOADER=y
可以看到默认内核是支持的,这个是红帽维护的一个体系,自己的内核,肯定会很快集成进去的
安装依赖包
12[root@lab102 ~]# yum install elfutils-devel rpm-build[root@lab102 ~]# rpm -ivh kernel-debuginfo-common-x8 ...
##前言如果想访问一个ceph里面的s3地址,但是又不想直接提供secrect key的时候,可以通过预签名的方式生成url
生成方法下载boto3
脚本如下
123456789101112131415161718192021cat s3.pyimport boto3from botocore.client import Configs3_host="http://192.168.0.201:7481"# Get the service client with sigv4 configureds3 = boto3.client('s3', aws_access_key_id = "test",aws_secret_access_key = "test",endpoint_url = s3_host, config=Config(signature_version='s3v4'))# Generate the URL to get 'key-name' from ...
暂未分类
未读显示数据123456789[root@lab201 ~]# ceph dfGLOBAL: SIZE AVAIL RAW USED %RAW USED 1092T 404T 688T 63.01%POOLS: NAME ID USED %USED MAX AVAIL OBJECTS rbd 0 17483G 15.88 92633G 4616231data 1 212T 70.09 92633G 246574395metadata 2 88677K 0 1400G 407249
总used的63% ,data的总used为70%
先说下容量的计算规则
1、根据每个osd计算可用容量:osd可 ...
前言关于bluestore的db应该预留多少空间,网上有很多资料如果采用默认的
write_buffer_size=268435456
大小的话那么几个rocksdb的数据等级是
12345L0: in memoryL1: 256MBL2: 2.56 GBL3: 25.6 GBL4: 256 GB
设置L4那么大的ssd可以给一个osd使用有点不划算,那么空间一般计算就是L1+L2+L3将近30GB这个可以参考下面的文章
https://blog.csdn.net/NewTyun/article/details/103379694
关于block.db大小调整,只需为所有Bluestore OSD保留30 GB
那么这个大小对不对,如果你直接参考30GB这个,并且按照常规的去分区来说,就会带来问题了,我们看下具体什么问题
实际测试验证1parted -s /dev/sdb mkpart primaru 1 31G
上面的命令已经放大了1GB了,但是实际上还是不行
123456789101112[root@lab102 ~]# ceph daemon osd.0 per ...