2014年3月14日

今日成为CSDN认证专家

摘要: 认证时写的申请材料: 程序猿一枚毕业于南开工作于上海。喜欢读书,喜欢跑步,激情似火,心静如水。 喜欢编程,喜欢寻根问底各种技术,喜欢在各种新技术中汲取营养。 喜欢分享,因此以一些高质量的博文来回报各位可爱可敬的程序猿们。 从2013年12月开博3个月,共发表博文43篇,访问量接近20万,多篇文章被推荐到首页和边栏的推荐文章;创建了专栏《Linux调试技巧》,收录博文7篇,有4万多的访问量;专栏《RabbitMQ从入门到精通》,收录博文8篇,有近2万的访问量。正在申请专栏《存储那些事儿》,已发表相关博文5篇,主要专注在Linux的下一代文件系统BtrFS;企业存储的异构虚拟化的最佳实践SMIS; 阅读全文

posted @ 2014-03-14 17:49 anzhsoft 阅读(265) 评论(0) 推荐(0) 编辑

2014年3月13日

存储那些事儿(五):BTRFS文件系统之Btree结构详解

摘要: Btree数据结构可以说是BTRFS文件系统的基础。它提供了一个通用的方式去存储不同的数据类型。它仅仅存储3个数据类型:key, item和block header。 btrfs_header的定义如下:struct btrfs_header { u8 csum[32]; u8 fsid[16]; __le64 blocknr; __le64 flags; u8 chunk_tree_uid[16]; __le64 generation; __le64 owner; __le32 nritems; u8 level;}btrfs_disk... 阅读全文

posted @ 2014-03-13 20:06 anzhsoft 阅读(1065) 评论(0) 推荐(0) 编辑

2014年3月6日

Linux Debugging(七): 使用反汇编理解动态库函数调用方式GOT/PLT

摘要: 本文主要讲解动态库函数的地址是如何在运行时被定位的。首先介绍一下PIC和Relocatable的动态库的区别。然后讲解一下GOT和PLT的理论知识。GOT是Global Offset Table,是保存库函数地址的区域。程序运行时,库函数的地址会设置到GOT中。由于动态库的函数是在使用时才被加载,因此刚开始GOT表是空的。地址的设置就涉及到了PLT,Procedure Linkage Table,它包含了一些代码以调用库函数,它可以被理解成一系列的小函数,这些小函数的数量其实就是库函数的被使用到的函数的数量。简单来说,PLT就是跳转到GOT中所设置的地址而已。如果这个地址是空,那么PLT的跳. 阅读全文

posted @ 2014-03-06 18:46 anzhsoft 阅读(761) 评论(0) 推荐(0) 编辑

Linux Debugging(六): 动态库注入、ltrace、strace、Valgrind

摘要: 实际上,Linux的调试方法非常多,针对不同的问题,不同的场景,不同的应用,都有不同的方法。很难去概括。本篇文章主要涉及本专栏还没有涵盖,但是的确有很重要的方法。本文主要包括动态库注入调试;使用ltrace命令处理动态库的调试;使用strace调试系统调用的问题;Valgrind的简要介绍。1. 动态库注入 如何排除其他library的调用问题?动态库注入(library injection)有可能会让你事半功倍。一个大型的软件系统,会用到非常多的动态库。那么如果该动态库的一个api调用出了问题,而调用该api的地方非常非常多,不同的调用都分散的记录在不同的log里。那么,如何快速的找到是.. 阅读全文

posted @ 2014-03-06 11:20 anzhsoft 阅读(585) 评论(0) 推荐(0) 编辑

2014年3月5日

存储那些事儿(四):传统商业存储融入云计算之路

