分布式存储 ceph
文章平均质量分 73
ygtff
这是起点,也是转折点。
展开
-
开发者的虚拟ceph cluster
为开发者搭建虚拟ceph cluster原创 2017-03-03 17:35:17 · 2700 阅读 · 2 评论 -
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 · 3420 阅读 · 0 评论 -
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 · 8693 阅读 · 1 评论 -
blktrace分析IO
前言上篇博客介绍了iostat的一些输出,这篇介绍blktrace这个神器。上一节介绍iostat的时候,我们心心念念希望得到块设备处理io的service time,而不是service time + wait time,因为对于评估一个磁盘或者云磁盘而言,service time才是衡量磁盘性能的核心指标和直接指标。很不幸iostat无法提供这个指标,但是blktrace可以。blkt转载 2017-10-17 15:36:54 · 5468 阅读 · 0 评论 -
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 · 6397 阅读 · 2 评论 -
Ceph 集群状态监控细化
需求在做Ceph的监控报警系统时,对于Ceph集群监控状态的监控,最初只是简单的OK、WARN、ERROR,按照Ceph的status输出来判断的,仔细想想,感觉这些还不够,因为WARN、ERROR状态中,是包含多种状态的,如果在大晚上收到一条关于Ceph health的报警信息,只知道了集群有问题,但具体是什么问题呢,不得而知。这个事情发生在工作时间,就还好处理,直接到Ceph环境中查看一下原创 2017-12-05 15:24:21 · 6647 阅读 · 0 评论 -
Ceph 手动部署
规划集群生产环境至少3台物理机组成Ceph集群双网卡测试环境1台主机也可以单网卡也可以准备工作在所有Ceph节点上安装NTP[root@test~]# yum install ntp在所有Ceph节点上检查Iptables规则,确定打开6789端口,及6800:7原创 2018-01-05 11:59:34 · 1753 阅读 · 0 评论 -
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 · 2082 阅读 · 0 评论 -
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 · 8396 阅读 · 0 评论 -
Ceph对接Openstack
技术堆栈Ceph的一个使用场景是结合Openstack来提供云存储服务,Openstack到Ceph之间的调用堆栈就是下面这个结构: 三大模块Openstack对接Ceph,有3大模块可以使用Ceph:镜像Openstack的Glance组件提供镜像服务,可以将Image直接存储在Ceph中。操作系统盘Openstack的Nova组件提供计算服务,原创 2018-01-05 17:02:16 · 9335 阅读 · 5 评论 -
使用内核态的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 · 6162 阅读 · 0 评论 -
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 · 6058 阅读 · 2 评论 -
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 · 9332 阅读 · 0 评论 -
利用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 · 6929 阅读 · 0 评论 -
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 · 3809 阅读 · 0 评论 -
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 · 8789 阅读 · 0 评论 -
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 · 1496 阅读 · 0 评论 -
ceph 知识技能树
ceph知识技能树转载 2017-03-04 08:30:24 · 1918 阅读 · 0 评论 -
ceph crush 基本操作
ceph crush 基本操作原创 2017-03-05 14:27:51 · 4258 阅读 · 0 评论 -
将内存当作ceph日志盘使用(试验)
用内存来做ceph 日志盘原创 2017-03-20 20:06:32 · 3574 阅读 · 0 评论 -
解决 ceph warn: pool <pool name> has too few pgs
ceph warn: pool <pool name> has too few pgs原创 2017-03-07 19:58:34 · 5811 阅读 · 0 评论 -
记录一次ceph recovery经历
一次ceph recovery经历背景这是一个测试环境。该环境中是cephfs一共12个节点, 2个client、2个mds、8个osdmds: 2颗CPU,每个4核,一共是8核。 128G内存, 单独的两个节点,只作为mds cpu型号: Intel(R) Xeon(R) CPU E5-1620 v3 @ 3.50GHzosd节点, 每个24核, 8 × 4T SATA盘, 1 SSD原创 2017-05-02 20:13:15 · 8595 阅读 · 5 评论 -
ceph源码编译问题总结
ceph源码编译问题总结原创 2017-03-02 10:50:41 · 3437 阅读 · 0 评论 -
ceph osd heartbeat 分析
Introduction大规模分布式系统中,各种异常情况时有发生,如系统宕机,网络故障,磁盘损坏等等都有可能造成集群内部节点无法通信。 一个分布式系统要正常协调地运转,内部各节点进程间需要通过心跳机制来保证各节点处于正常工作状态,一旦发现故障,及时响应。本文简单对ceph osd 进程间的心跳机制加以分析。HeartBeat Messenger进程间心跳消息,需要通过ceph网络层转载 2017-05-16 20:01:53 · 4238 阅读 · 0 评论 -
“Ceph浅析”系列之五——Ceph的工作原理及流程
“Ceph浅析”系列之五——Ceph的工作原理及流程本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍。如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行。对于上层的部分,特别是RADOS GW和RBD,由于现有的文档中(包括Sage的论文中)并未详细介绍,因而本文或有语焉不详之处,还请读者多多包涵。本文将首先介绍RADOS中转载 2017-05-18 15:18:02 · 595 阅读 · 0 评论 -
sparse文件简介
0. 什么是sparse文件当用户申请一块很大的存储空间时,由于最开始并没有写入数据(全是空),此时文件系统为了节省存储资源,提高资源利用率,不会分配实际存储空间,只有当真正写入数据时,操作系统才真正一点一点地分配空间,比如一次64KB。于是这个文件看起来很大,而占用空间很小,实际占用空间只与用户填的数据量有关。该文件看起来像一个大盒子,但可能装的东西不多,空洞很大,因此称为稀疏文件(Spar转载 2017-08-16 16:42:57 · 2548 阅读 · 0 评论 -
使用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 · 1566 阅读 · 0 评论 -
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 · 2009 阅读 · 0 评论 -
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 · 2175 阅读 · 0 评论 -
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 · 16733 阅读 · 0 评论 -
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 · 1787 阅读 · 0 评论 -
ceph-dencoder的使用
0 简介贯穿Ceph OSD端数据处理的一个核心结构就是ObjectStore::Transaction,OSD处理的所有操作以及其关联的数据都会封装进入Transaction中的bufferlist结构里,这里的封装也就是序列化(encode),它将各种数据结构无论简单或者复杂都作为字节流,存入bufferlist中。最终Transaction会由具体的ObjectStore后端实现来处理,转载 2017-09-20 17:10:24 · 1214 阅读 · 0 评论 -
Ceph动态更新参数机制浅析
说明:本篇中所有代码分析,都是基于Jewel 10.2.9版本。本篇都是个人理解,其中有些理解或者解释有不合理的,还请指正。 在Ceph的使用中,运行时调整参数值是个高频的操作,使用起来简单方便,最重要的是不用重启服务即可生效。如何使用Ceph动态调整参数有两种方式:第一种: 1. ceph daemon <mon/osd/mds>.<id> ...原创 2018-09-12 12:03:29 · 5622 阅读 · 2 评论