自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (10)
  • 收藏
  • 关注

转载 值得推荐的C/C++框架和库

值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.

2017-05-09 15:11:02 413

原创 notepad++配置python

http://stackoverflow.com/questions/26110973/emmet-notepad-unknown-exceptionhttp://www.dabu.info/notepad-python-script-emmet-tutorial.html

2015-12-01 20:24:28 742

原创 常用shell乱弹

一、Mysql相关1. #!/bin/bashLOG_FILE=local_ip.txtmysql="mysql -h${HOST} -P{PORT} -u${USER} -p${PASSWD} --default-character-set=utf8 ${DB_NAME} -ABN -e"$mysql " select * from ${TABLE_NA,E}" > se

2013-11-29 09:05:11 738

原创 编程中一些容易忽视的小错误

1. string赋值char pTmp[32]={'a', 'b'};string strTmp = string(pTmp);要防范pTmp不是C字符串,即不以'\0'结尾2. 调试程序时,当调用到.h文件中的函数时,程序会试图在当前路径下(或者上层include目录等)寻找头文件定义。如果程序恰好是在一台SVR1上编译,在另外一台SVR2上运行(在有测试和运营

2013-07-31 18:00:53 729

原创 XXX分布式存储系统

这里,介绍一个底层存储引擎。它是一种基于DHT的key-value存储引擎,可实现海量大规模扩展,通过多份副本来实现数据高可靠性和高可用性。 在整个系统中的位置如下,---------------------------------------------------------------------------------------------------------------

2012-11-07 00:40:01 839

原创 FLASH产品技术分析及策略建议

一、全局图主要有以下4种应用场景:1. PCI-E闪存2. 服务器侧Cache3. 全SSD阵列4. 混合存储 二、知名厂家分析其中,1) 2) 3) 4)分别对应上述的4种应用场景。 1. EMC 全面布局,霸主风范1)VFCache1.0:读缓存(单机)+DAS(split-card模式);镁光或LSI PCI-E硬件;支持WINDOWS

2012-11-07 00:23:22 1141

原创 主机与阵列交互(SCSI)

主机与阵列交互过程主要有:扫盘过程、读写过程和任务管理。 详述如下:一、扫盘过程相关的SCSI命令序列为:Report Luns(下发两次) --》Inquiry --》 Read Capicity --》Test Unit Ready --》Windows下,建立设备树1. 启动器要求目标器上报LUN的个数和ID,目标器回复LUN的列表和状态;2. 查询类命令,包含多个子

2012-11-06 23:57:05 1019

原创 pdflush刷盘时机

一般,写缓冲占内存10%时,pdflush开始刷盘,运行间隔5s,30s的数据算旧。

2012-11-06 23:45:46 1120 1

原创 对存储的理解

从毕业后进入公司从事云计算行业,到涉足云存储开发,慢慢揭开了我对存储学习和认识、深化的过程。接触的越多,学习越深入,越觉得欠缺,已经不仅仅是书本上的专业知识,更包含了对行业的认识、对系统架构的了解的匮乏。之前也不断有写一些存储相关的片断,总是缺少深度和系统,也就慢慢中断了。从今天开始,我还是准备把我对存储系统学习的理解记录起来,慢慢整理。希望,在不久的将来,我能成为一名真正优秀的专业的存储开发工程

2012-11-06 23:33:22 1539

原创 分布式存储系统sheepdog

Sheepdog,是由NTT的3名日本研究员开发的开源项目,主要用来为虚拟机提供块设备。其架构如下:   下面,我们将从架构、模块等几个方面来介绍下: 一、架构图如上图:采用无中心节点的全对称架构,无单点故障,存储容量和性能可线性扩展;新增节点通过简单配置可自动加入(IP:PORT),数据自动实现负载均衡;节点故障时,数据可自动恢复;直接支持QE

2012-11-06 20:57:47 17312 1

原创 虚拟化总论

一、虚拟化技术介绍虚拟化技术是对物理资源进行抽象的过程,包括将多个物理资源抽象为一个资源池,或者将一个物理资源抽象成多个虚拟资源。 谈到虚拟化,虚拟机是避免不了的。这里,我们就来了解下虚拟机的概念。对虚拟机来说,虚拟化前:硬件和OS完全独立;而虚拟化后,硬件和OS紧耦合,将硬件虚拟化成一个资源池,虚拟机从资源池中分配资源。从这里可以看出,虚拟机具有这样几个特性:1. 分区

