自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 Istio pilot-discovery服务发现源码解析(1.13版本)

Istio Pilot 1.13源码分析

2022-07-09 23:13:13 583 1

原创 Kubernetes介绍、原理及源码分析

Kubernetes介绍、原理及源码分析第一章 容器-1:Docker核心概念第二章 Kubernetes核心概念第三章 Pod及其设计理念第四章 应用编排与管理-1:原理第五章 应用编排与管理-2:Deployment第六章 应用编排与管理-3:Job第七章 应用编排与管理-4:Daemonset第八章 应用配置管理第九章 应用存储和持久化数据卷-1:核心原理第十章 应用存储和持久化数据卷-2:存储快照和拓扑调度第十一

2022-04-17 22:46:38 225

原创 [ETCD v3.4.10源码分析] 2. 日志复制与同步机制

[ETCD v3.4.10源码分析] 2. 日志复制与同步机制 第一章 [ETCD v3.4.10源码分析] 1. Raft协议与心跳机制 第二章 [ETCD v3.4.10源码分析] 2. 日志复制与同步机制文章目录[ETCD v3.4.10源码分析] 2. 日志复制与同步机制前言一、日志的结构形式二、日志保存的整体流程3. 日志生成4. Leader同步日志5. 持久化总结前言分布式共识算法(consensus algorithm)通常的做法就是在多个节点上复制状态机。分布在不同服务器

2021-02-12 22:45:19 570

原创 [ETCD v3.4.10源码分析] 1. Raft协议与心跳机制

