- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 git tag标签操作
#查看本地git仓库已有的的tag git tag#切换到某一个tag下 git checkout tag_name拉取远程tag到本地 git pull --tags origin tag_name#可以切换到某一分支下,对当前状态打标签,默认标签是打在最新提交的commit上的 git tag <name>#也可以对某个具体commit打标签 git tag <name> commit_id#当前处于一个“de...
2020-05-12 13:50:46 578
原创 RCU锁机制原理解析
背景为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,也就说获得锁的开销与访...
2019-05-26 15:57:07 13772
原创 git更新代码及相关操作
git更新代码克隆自己仓库的代码如果已经克隆则增加远程原始主库分支到本地仓库地址: git remote add raid_master git@xxx.gitgit remote add xxx_master ssh://git@xxx.git如果已增加远程分支,直接fetch原始分支git fetch xxx_master合并两个版本git merge x...
2019-05-26 14:00:56 3741
原创 Linux修改进程能打开最大文件数(Could not set limit for ‘nofile’: Operation not permitted)
/proc/sys/fs/file-max –系统级别所有进程可打开的文件数/proc/sys/fs/nr_open –定义了file-max允许被修改的最大值,file-max不可以超过该值( ***为自己设置的文件数)a) 修改/etc/sysctl.conf增加:fs.file-max =***fs.nr_open = ***即可修改内核的配置b)
2018-01-15 19:56:44 2479
原创 Centos7.4安装编译nbd模块错误(modprobe: FATAL: Module nbd not found.)
查看centos版本cat /etc/redhat-release#-> CentOS Linux release 7.4.1708 (Core)查看自己内核版本uname -r #-> 3.10.0-693.el7.x86_64 开始安装编译模块yum install kernel-devel kernel-headerscd /tmpw
2018-01-15 19:33:36 8294
原创 centos7下sheepdog环境的搭建
1.epel的安装epel全称Extra Packages for Enterprise Linux,由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。弥补官方的rpm repository提供的rpm包往往是很滞后的,的不足。1、 如果以前安装过,则
2017-11-13 10:41:47 616
原创 分布式系统sheepdog之dog执行流程
dog部分主要是执行客户端的命令行请求,然后对命令进行解析,通过指定socket发送请求到sheep端,将请求交sheep端处理。具体流程请参考下图。init_commands(&commands)函数将dog支持的命令都初始化在commands中进行调用,包括对vdi、cluster、node的命令操作,setup_commands()函数先比较主命令,然后比较subvommma
2017-11-09 20:06:35 1067
原创 分布式系统sheepdog之sheep启动流程
1、sheep启动启动过程中会有一些初始化的工作,对于基本目录的初始化,对于obj、epoch、journal路径的初始化,以及对于集群和工作队列的初始化。下图可以看到sheep基本的启动流程2、创建监听窗口通过socket创建来自客户端的请求,注册对应的listen_handler和client_handler事件,对请求进行相应的处理。相关处理函数的函数指针赋值给f
2017-11-09 18:20:02 901
转载 strtol,strtoll,strtoul, strtoull字符串转化成数字
名字:strtol, strtoll, strtoul, strtoullconvert a string to a (signed, unsigned ) long integer string声明:#include ( 这个是C标准库,与linux无关。这套函数是通用的。)long int strtol(const char *nptr, char **
2017-10-31 09:57:29 606
转载 daemon 守护进程
什么是守护进程?守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在
2017-10-27 14:21:39 427
原创 Linux内核链表 ——list相关内容
链表数据结构的定义很简单:struct list_head { struct list_head *next, *prev;};
2017-10-26 10:28:16 242
转载 Python lambda介绍
在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答。 1、lambda是什么? 看个例子: 1 g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2)
2017-10-25 19:52:26 197
转载 (Python)异常处理try...except、raise
一、try...except有时候我们写程序的时候,会出现一些错误或异常,导致程序终止。例如,做除法时,除数为0,会引起一个ZeroDivisionError例子:1234a=10b=0c=a/bprint "done"运行结果:T
2017-10-25 19:51:37 212
原创 分布式系统sheepdog整体框架分析
特点:采用无中心节点的全对称架构,不用元数据服务器,无单点故障,存储容量和性能可线性扩展;新增节点通过简单配置可自动加入,数据自动实现负载均衡;节点故障时,数据可自动恢复; 由corosync完成集群成员管理和有关集群消息传递,比如对于节点加入删除等情况检测;由Qemu VM作为Sheepdog的客户端,进行快照克隆、创建虚拟卷等操作命令的执行;由gateway
2017-10-25 10:35:25 1899 1
转载 epoll机制:epoll_create、epoll_ctl、epoll_wait、close
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,linux/posix_types.h头文件有这样的声明:#define__FD_S
2017-10-24 09:20:52 254
转载 共享内存 shmget()、shmat()、shmdt()、shmctl()
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc()分配的内
2017-10-23 17:10:39 1116
转载 各类分布式存储系统简介
本地文件系统如ext3,reiserfs等(这里不讨论基于内存的文件系统),它们管理本地的磁盘存储资源、提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。但随着互联网企业的高速发展,这些企业对数据存储的要求越来越高,而且模式各异,如淘宝主站的大量商品图片,其特点是文件较小,但数量巨大;而类似于youtube,优酷这样的视频服务网站,其后台存储着大量的视频文件,尺寸大多在数十兆到数吉字节
2017-10-23 15:31:26 26097 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人