摘要: 一年前开始学习Hadoop。Hadoop, 大数据的事实标准,被Facebook, Yahoo,eBay,taobao,baidu广泛应用。Hadoop本身很复杂,包含了很多子项目,不同的应用场景催生了不同的子项目。 最近要做OpenStack的项目,开始学习OpenStack。也反思了一下我现在所从事的行业:企业存储,路在何方? IT的技术发展可以说是日新月异。在人们还没有正在逐渐完善Hadoop时,Google几年前就摒弃了MapReduce的架构。现在Google的新三驾马车Caffeine、Pregel、Dremel据说可以将1PB的查询请求控制在3秒以内。这个技术我没有去了解... 阅读全文

posted @ 2014-03-05 15:59 anzhsoft 阅读(226) 评论(0) 推荐(0) 编辑

2014年3月4日

存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合

摘要: OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。OpenStack是IaaS(基础设施即服务)‎软件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。 Cinder提供了OpenStack的Block Service(块服务)。类似于 Amazon 的 EBS 块存储服务,OpenStack 中的实例是不能持久化的,需要挂载 volume,在 volume 中实现持久化。Cind.. 阅读全文

posted @ 2014-03-04 18:03 anzhsoft 阅读(350) 评论(0) 推荐(0) 编辑

2014年3月3日

存储那些事儿(二): 下一代Linux文件系统BTRFS简介

摘要: BTRFS,通常念成 Butter FS,Better FS 或B-tree FS。下一代的Linux文件系统。 它基于写时拷贝(copy-on-write),支持高效的snapshot和clone。它使用b-tree作为存储的数据结构。在BTRFS项目主页上对自己是这么描述的:"一个新的针对Linux的写时复制文件系统,致力于实施高级的功能,同时关注容错、修复和管理方便性。" 它有哪些高级功能呢?下面的feature来自BTRFS的项目主页:http://btrfs.wiki.kernel.org/Extent based file storage #扩展了2^64 by 阅读全文

posted @ 2014-03-03 14:26 anzhsoft 阅读(245) 评论(0) 推荐(0) 编辑

2014年2月24日

RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)

摘要: 什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 它可以作为RabbitMQ的Message的数据格式进行传输,由于是结构化的数据,这样就极大的方便了Consumer的数据高效处理。当然了你可能说使用XML不也可以吗?与XML相比,ProtoBuf有以下优势:简单size小了3-10倍速度快乐20-100倍易于编程减小了语义的歧义 当然了,的确还有很多类似. 阅读全文

posted @ 2014-02-24 15:29 anzhsoft 阅读(211) 评论(0) 推荐(0) 编辑

2014年2月23日

RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)

摘要: 在云计算环境中,很多时候需要用它其他机器的计算资源,我们有可能会在接收到Message进行处理时,会把一部分计算任务分配到其他节点来完成。那么,RabbitMQ如何使用RPC呢?在本篇文章中,我们将会通过其它节点求来斐波纳契完成示例。1. 客户端接口 Client interface 为了展示一个RPC服务是如何使用的,我们将创建一段很简单的客户端class。 它将会向外提供名字为call的函数,这个call会发送RPC请求并且阻塞知道收到RPC运算的结果。代码如下:fibonacci_rpc = FibonacciRpcClient()result = fibonacci_rpc.call. 阅读全文

posted @ 2014-02-23 21:37 anzhsoft 阅读(205) 评论(0) 推荐(0) 编辑

RabbitMQ消息队列(六):使用主题进行消息分发

摘要: 在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统。Consumer可以监听不同severity的log。但是,这也是它之所以叫做简单日志系统的原因,因为是仅仅能够通过severity设定。不支持更多的标准。 比如syslog unix的日志工具,它可以通过severity (info/warn/crit...) 和模块(auth/cron/kern...)。这可能更是我们想要的:我们可以仅仅需要cron模块的log。 为了实现类似的功能,我们需要用到topic exchange。1. Topic exchange 对于Message的rou. 阅读全文

posted @ 2014-02-23 16:29 anzhsoft 阅读(164) 评论(0) 推荐(0) 编辑

导航