- 博客(55)
- 收藏
- 关注
原创 RedLock
Redlock实现假设有N个Redis master。这些节点完全互相独立,不存在主从复制或者其他集群协调机制。我们确保将在N个实例上使用与在Redis单实例下相同方法获取和释放锁。现在我们假设有5个Redis master节点,同时我们需要在5台服务器上面运行这些Redis实例,这样保证他...
2019-04-17 11:21:00
310
原创 RadosClient OSDC
RadosClient.hclass librados::RadosClient : public Dispatcher //继承自Dispatcher(消息分发类){public: using Dispatcher::cct; md_config_t *conf; //...
2019-03-23 18:45:00
554
原创 rbd.ko
代码路径drivers/block/rbd.c 入口rbd_init() rbd_slab_init() -> kmem_cache_create()创建Slab缓存 rbd_sysfs_init() ->device_register() -...
2018-10-24 19:05:00
306
原创 tgt服务端流程分析
整体流程 Figure1 tgt流程图 基本操作 安装tgt包: yum --enablerepo=epel -y install scsi-target-utils 安装完成后,启动 TGT 服务: # service tgtd start 如果...
2018-08-31 12:03:00
1090
原创 valgrind
valgrind--track-fds=yes--leak-check=full--undef-value-errors=yes./a.out
2018-07-11 14:59:00
107
原创 virsh命令来创建虚拟机步骤
(1)生成硬盘镜像文件: 格式:raw或qcow2 # qemu-img create -f raw fdisk.img 10G# qemu-img info fdisk.img (2)编写xml配置文件,这一步在后面做详细介绍 (3)创建并运行虚拟机 # sudo apt-ge...
2018-06-11 10:58:00
3191
原创 临时端口号(EPHEMERAL PORT)的动态分配
网络端口号是如何分配的?除了给常用服务保留的Well-known Port numbers之外,给客户端的端口号通常是动态分配的,称为ephemeral port(临时端口),在Linux系统上临时端口号的取值范围是通过这个内核参数定义的:net.ipv4.ip_local_port_rang...
2018-06-05 11:12:00
1720
原创 日志文件系统是怎样工作的
文件系统要解决的一个关键问题是怎样防止掉电或系统崩溃造成数据损坏,在此类意外事件中,导致文件系统损坏的根本原因在于写文件不是原子操作,因为写文件涉及的不仅仅是用户数据,还涉及元数据(metadata)包括 Superblock、inode bitmap、inode、data block bit...
2018-06-05 11:08:00
137
原创 观察网络性能时如何选择工具
Linux系统上的网络工具甚多,如何根据实际需要选择称手的工具呢?在此作一个简单介绍: 观察网络流量: “sar -n DEV 1 5” 可以统计每个网卡上的网络流速: # sar -n DEV 2 5 ...02:47:12 PM IFACE rxpck/s ...
2018-06-05 11:02:00
126
原创 借助PERF工具分析CPU使用率
如果CPU的使用率突然暴涨,如何迅速定位是哪个进程、哪段代码引起的呢?我们需要一个profiling工具,对CPU上执行的代码进行采样、统计,告诉我们CPU到底在忙些什么。 perf 就是这样的工具。我们举个例子看看 perf 是怎样工作的。 首先我们用以下命令模拟出CPU利用率暴涨的现象...
2018-06-05 10:55:00
690
原创 容易被误读的IOSTAT
iostat(1)是在Linux系统上查看I/O性能最基本的工具,然而对于那些熟悉其它UNIX系统的人来说它是很容易被误读的。比如在HP-UX上 avserv(相当于Linux上的 svctm)是最重要的I/O指标,反映了硬盘设备的性能,它是指I/O请求从SCSI层发出、到I/O完成之后返回S...
2018-06-05 10:50:00
105
原创 DISK 100% BUSY,谁造成的?
iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办? # iostat -xd...Device: rrqm/s wrqm/s r/s w/s rkB/s wkB...
2018-06-05 10:47:00
169
原创 利用blktrace分析IO性能
在Linux系统上,如果I/O发生性能问题,有没有办法进一步定位故障位置呢?iostat等最常用的工具肯定是指望不上的,【容易被误读的iostat】一文中解释过await表示单个I/O所需的平均时间,但它同时包含了I/O Scheduler所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的...
2018-06-05 10:42:00
123
原创 使用Automake 创建和使用静态库
使用Automake 创建和使用静态库 1. 目录结构如下: example|——src 目录(存放源代码文件) |——hello.c|——lib 目录(存放用来生成库的文件) |——test.c 用来生成静态库libhello.a|——includ...
2018-05-05 17:36:00
575
原创 Linux中的动态库和静态库(.a/.la/.so/.o)
Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi.o ...
2018-05-05 17:22:00
506
原创 tgt conf说明
# This is a sample config file for tgt-admin.# The files ending with '.conf' in this directory will be included.## The "#" symbol disables the p...
2018-03-22 12:10:00
682
原创 centos7 内核升级
https://www.kernel.org/ elrepo # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-...
2018-03-16 18:02:00
78
原创 tcmu+librbd ISCSI
tcmu+librbd环境搭建1.环境升级内核要求>=4.4.8备注:解决 target__core__user.h 头文件缺失问题cp target__core__user.h /usr/include/linux/2.安装依赖2.1 ceph相关yum install...
2018-01-09 10:22:00
349
原创 glusterfs通信之rpc(转)
在glusterfs中,gluster与glusterd通信请求对卷的操作、集群的操作、状态的查看等;glusterd与glusterfsd通信完成对卷的操作,集群的操作,状态的查看;glusterfs与glusterfsd通信完成文件的存储。所有这些通信都是通过内部的RPC模块来完成的。 ...
2017-12-29 11:17:00
311
原创 glusterfs--volume管理(转)
Q: 常用的命令有哪些? 创建volume: gluster volume create NAME stripe SCOUNT replica RCOUNT transport TYPE BRICKLIST NAME为volume的名字;SCOUNT,RCOUNT分别为stripe,re...
2017-12-29 11:16:00
193
原创 glusterfs--peer节点管理(转)
1. 相关命令 添加peer: gluster peer probe Host (Host为peer的主机名) 删除peer:...
2017-12-29 11:15:00
268
原创 __attribute__((constructor)) && __attribute__((destructor))
__attribute__((constructor)) 执行在main前 __attribute__((destructor)) 执行在main之后 ...
2017-11-07 10:15:00
61
原创 Bigtable学习翻译
Bigtable研究 摘要 Bigtable是一个用于管理结构型数据的分布式存储系统,被设计为可扩展到很大规模:通过数以千台的...
2017-10-26 16:27:00
68
原创 花一点时间,玩玩 ZFS
zfs源yum install --nogpgcheck http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm插一句(不需要,做个记录)导入公钥rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux 修改zfs.repo e
2017-10-26 15:57:16
305
原创 rbd feature
--image-format format-id 选择用哪个对象布局,默认为 1 。 format 1 - 新建 rbd 映像...
2017-10-13 10:44:00
338
原创 figlet toilet 生成LOGO
# figlet LOGO _ ___ ____ ___ | | / _ \ / ___|/ _ \ | | | | | | | _| | | || |__| |_| | |_| | |_| ||_____\___/ \____|\___/ ...
2017-10-12 16:28:00
272
原创 ceph 编译单机运行
依赖 # ./install-deps.sh 编译 # ./autogen.sh# ./configure# make -j...
2017-09-26 13:47:00
69
原创 pg 修复
ceph pg dump | grep inconsistent|awk '{print "ceph pg deep-scrub "$1 " &ceph pg repair "$1}'|sh -x ...
2017-09-08 16:15:00
68
原创 ctdb main loop
main_loop kill -o daemon is still running ping local daemo...
2017-08-31 10:24:00
138
原创 python 获取网卡与ip
def get_interface_ip(ifname): sckt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( sckt.fileno(), ...
2017-08-29 17:09:00
81
原创 osd内的pg数量
ceph pg dump | awk '/pg_stat/ { col=1; while($col!=“up”) {col++}; col++ }/[0-9a-f]+.[0-9a-f]+/ { match($0,/^[0-9a-f]+/); pool=substr($0, RSTART, RLENGTH); poollist[pool]=0;up=$col;...
2017-08-25 15:56:00
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人