- 博客(78)
- 资源 (1)
- 收藏
- 关注
原创 Ceph动态更新参数机制浅析
说明:本篇中所有代码分析,都是基于Jewel 10.2.9版本。本篇都是个人理解,其中有些理解或者解释有不合理的,还请指正。 在Ceph的使用中,运行时调整参数值是个高频的操作,使用起来简单方便,最重要的是不用重启服务即可生效。如何使用Ceph动态调整参数有两种方式:第一种: 1. ceph daemon <mon/osd/mds>.<id> ...
2018-09-12 12:03:29
5897
2
原创 L版之后master ceph编译问题总结
run-make-check.sh报错 -- we are x84_64 -- Performing Test not_arch_x32 -- Performing Test not_arch_x32 - Failed -- we are x32; no yasm for you -- Performing Test COMPILER_...
2018-08-01 16:56:53
3985
原创 利用blktrace分析磁盘I/O
blktrace对于分析block I/O是个非常好的工具,本篇文章记录了如何使用blktrace。blktrace原理blktrace是对通用块层(block layer)的I/O跟踪机制,它能抓取详细的I/O请求(request),发送到用户空间。blktrace主要由3部分组成:内核部分记录内核到用户空间的I/O追踪信息的程序分析、展示I/O追踪信息的程序主要在block layer实现,抓...
2018-05-31 18:12:46
7224
原创 iostat 输出字段说明
iostat是在查看、分析磁盘I/O时,一个很重要的工具。我们来简单说说iostat的输出都表示什么。先看一段iostat的输出:[root@k8s-slave9 ~]# iostat -xdm 3 /dev/sdeLinux 4.11.3-1.el7.elrepo.x86_64 (k8s-slave9.sm.bj.hualal...
2018-05-31 18:09:22
10179
转载 文件系统缓存中两个重要参数: dirty_ratio与dirty_background_ratio
这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_ration以及/proc/sys/vm/dirty_ratio两个参数的大小来实现。看了不少相关博文的介绍,不过一直弄不清楚这两个参数的区别在哪里,后来看了下面的一篇英文博客才大致了解了它们的不同。v...
2018-04-08 15:25:18
8357
原创 Ceph client上配置RBD log
在ceph.conf中的client域中增加如下:admin_socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asoklog_file = /var/log/qemu/qemu-guest-$pid.log 创建log目录和unix socket目录:mkdir -p /var/run/ceph/guests/ /var/l...
2018-03-02 14:27:00
6261
原创 使用内核态的RBD
使用内核态的RBD模块(正常情况)创建测试RBD Image:[root@ceph-node1 tmp]# rbd create rbd/bench-image --size 1G[root@ceph-node1 tmp]# rbd ls -p rbdbench-imagetest-image[root@ceph-node1 tmp]# rbd info rbd/bench-imager
2018-01-19 15:57:05
6295
原创 Ceph日志归档
Ceph日志管理Ceph产生的日志是怎么进行归档或者处理的呢?在Linux下,基本上都是使用logrotate日志管理工具来处理日志的。关于logrotate的详解可以通过这篇文章了解: http://www.ywnds.com/?p=5471关于Ceph的日志处理的logrotate的配置,可以查看/etc/logrotate.d/ceph文件,源码中的话在ceph/src/logr
2018-01-17 15:35:50
2175
原创 sysctl修改内核参数 重启不生效
现象在尝试解决VM hung死问题时,需要修改内核参数 vm.dirty_ratio, 所以就遇到了在/etc/sysctl.conf中修改后,直接sysctl -p,参数修改OK: sysctl修改内核参数 重启不生效 > image2018-1-9 15:57:7.png" src="http://wiki.hualala.com/download/attachments/1864
2018-01-09 16:24:45
12701
原创 Ceph对接Openstack
技术堆栈Ceph的一个使用场景是结合Openstack来提供云存储服务,Openstack到Ceph之间的调用堆栈就是下面这个结构: 三大模块Openstack对接Ceph,有3大模块可以使用Ceph:镜像Openstack的Glance组件提供镜像服务,可以将Image直接存储在Ceph中。操作系统盘Openstack的Nova组件提供计算服务,
2018-01-05 17:02:16
9467
5
原创 Ceph 手动部署
规划集群生产环境至少3台物理机组成Ceph集群双网卡测试环境1台主机也可以单网卡也可以准备工作在所有Ceph节点上安装NTP[root@test~]# yum install ntp在所有Ceph节点上检查Iptables规则,确定打开6789端口,及6800:7
2018-01-05 11:59:34
1822
转载 Vim编辑器-批量注释与反注释
在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码。下面简要介绍其操作。方法一 块选择模式插入注释:用v进入virtual模式用上下键选中需要注释的行数按Control+v(win下面ctrl+q)进入列模式按大些“I”进入插入模式,输入注释符“#”或者是"//",然后立刻按下ESC(两下)取消注释:Ctrl
2018-01-04 17:10:08
351
转载 GlusterFS文件系统弹性哈希算法
转自: http://www.taocloudx.com/index.php?a=shows&catid=4&id=66#0-tsina-1-95411-397232819ff9a47a7b7e80a40613cfe1(作者:林世跃@TaoCloud)GlusterFS采用独特的无中心对称式架构,与其他有中心的分布式文件系统相比,它没有专用的元数据服务集群。在文件定位的问题上,Gl
2017-12-29 15:50:21
769
原创 Ceph 集群状态监控细化
需求在做Ceph的监控报警系统时,对于Ceph集群监控状态的监控,最初只是简单的OK、WARN、ERROR,按照Ceph的status输出来判断的,仔细想想,感觉这些还不够,因为WARN、ERROR状态中,是包含多种状态的,如果在大晚上收到一条关于Ceph health的报警信息,只知道了集群有问题,但具体是什么问题呢,不得而知。这个事情发生在工作时间,就还好处理,直接到Ceph环境中查看一下
2017-12-05 15:24:21
6776
原创 Ceph pool配额设置
功能描述Ceph pool有限制配额的功能,下面做些试验,体验一下:试验查看当前集群状态[root@ceph3 ceph]# ceph -s cluster cbc99ef9-fbc3-41ad-a726-47359f8d84b3 health HEALTH_OK monmap e2: 3 mons at {ceph1=10.10.8.7:6789/
2017-12-05 12:11:24
6511
原创 VM中某块盘无法使用
现象VM中有一块盘,进入mount点后,ls显示错误:[root@es10 data2]# lsls: cannot open directory .: Input/output error跟踪分析查看磁盘[root@es10 ~]# lsblk | grep vdcNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvdc 25
2017-12-05 11:50:04
8839
原创 vm中的disk负载观察iostat的%util不科学
在偶然的测试中发现,vm中的disk负载不能看iostat的%util栏,下面做实验,验证一下。实验一:fio单job测试:iostat看到的磁盘负载:【磁盘的util已经100%了,w/s是5000左右;理论理解,增加job,磁盘的write IOPS基本不会提高了】--------------------------------分割线------
2017-10-23 16:19:50
8851
转载 blktrace分析IO
前言上篇博客介绍了iostat的一些输出,这篇介绍blktrace这个神器。上一节介绍iostat的时候,我们心心念念希望得到块设备处理io的service time,而不是service time + wait time,因为对于评估一个磁盘或者云磁盘而言,service time才是衡量磁盘性能的核心指标和直接指标。很不幸iostat无法提供这个指标,但是blktrace可以。blkt
2017-10-17 15:36:54
6408
原创 POSIX AIO及libaio的区别
POSIX AIO及libaio的区别libaio是原生的 linux aio,行为更为低级;POSXI AIO是在用户空间模拟异步IO的功能,不需要内核的支持。具体解释:On linux, the two AIO implementations are fundamentally different.The POSIX AIO is a user-level implem
2017-09-21 17:13:32
3571
转载 libaio简介
liaio介绍 linux kernel 提供了5个系统调用来实现异步IO。文中最后介绍的是包装了这些系统调用的用户空间的函数。libaio系统调用AIO系统调用总共五个,后面会一一介绍。* int io_setup(unsigned nr_events, aio_context_t *ctxp);* int io_destroy(aio_context_t ctx);*
2017-09-21 17:11:51
9086
转载 Linux IO模型及POSIX aio介绍
Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,我们
2017-09-21 17:00:24
1655
转载 线程同步之条件变量
条件变量变量也是出自POSIX线程标准,另一种线程同步机制,。主要用来等待某个条件的发生。可以用来同步同一进程中的各个线程。当然如果一个条件变量存放在多个进程共享的某个内存区中,那么还可以通过条件变量来进行进程间的同步。每个条件变量总是和一个互斥量相关联,条件本身是由互斥量保护的,线程在改变条件状态之间必须要锁住互斥量。条件变量相对于互斥量最大的优点在于允许线程以无竞争的方式等待条件的发生。当
2017-09-21 16:42:19
303
转载 ceph-dencoder的使用
0 简介贯穿Ceph OSD端数据处理的一个核心结构就是ObjectStore::Transaction,OSD处理的所有操作以及其关联的数据都会封装进入Transaction中的bufferlist结构里,这里的封装也就是序列化(encode),它将各种数据结构无论简单或者复杂都作为字节流,存入bufferlist中。最终Transaction会由具体的ObjectStore后端实现来处理,
2017-09-20 17:10:24
1278
原创 strace 跟踪进程中的系统调用
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。参数-c 统计每一系统调用的所执行的时间,次数和出错的次
2017-08-30 17:13:42
1075
转载 使用Gprof
gprof是一个GNU profiler工具,可以采集程序中每个函数的调用次数、每个函数消耗的CPU时间、以及显示调用关系图包括每个函数调用花费了多少时间。要查看gprof的官方详细信息请点击这里,也可以参看这里。一、原理 在编译和链接程序的时候,使用-pg选项,这样gcc/g++就会在应用程序的每个函数中都加入一个名为mcount/_mcount/__mcount的函数,即用-pg编
2017-08-30 16:47:40
698
转载 gprof原理与缺陷
gprof是一个程序性能分析工具,通过监测程序运行,返回函数动态调用关系、函数调用次数以及每个函数的执行时间,从而有利于程序员发现性能瓶颈,对程序进行优化。对gprof的使用介绍,网上已经很多,例如百度百科上的介绍(wikipedia上没有专门介绍gprof的页面),在此不多赘言。这两天看了gprof作者当年发表的介绍其实现的论文,简单说一下其原理和缺陷。在gprof出现之前,Unix
2017-08-30 16:44:13
2581
转载 系统级性能分析工具 — Perf
从2.6.31内核开始,Linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找。 perf Performance analysis tools for linux.Performance counters for Linux are a new kernel-based subsystem that provide a framework for al
2017-08-30 15:42:32
4808
原创 通过Xshell使用vim编辑 backspace无法删除
通过Xshell使用vim编辑 backspace无法删除 Xshell登录进入linux后, 在vim编辑时,按backspace键时不会删除。这是因为编码不匹配的问题.解决方法:选择File------>Propertise弹出的对话框中,选择Terminal下的Keyboard.如下设置:
2017-08-29 14:46:39
2419
转载 Linux的启动流程以及GRUB详解
一、Linux引导和启动流程 概述,计算机电源接通后通过BISO之后,没有问题,就会去硬盘上找到MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区,它记录着主引导记录中包含了硬盘的一系列参数和一段引导程序,其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序(GRUB
2017-08-22 17:40:48
957
转载 NUMA的取舍与优化设置
NUMA的取舍与优化设置 在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能。 安装numactl: #yum install numactl -y #numastat 等同于 cat /sys/devices/
2017-08-17 10:38:33
4111
1
转载 sparse文件简介
0. 什么是sparse文件当用户申请一块很大的存储空间时,由于最开始并没有写入数据(全是空),此时文件系统为了节省存储资源,提高资源利用率,不会分配实际存储空间,只有当真正写入数据时,操作系统才真正一点一点地分配空间,比如一次64KB。于是这个文件看起来很大,而占用空间很小,实际占用空间只与用户填的数据量有关。该文件看起来像一个大盒子,但可能装的东西不多,空洞很大,因此称为稀疏文件(Spar
2017-08-16 16:42:57
2726
转载 DWARF - 调试数据格式简介
一个程序的完成过程一般是编码、编译、运行的过程,当然这是一个理想的过程,所有的开发几乎都不可能是一帆风顺的,总会有些意想不到的错误,这时便需要调试,良好的调试器应该每一个程序员的必备。那么调试器使用的调试信息是从哪里来的呢?答案简单的很,是从编译后的文件中来的(注意这里编译的时候要使用特定的编译选项,如VC使用debug模式,GCC使用”-g”)。在编译的时候,编译器会从源文件中收集大量的信息
2017-08-15 15:06:50
5551
转载 查看Linux系统是否使用RAID阵列信息
查看Linux系统是否使用RAID阵列信息 1. dmraid介绍 dmraid全名为设备对应器磁盘阵列(Device Mapper RAID),利用Linux内核提供的设备对应器(Device Mapper)机制,为多种磁盘阵列设备提供磁盘阵列的设备文件,让用户可以在 Red Hat Enterprise Linux系统中使用硬件磁盘阵列设备。用于查看系统的软R
2017-08-10 18:37:48
17200
原创 Kapacitor常用操作
Kapacitor常用操作查看任务root@dev1:~# kapacitor list tasksID Type Status Executing Databases and Retention Policiesalert.system.ceph_disk stream disabled false
2017-08-04 11:29:28
2715
原创 Influxdb常用操作
Influxdb常用操作进入influxdb客户端root@dev1:~# influxVisit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.Connected to http://localhost:8086 version 0.13
2017-08-04 11:01:59
5357
原创 OSD(Hammer)开机自启动失败
OSD(Hammer)开机自启动失败分析及解决1. 初步定位问题出在手动添加的几个osd的磁盘分区的type code没有修改。ceph中两种类型分区的type code: type type code journal 45b0969e-9b03-4f30-b4c6-b4b80ceff106 osd 4fbd7e29-9d25-41b8-afd0-062c0ceff05d修改分
2017-07-28 18:18:19
1869
原创 ceph中使用sgdisk
ceph中使用sgdisk使用sgdisk创建分区ceph中两种类型分区的type code: type type code journal 45b0969e-9b03-4f30-b4c6-b4b80ceff106 osd 4fbd7e29-9d25-41b8-afd0-062c0ceff05d总结: ceph中创建journal分区和data分区: sgdisk -n {
2017-07-28 17:12:00
2259
原创 sgdisk基本用法
sgdisk基本用法简介sgdisk是Linux下操作GPT分区的工具,就像fdisk是操作MBR分区的工具。关于GPT和MBR的区别请参考: http://www.anchor.com.au/blog/2012/10/the-difference-between-booting-mbr-and-gpt-with-grub/使用新建分区root@ceph1:~$ sgdisk --help | g
2017-07-28 17:09:55
17826
原创 ceph perf counter 源码分析及使用
ceph perf counter 源码分析及使用示例1 enum {2 test_perfcounter_first = 200,3 test_perfcounter_count,4 test_perfcounter_time,5 test_perfcounter_sum,6 test_perfcounter_last,
2017-07-28 15:12:06
2134
原创 使用cache tier
使用cache tiercache tier几种模式:Writeback Mode: When admins configure tiers with writeback mode, Ceph clients write data to the cache tier and receive an ACK from the cache tier. In time, the data written
2017-07-28 15:08:18
1617
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人