2012-11-05 01:09:09 1402

原创 LVM2的理解

LVM2,是LINUX的卷管理工具。它把若干磁盘组成存储池,然后从存储池中创建逻辑卷,向用户提供逻辑块设备。可以说,它代替内核成为了磁盘的管理者,维护物理磁盘和逻辑块设备之间的映射关系,屏蔽了不同物理的差异,更易于做磁盘管理。 基本原理:基于linux 2.6内核后引入的Device Mapper机制实现。但它没有使用Device Mapper在用户态库提供的库,而是在用户态实

2012-11-05 00:34:52 826

原创 epoll+eventfd+libaio实现高效异步IO

转自:http://rdc.taobao.com/blog/cs/?p=1583

2012-11-05 00:21:41 2452 1

原创 某XXFS分布式文件系统设计概述

一、为应对海量数据,系统架构发生变迁    1. 传统系统架构:Server + SAN        主导厂商:EMC/NetAPP/Oracle/IBM        特点:使用SAN存储(FC),价格昂贵,但速度快,响应时间10ms        应用接口:提供通用POSIX/SQL接口    2. 当前系统架构:IP + Cluster        主导厂商:Go

2012-11-05 00:14:52 919

原创 关于页缓存的几点总结

页缓存(Page Cache),是用来保存磁盘中数据的内存页,主要是为了提高系统IO性能而采用的缓存机制。具体来说,页缓存是:1)以页为单位的文件视图2)属于某文件的缓存页以基树形式组织3)可以从文件inode的address_space对象获取树根。叶子节点对应文件页,从左到右排列,根据index(文件内的页索引)在基树中查找4)是否要预读。 页缓存的mpage机制:

2012-10-26 00:17:07 772

原创 不要使用dd测试磁盘性能

dd是LINUX下一个好用的磁盘管理命令,也可以实现对设备的读写。但是,在使得dd时,也有这样几个问题需要考虑:1)dd读操作的缓存区一般是4KB/8KB2)dd读操作是同步读,如果是对块设备进行读,由于不经过文件系统,不过有请求合并。即对一个1MB的读,会有256个4KB的读请求3)先读后写4)同步的读请求在负载重时可能阻塞队列,关闭设备时可能要等一段时间。因为缓存中的数据要

2012-10-26 00:00:45 1583

原创 通过内核inotify机制向内核程序传输命令

/*debug.h*/#ifndef DEBUG_H_#define DEBUG_H_ #define MAX_EPOLL_FD (1024) typedef struct debug_file{ int fd; char *name; int epoll_fd; int inotify_fd;}debug_file_t; #endif

2012-10-25 00:40:23 572

原创 IA-32存储器的地址映射过程

由IA-32架构的内存保护模式和CPU决定了地址映射的过程:逻辑地址->线性地址->物理地址 逻辑地址到线性地址:1. 根据指令性质获取相应类型的段寄存器2. 根据段寄存器中数据在GDTR中获取地址段描述符3. 从地址段描述符中获取地址基址4. (CPU指令决定的)逻辑地址,结合地址基址得到线性地址 线性地址到物理地址:1. 由CR3获取页目录基址2. 由页

2012-10-23 23:45:58 567

原创 linux内核中的特殊用法

__attribute__对于关键字__attribute__,在标准和C语言中是没有的。它是GCC中对C语言的一个扩展用法。可以用来设置一个函数或数据结构定义的属性,对一个函数设置属性的主要目的是使编译器对函数进行可能的优化。可以在同一个定义中,设置多个属性,各个属性用逗号分开即可。如下面的定义就是告诉编译器,它不改变全局变量和该函数不能扩展为内联函数。Int getlim() __

2012-10-23 23:36:59 630

原创 两个可用来计算时间的工具小函数

