自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (7)
  • 收藏
  • 关注

原创 MonClient中的函数

MonClient类位于mon目录下,其功能是负责与monitor交互。//在消息层组件中注册MonClient实例,指定认证方式,初始化keyring,启动定时器int MonClient::init() ...

2019-01-08 17:27:54 1627

原创 MonClient/sub_want&renew_subs

MonClient/sub_want&renew_subs文件:MonClient/sub_want&renew_subs方法:bool sub_want(string what, version_t start, unsigned flags)void renew_subs()涉及的方法:bool _sub_want(string what, version_t ...

2019-01-07 18:31:36 478

原创 ceph源码中interval_set类

interval_set 类在ceph源码中多次使用到,这里简单记录备注一下。interval_set中实现了两个内部迭代器类:// const_iteratorclass const_iterator : public std::iterator <std::forward_iterator_tag, T>{...protected: typename std::m...

2018-12-17 18:43:15 1124

原创 Ceph RBD

Ceph RBD CachingRBD caching:Ceph rbd 用户空间实现的librbd不能使用linux page cache,所以Ceph rbd实现了自己的Cache“RBD Caching”,当OS发送一个barrier或者执行一个flush请求,RBD caching中的dirty data就会被写入到osds中。RBD Caching提高了两种缓存模式write-bac...

2018-11-09 11:51:56 656

原创 CephFS版本选择

CephFS版本选择版本问题:cephfs的稳定版在Jewel(v10.2.0)版本首次发布,该版本包含了稳定的cephfs源代码和fsck/repair tool工具。ceph社区的发布的版本并不包括ceph的内核模块(如rbd、cephfs的内核模块实现),kernel client 的版本和发布与ceph是相互独立的,所以在选中使用kernel client是一定要选着相应的内核版本...

2018-11-08 15:44:25 1935

原创 Nginx初始化socket

ngx_add_inherited_sockets 创建socket实例,并对其初始化。ngx_listening_s 数据结构类型:struct ngx_listening_s { ngx_socket_t fd; struct sockaddr *sockaddr; socklen_t socklen; /* ...

2018-08-10 17:07:46 705

原创 Nginx中自定义数组ngx_array_t

Nginx中自定义数组ngx_array_t自定义内存数组类型 void *elts; //数组首地址 ngx_uint_t nelts; //已使用的元素个数 size_t size; //每个元素的大小 ngx_uint_t nalloc; //整个数组长度 ngx_pool_t *pool; //...

2018-08-09 17:31:30 1403

原创 Nginx 数据结构(ngx_pool_s)及其相关函数

nginx源码中struct ngx_pool_s结构体用于表示管理一个预申请的内存空间,该内存空间可根据需要分配给其他对象使用。数据结构:ngx_pool_t数据结构及相关结构: 函数:ngx_pool_t * ngx_create_pool(size_t size, ngx_log_t *log) //创建ngx_pool_t类型的对象,(从内存中字节对齐的申请s...

2018-08-09 16:22:02 562

原创 iscsi服务配置及

 架设iscsi target服务服务端软件:scsi-target-utils客户端:    scsi-initiator-utils/etc/tgt/targets.conf:主要配置文件,设定要分享的磁盘格式与哪几颗;/usr/sbin/tgt-admin:在线查询、删除 target 等功能的设定工具;/usr/sbin/tgt-setup-lun:建立 target 以及设...

2018-08-01 14:05:44 608

原创 Nginx 从链表中取出事件并处理

从链表中取出事件并处理//取出链表中取出第一个节点(ngx_queue_t),然后获取该节点所属对象的完整对象(ngx_event_t)并调用与其绑定的方法处理该对象(事件)voidngx_event_process_posted(ngx_cycle_t *cycle, ngx_queue_t *posted){ ngx_queue_t *q; ...

2018-08-01 14:03:01 241

原创 Nginx 中处理检查超时的定时器并处理

Nginx 中处理检查超时的定时器并处理//从ngx_event_timer_rbtree(定时器的红黑树中取出所有超时的定时器时间,并使用设定的handler处理该事件)voidngx_event_expire_timers(void){ ...

2018-08-01 13:50:13 527

原创 Nginx建新的子进程的主要逻辑

Nginx中创建新的子进程的主要逻辑ngx_pid_tngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn){ u_long on; ngx_pid_t pid; ngx_int_t s; ...

2018-07-31 15:39:17 333

原创 civetweb发送数据

int mg_write(struct mg_connection *conn, const void *buf, size_t len) 将buf指向的缓存中长度为len的数据发送到conn中,返回真正发送的数据大小。int mg_write(struct mg_connection *conn, const void *buf, size_t len) ...

2018-07-10 16:35:29 1735

原创 Civetweb 连接数据读取

Civetweb 连接数据读取int mg_read(struct mg_connection *conn, void *buf, size_t len) 从conn中读取若干字节到buf指定的地址空间中,返回值是真正读取的字节数。int mg_read(struct mg_connection *conn, void *buf, size_t len) { switch (...

2018-07-06 10:00:59 2541 1

原创 http协议头中的Transfer_Encoding

http协议头中的Transfer_Encoding:HTTP协议头字段Transfer_Encoding,分块传输编码,一般出现在http的响应头中。该头字段存在与HTTP协议的1.1版本中,提供一种数据传输机制。 通常http协议在传输数据时是整体一起发送的,数据体的长度由Content-Length字段指定,方便判断消息结束。该响应头字段(Transfer_Encoding)的作用...

2018-07-06 09:20:40 1345

原创 HTTP 头字段介绍

Accept:告诉WEB服务器自己接受什么介质类型,/ 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。Accept-Charset: 浏览器申明自己接收的字符集 Accept-Encoding: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate) Accept-Language:浏览器申明自己接...

2018-06-28 14:38:24 443

原创 gcc编译器常用参数

gcc参数:-O 作用:指定被生成的程序名字 例子:gcc fly.c -o fly参数:-g 作用:生产可被gdb调试的程序 例子:gcc -g fly.c -o fly参数:-D 作用:添加宏定义。 例子:gcc fly.c -o fly -DOPEN_PRINTF_DEBUG [or -D OPEN_PRINTF_DEBUG]注: ...

2018-06-26 15:20:24 960

原创 Note:Python 项目包管理package_dir

https://docs.python.org/2/distutils/examples.html ref:http://python.jobbole.com/82077/ github:project: https://github.com/pypa/sampleproject

2018-01-25 15:53:05 964

原创 RGW 数据模型设计

ceph是一个开源的统一分布式存储系统,RADOS是提供了底层基础对象存储服务,它由mon和osd组成。RADOS主要操作的对象有pool,object和object的xattr、omap。 bucket和object(key)是rados gateway构造的两个主要的数据模型,本文主要是介绍gateway中bucket和key的设计。

2017-09-14 18:18:24 2504 1

原创 HDFS杂记

以下是遇到一个hdfs的问题,而梳理的一个简单启动过程:(杂记) hdfs version:2.7.4./hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.javastatic DataNode::main() ->static secureMain(

2017-09-08 09:33:46 436

原创 OSDService是否共享osdmap

OSDService比对当前所持有的osdmap版本与请求所携带的osdmap版本,如果请求携带的osdmap版本低则与请求端共享新的osdmap。1.是否与请求端共享osdmap//与请求端对比是否需要共享osdmap,如需要则,共享服务端的osdmap与请求端。

2017-07-25 09:26:13 1450

原创 ceph key的创建

ceph中提供了cephx认证机制,客户端到服务端的访问,服务段之间的互访等都提供了认证过程,当然这些都是可配的。本文主要介绍ceph中key的常见过程。 ceph中有两个要弄清的概念: key和keyring: key标识一个密钥,一串字符;keyring用来存放密钥,也可以理解为一个文件。

2017-07-18 17:25:30 1912

原创 ObjectStore::Transaction

事务:一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。本文能主要是介绍ceph中OjectStore中Transaction的实现。

2017-07-18 12:23:31 838

原创 FileStore::mkjournal()&&FileJournal::create()

Ceph Version : Kraken Component:FileStore mkjournal()函数是用来初始化OSD的事务日志,格式化事务日志的头,事务日志可以使用裸块设备(已分区)也可以是一个文件。

2017-07-14 16:30:34 619

原创 FileStore::mkfs()

Ceph Version : Kraken Component:FileStore FileStore::mkfs() 该方法是用于初始化OSD的文件系统,只有在安装OSD时由OSD::mkfs(…)发起调用。

2017-07-14 15:29:40 587

原创 ObjectStore获取文件系统的fsid

ObjectStore获取文件系统的fsid。OSD在用户态又构造了一层自己文件系统来管理数据,并为其分配了唯一标识UUID。该UUID是其文件系统元信息中的一员,底层使用的驱动不同其保存的位置也不同,如BlueStore,保存在块设备的第一个块中,FileStore,保存在日志设备中的第一个块中。

2017-07-10 17:36:06 1412

原创 OSD&FileStore之CompatSet

CompatSet是一个结构体类型,其用于对特性兼容性进行管理。该类型的定义位于src/include/CompatSet.h文件中。

2017-07-06 19:07:18 424

原创 服务端连接日志(AsyncMessenger)

AsyncMessenger 通信层,服务端连接日志7fdcf4d44700 10 Processor -- accept listen_fd=227fdcf4d44700 10 stack get_worker7fdcf4d44700 10 Processor -- accept accepted incoming on sd 317fdcf4d44700 10 -- 127.0.0.1

2017-04-19 17:45:24 1298

原创 Messenger层数据传输协议

Messenger 层数据传输协议(Pipe消息体结构)协议:用于连个独立个体进行交互彼此必须准守的约定(个人理解)。Messenger层的协议:该协议包括了tag、header、front、middle、data、footer 其中tag、header、footer所占用的字节数都是固定的,基本是在描述消息的主体(front、middle、data)。

2017-03-07 15:14:53 575

原创 boost::variant的简单介绍

boost::variant简介 boost::Variant 是定义在boost/variant.hpp中的模板类,它的功能类似与union。Variant是一个模板,所以在使用时必须传入至少一个类型参数。Variant实例所存储的数据类型只能是传入类型中的一种。 例如:boost::Variant<double, int, string> variant;variant = "he

2017-03-03 15:43:55 3097

原创 Pipe核心分析及消息体结构-writer

Pipe核心分析及消息体结构Pipe是什么 Pipe是SimpleMessenger中的一个复杂的组件,每个Pipe实例都拥有工作在socket上的两个线程,分别负责socket连接上的读取和写入的数据传输,除此之外还会将socket上的错误信息汇报给SimpleMessenger,同时处于一个稳定状态,来持续不断的为SimpleMessenger提供数据服务。

2017-02-24 10:52:36 752

原创 Pipe核心分析及消息体结构-reader

Pipe核心分析及消息体结构Pipe是什么 Pipe是SimpleMessenger中的一个复杂的组件,每个Pipe实例都拥有工作在socket上的两个线程,分别负责socket连接上的读取和写入的数据传输,除此之外还会将socket上的错误信息汇报给SimpleMessenger,同时处于一个稳定状态,来持续不断的为SimpleMessenger提供数据服务。

2017-02-23 15:57:54 833

原创 librados 处理过程

librados是ceph rados对外提供服务的原生api,本文是libradso接口调用的过程(从之前的文中摘录)。

2017-01-12 11:23:44 1585

原创 Ceph Crush 算法源码分析

Ceph Crush算法是Ceph分布式系统中用于数据分布(定位)的核心算法,其核心组件有crush rule、bucket algorithm。crush rule是可以自定义的选择过程,bucket algorithm是从bucket选取item时使用的算法,该算法需要的主要参数有:placement seed(pgid)、crush map、副本数等。本文将简要介绍Ceph Crush算法的实现。

2017-01-11 15:57:07 2474 1

原创 RBD Image映射到Object

该函数是将更新的image的范围映射到具体的对象上.这个部分涉及到stripe的概念,需要预先了解这个概念(可以参考官网对其的解释)

2016-12-29 18:55:09 1069

原创 RBD中回调函数的变迁

rbd中涉及的回调,以写入为例,跟踪回调函数的变迁。

2016-12-29 14:46:45 1185

原创 RBD 导出一个image

RBD 导出一个image

2016-12-29 14:40:06 2248

原创 RBD AioRequest

RBD librados中AioRequest,以写为例。

2016-12-29 14:34:39 543

原创 RBD创建一个image

RBD创建一个image的过程分析。rbd.ccdo_create(librbd::RBD &rbd, librados::IoCtx& io_ctx,const char *imgname, uint64_t size, int *order,int format, uint64_t features, uint64_t stripe_unit, uint

2016-12-29 14:32:13 2116

原创 RBD中主要的数据结构

RBD中部分主要的数据结构。

2016-12-29 14:31:01 3630

ganglia+nagios集成分布式监控系统

ganglia与nagios集成分布式监控系统对云应用平台的系统监控。

2015-06-26

nova API 扩展支持IPSAN设备

扩展nova API资源支持IPSAN设备,实现ipsan设备的集成管理;主要用于instance的持久化。

2015-06-26

nova创建instance的过程

openstack nova创建instance的详细过程。

2015-06-26

cinder创建volume过程

openstack cinder创建volume的详细过程。

2015-06-26

复杂背景图像识别

复杂背景图像文字识别,详细讲述了,图像的中文字的采集,与识别方法。

2013-08-09

电子商务系统

电子商务系统,包含四个模块,用户,购物车,订单,产品模块 使用用了jsp,struts1,hibernate等技术,使用了mysql数据库

2013-08-07

opencv中文版API文档

opencv中文版API文档OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。

2013-08-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除