[ETCD源码分析] 1. Raft协议与心跳机制Leader选举1. TickerLeader选举在ETCD中只有Leader能处理写提案,那么Leader是如何产生的呢?1. Ticker在创建raftNode实例时,会同时创建1个Ticker,传入的hearbeat等于cfg.TickMs,默认为100msfunc newRaftNode(cfg raftNodeConfig) *raftNode { // 创建logger(略) r := &raftNode{ lg:

2021-02-12 12:00:38 905

原创 Golang调度器:GMP模型与调度分析

参考[典藏版]Golang调度器GMP原理与调度全分析深入Golang调度器之GMP模型Go语言高阶:调度器系列(1)起源Morsing’s Blog: The Go schedulerScheduling Multithreaded Computations by Work Stealing...

2020-05-02 18:00:49 327

原创 Golang runtime综述

Golang runtimeGolang Runtime 是什么? Golang Runtime 的发展历程, 每个版本的改进Go 调度: 协程结构体, 上下文切换, 调度队列, 大致调度流程, 同步执行流又不阻塞线程的网络实现等Go 内存: 内存结构, mspan 结构, 全景图及分配策略等Go GC: Golang GC 停顿大致的一个发展历程, 三色标记实现的一些细节, 写屏障, ...

2020-05-02 17:53:18 159

原创 Golang channel 的实现原理图解

Golang channel 的实现原理深入理解Golang Channel

2020-05-02 17:45:25 335

原创 IO虚拟化 - virtio-vring的三个组成结构【转】

1. 初始化三个结构vring_new_virtqueue函数中初始化virtqueue的各种字段的初始值vq->vq.callback = callback;vq->vq.vdev = vdev;vq->vq.name = name;vq->notify = notify;vq->broken = false;vq->last_used_idx ...

2019-04-14 21:26:02 1598

原创 IO虚拟化 - vitio-blk后端驱动分析【转】

1. 概述后端驱动在qemu中实现,为前端驱动提供IO内存并初始化虚拟设备配置信息,与前端驱动交互,通过虚拟队列(环形缓冲区)、IO内存读写、中断等机制完成设备的访问。2. 后端驱动初始化后端驱动的主要作用是为前端驱动提供虚拟设备。后端驱动初始化的过程中,在完成虚拟设备注册的同时,完成虚拟设备配置信息的初始化。2.1 数据结构后端驱动相关的数据结构非常复杂,但是数据结构之间的联系与前端驱...

2019-04-14 21:12:35 1613

原创 IO虚拟化 - virtio-blk前端驱动分析【转】

1. 概述Kvm是一种全虚拟化架构的虚拟机,其IO通常由qemu进行模拟实现,相比半虚拟化方案xen,其IO效率相对较低,为了提高kvm的IO效率,在其中引入virtio模块。Virtio是一种linux的半虚拟化IO框架,对块设备、网络等进行了虚拟化。将virtio运用半虚拟化思想,分为前端驱动和后端驱动,前端驱动在客户机中,因此,需要在原来客户机操作系统中增加一个新的virtio前端驱动模块...

2019-04-14 19:28:54 3677

原创 IO虚拟化 - virtio介绍及代码分析【转】

1. 概述Virtio是linux平台下一种IO半虚拟化框架,virtio 由 Rusty Russell 开发,他当时的目的是支持自己的虚拟化解决方案 lguest。而在KVM中也广泛使用了virtio作为半虚拟化IO框架。本文主要介绍virtio的设计及在kvm中的实现。Virtio的好处:virtio作为一种Linux内部的API,提供了多种前端驱动模块框架通用,方便模拟各种设备...

2019-04-14 16:04:44 9133 4

原创 KVM中断虚拟化【转】

中断虚拟化,有两方面:如何保证物理中断只有host来处理;host如何将一个虚拟中断注入到guest中。首先看物理中断情况;在没有guest情况下,一旦CPU检测到中断信号,将在下一条指令之前响应中断,根据中断号从host OS IDT中取到对应的中断向量,然后调用interrupt handler。但是,假如guest vcpu正在执行中来了物理中断,此时的物理IDTR指向的是gues...

2019-04-14 10:56:53 1385

原创 KVM虚拟化介绍及代码分析【转】

KVM虚拟化1.1 KVM技术基础KVM(kernel-based virtual machine)的名字,基于kernel的虚拟机,已经很准确的说出了kvm的设计思路:也就是依赖linux内核,完全利用linux内核来实现cpu的调度,内存管理的功能。而另一个开源虚拟机xen,则自己开发了一套底层操作系统功能。从vcpu调度到内存管理一应俱全。虽然xen这个系统也是基于linux的,但是发展...

2019-04-13 18:57:18 844

原创 KVM虚拟机源代码分析【转】

1. KVM结构及工作原理1.1 KVM结构KVM基本结构有两部分组成。一个是KVM Driver,已经成为Linux 内核的一个模块。负责虚拟机的创建,虚拟内存的分配,虚拟CPU寄存器的读写以及虚拟CPU的运行等。另外一个是稍微修改过的Qemu,用于模拟PC硬件的用户空间组件,提供I/O设备模型以及访问外设的途径。KVM基本结构如图1所示。其中KVM加入到标准的Linux内核中,被组织成...

2019-04-13 12:34:44 1640

原创 KVM初始化过程【转】

qemu作为一个user mode的程序,其入口为main函数,该main函数定义在vl.c文件中. main函数比较长,其中跟KVM初始化相关的主要有两个函数: configure_accelerator()和machine->init(&args). cofigure_accelerator()函数选择运用哪一种虚拟化方案,其应用到的数据结构为accel_list,会调用acce...

2019-04-13 11:27:54 419

原创 Hypervisor: 概念与分类

Hypervisor的定义Redhat The hypervisor is the software layer that abstracts the hardware from the operating system permitting multiple operating systems to run on the same hardware. The hypervisor runs o...

2019-03-17 22:14:30 1368

转载 GO语言学习资源汇总 - 入门与提高

学习资源分类在线学习教程:比较系统全面,非常适合新手入门学习;书籍:毕竟很多人学习一门语言是从书籍开始的;其他Go语言的整理资源:很多比较好的Go语言资源总结整理,推荐看;Go语言中文社区:专门的Go语言中文社区,可以交流讨论,感兴趣的可以看看;其他:其他与Go语言相关的一些整理;一、在线学习教程主要整理一些比较系统的Go语言学习教程,适合新手学习;1、官网:要学习一门语言,...

2019-02-24 21:11:27 603

原创 Ceph性能调优

概述硬件层面软件层面Journal 与 tcmalloc参考文献http://xiaoquqi.github.io/blog/2015/06/28/ceph-performance-optimization-summary/http://hustcat.github.io/ceph-performance-journal-and-tcmalloc/...

2019-02-24 00:18:01 438 1

原创 深入理解Ceph - 网络层源码分析 - 3

概述消息的发送消息的接收参考文献http://bean-li.github.io/ceph-network-message-3/

2019-02-24 00:12:55 127

原创 深入理解Ceph - 网络层源码分析 - 2

概述Pipe的Connect和Accept参考文献http://bean-li.github.io/ceph-network-message-2/

2019-02-24 00:11:12 128

原创 深入理解Ceph - 网络层源码分析 - 1

概述通信数据格式网络层数据结构Linux下的Socket通信模型Ceph中与通信相关的数据结构参考文献http://bean-li.github.io/ceph-network-message-1/Ceph的消息处理架构www.wzxue.com/ceph-network/Ceph网络通信源码分析Ceph网络模块源码解析...

2019-02-24 00:08:24 225

原创 深入理解Ceph - ThreadPool和WorkQueue

概述线程池线程个数调整线程个数减少线程个数增加工作线程的暂停和恢复工作线程的工作内容工作队列和线程池建立合作关系参考文献http://bean-li.github.io/ceph-ThreadPool/...

2019-02-23 23:57:21 745

原创 Ceph Monitor功能 - Timecheck机制

引言Ceph Monitor负责的功能列表startupdata storedata syncdata checkscrubleader electtimecheckleasepaxospaxos serviceconsistency参考文献http://bean-li.github.io/ceph-mon-timecheck/...

2019-02-23 23:49:03 1130

原创 Ceph写流程

1. 与读流程的共用流程写流程相比读流程复杂的3个方面参考文献:http://bean-li.github.io/ceph-write-flow/http://bean-li.github.io/ceph-write-log/

2019-02-23 23:01:31 185

原创 Ceph读流程

读操作进入工作队列的流程参考文献:http://bean-li.github.io/ceph-read-flow/http://bean-li.github.io/ceph-read-2/http://www.quts.me/ceph-readwrite/http://www.sysnote.org/2015/11/25/ceph-osd-rw1/https://nwat.xyz/...

2019-02-23 22:55:10 810

原创 Ceph存储引擎实现 - Filestore

ObjectStoreFileJournalDBObjectMap

2019-02-23 22:39:54 396

原创 Ceph IO读写流程分析

1 Ceph IO 读写流程2 Ceph IO 流程及数据分布2.1 Ceph IO 算法流程2.2 Ceph IO参考文献https://www.jianshu.com/p/cc3ece850433

2019-02-23 22:34:32 1399

原创 Paxos一致性算法 - Paxos Made Simple论文导读

参考资料:Paxos Made Simple: http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdfTime, Clocks, and the Ordering of Events in a Distributed System: http://research.microsoft.com/en...

2019-02-22 00:25:20 479

分布式系统-分享-共识算法与区块链

分布式系统-分享-共识算法与区块链

2022-08-20

分布式系统-分享-Raft与ETCD.pdf

介绍分布式系统概述、高可用等内容; 就业界常用的一致性协议,如Bully算法、Raft算法、Paxos算法作了详细的描述; 对于Raft的应用,以ETCD为例,讲解了其读写流程。

2021-12-16

空空如也

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

TA关注的人

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