double timems(struct timeval* start, struct timeval* end){ return ((end->tv_sec - start->tv_sec)*1000.0) + ((end->tv_usec - start->tv_usec)/1000.0);}double timeus(struct timeval* start, struct

2012-10-23 23:18:29 545

原创 打印函数调用栈信息

01. 02.void XXX_debug_print_trace(void) 03.{ 04. int j, nptrs; 05. void *buffer[100]; 06. char **strings; 07. 08. nptrs = backtrace(buffer, 100); 09. 10. strings = bac

2012-10-23 23:11:26 510

原创 通过增加打印日志调试程序

#define TRACE_BUFF_MAX (4096) #define TRACE_TIME_BUFF_MAX (4096) void trace_print(char *format) { time_t now; struct tm *lt; int written; va_list argument; char bu

2012-10-23 22:54:22 566

原创 云计算及其基础架构的理解

一、云计算产生的背景1. 海量用户带来的商机a) 2009年10月,中国宽带用户数突破1亿b) 2009年9月,中国移动互联网用户1.92亿2. 海量信息的处理带来技术的挑战a) 2009年,人类产生的数据约988EB海量互联网用户带来新的商机,以及海量信息处理带来的技术挑战催生了云计算。二、云计算是什么商业视角:云计算=信息电厂从传统模式到云计算模式,

2012-10-21 15:35:20 1620

原创 htc one x解锁与ROOT,亲难可行

一键永久ROOT权限:方法1具体步骤:官方解锁打开手机usb调试模式解压附件,双击运行批处理install-root.bat附件下载:http://dl.vmall.com/c0jahk0dkbhttp://www.qdppc.com/forum.php?mod=viewthread&tid=114736&fromuid=647994 解锁,试验了很多一键解锁都

2012-10-14 02:20:05 589

原创 IO调度选择

I/O 调度算法在各个进程竞争磁盘I/O的时候担当了裁判的角色。它要求对请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。主要涉及到两点:请求的合并(合并相邻请求以减少磁盘寻道次数)和电梯调度 (使磁头沿一个方向移动,避免来回移动)   下面列出4种调度算法:CFQ (Completely Fair Queuing 完全公平的排队)(elevator=cfq): 这是默

2012-09-27 00:28:40 1075

原创 GlusterFS之文件系统扩展属性

扩展属性是现代文件系统最不为人知的属性之一,可以采用一种完全的特性将扩展属性添加到文件。其表现形式是key-value对,可以通过操作get/set扩展属性。GlusterFS就大量使用了扩展属性--xattrs,来完成集群工作(复制、条带、分布式),所以说,扩展属性对GlusterFS至关重要。这里有个关键,get/set扩展属性会触发与之关联的所有服务器,这样的话,就可以通过setxatt

2012-08-21 23:05:21 2176 2

转载 vmware设置桥接上网

http://blog.csdn.net/gavin_dinggengjia/article/details/6325904

2012-08-16 20:01:28 2532

原创 数据重现网址

https://skydrive.live.com/#cid=AA5D4A5D8E52802C&id=AA5D4A5D8E52802C%21408

2012-06-17 14:32:12 499

原创 iSCSI Enterprise Target的架构分析

iSCSI Enterprise Target,简称IET. 是开源的iSCSI Target软件,西方在源码阅读基础上获得,可由http://iscsitarget.sourceforge.net/获取。IET,由用户层模块和内核层模块共同组成,它们之间通过NETLINK机制进行通信。一、用户模块(ietd daemon)它是IET的管理工具,主要功能可描述为:1)用来配

2012-06-17 11:00:19 2865 1

原创 GlusterFS的分布式锁

“Glusterfs锁,并没有中央锁服务器的概念。它可以使用一个或多个节点作为锁管理节点,而底层直接使用系统上的锁机制,所以本身并不需要作过多的工作。它需要保证的是,锁的事务性,即要么锁成功,要么不锁。对于多个锁节点,这个尤其重要,必须所有节点都锁上,才是加锁成功。不能一个节点加锁成功,而其他节点不成功,这样容易引起死锁。”GlusterFS锁由记录锁构成,即通过fcntl实现,可对文件的

2012-06-15 01:14:05 2613 1

原创 虚拟化实现技术分析

虚拟化平台X主要由Hypervisor和Domain0组成。Hypervisor是虚拟化子系统的核心,它位于操作系统和硬件之间,负责为上层运行的操作系统提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机之间的相互隔离;Hypervisor向Domain0提供了一个抽象层,其中包含了管理和虚拟硬件的API。Domain0是一个特权虚拟机,内部包含了真实的设备驱动(原生设备驱动),可直接访

2012-06-10 17:00:19 972

原创 对虚拟化的一些理解

一、虚拟化技术概览1虚拟化前1)IT资源独立2)操作系统必须与硬件紧耦合2虚拟化后1)资源抽象成共享资源池2)上层操作系统与硬件解耦,操作系统从资源池中分配资源3虚拟机的4大特点1)分区在单一物理机上同时运行多个虚拟机2)隔离同一物理机上多个虚拟机相互隔离3)封装整个虚拟机执行环境封装在独立文件中4)独立虚拟机无须修改,可运行在任

2012-06-10 16:46:43 1644

原创 云存储概要介绍

云存储云存储系统,通过集群、分布式文件系统等功能联合起来协同工作,将大量分散的存储设备聚焦成一个大的资源池,并通过一定的应用软件或应用接口(浏览器或轻量级终端),向用户提供一定类型的存储和访问服务。 基本思路:对数据切片,分散到不同节点上进行存储。 技术流派:1.主从架构 Google GFS/BigTable存在master节点,data在多data node上分

2012-06-10 16:15:16 1036

原创 网络存储的3种形式及各自特点

有3种表现形式,DAS/NAS/SAN1)DAS将存储设备通过SCSI线缆或FC通道直接连接到服务器上。2)NAS一种文件共享服务。拥有自己的文件系统,通过NFS或CIFS对外提供文件访问服务。NAS,包括存储器件和专用服务器,专用服务器上装有专门的操作系统,通常是简化的unix/linux操作系统,或者是一个特殊的win2000内核。它为文件系统管理和访问做了

2012-06-10 15:56:48 3779

原创 loop设备

loop设备是一种伪设备,能使我们像块设备一样访问一个文件。在使用之前,一个Loop设备必须和一个文件进行关联。可以分两步走:1)losetup /dev/loop0 /path/to/file2)mount /dev/loop0 /mnt/test其实上面的两个步骤可以写成一个步骤:mount -o loop /path/to/file /mnt/test

2012-06-10 15:38:35 807

原创 GlusterFS资源收集

http://hekafs.org/index.php/2012/03/glusterfs-algorithms-replication-future/http://hekafs.org/dist/xlator_api_2.html

2012-05-25 23:15:02 650

转载 io engine

http://www.spinics.net/lists/fio/msg00819.htmln 2011-08-03 22:13, Martin Steigerwald wrote:> Hi!> > In order to understand I/O engines better, I like to summarize what I > think to know at t

2012-02-29 00:53:10 2502

转载 Linux-IO-Stack

2012-02-29 00:51:54 1868

原创 虚拟化技术分析

平台虚拟化:针对计算机和操作系统的虚拟化。我们通常所说的虚拟化,主要就是指平台虚拟化。通过使用控制程序(也被称为VMM或Hypervisor),隐藏特定计算平台的真实物理特性,为用户提供抽象的、统一的、模拟的计算环境(虚拟机)。虚拟机中运行的操作系统称为Guest OS,而运行VMM的操作系统被称为Host OS. 当然,某些VMM也可以脱离操作系统直接运行在硬件之上(Bare Metal)。

2012-02-09 23:53:12 715

原创 ubuntu+KVM的网址收集

http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=359647&start=0http://blog.lzhaohao.info/archive/install-kvm-ubuntu-1004-guest-os-in-command-line/http://www.techotopia.com/index.php/Installing_an_U

2012-01-11 00:44:02 492

文件读取详解

关于文件整个读流程的分析,从文件系统、page cache,再到通用块层、块驱动层等的详尽分析,描述了在此过程中的整个函数栈,有很强的参考价值。

2011-11-18

NOSQL数据库笔谈

当前最全的关于NOSQL的中文资源整理和汇总,高清下载!

2011-10-30

flashcache的实现问题

描述了由facebook开发的开源软件flashcache,它采用device mapper机制实现,作为一个通用的cache被设计。高清pdf文档,请收藏。

2011-10-27

rfc3720_pdf

一个高清的rfc3720文档,pdf格式 纯英文版本 绝对清晰,可以用来学习,收藏!祝你成功

2011-07-20

iscsi target的用户态实现

一个关于iscsi target的开源实现,是在用户态完成的。可以作为初学者的参考

2011-07-20

linux设备驱动程序第三版(PDF)

是想深入学习LINUX的人应该深入研究的一本书,PDF格式,相当清晰,推荐

2009-04-01

c++ 精华区(收藏整理版)

这是一本关于C++的书,对各种相关资源进行链接整合,是收藏过程中觉得很有用的一本书,推荐

2009-03-27

Microsoft编写优质无错C程序秘诀

是关于如何编写优质C代码的,可以使你更高效的编写完整的C程序

2009-03-23

空空如也

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

TA关注的人

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