- 博客(11)
- 资源 (92)
- 收藏
- 关注
原创 openstack中swift和cinder中的区别
swift是object storage(对象存储),将object(可以理解为文件)存储到bucket(可以理解为文件夹)里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。所谓的云存储,OpenStack就是用swift实现的,类似于Amazon AWS S3(Simple S
2015-02-14 11:29:52 2093
原创 openstack网络模式
openstack neutron中定义了四种网络模式:# tenant_network_type = local# tenant_network_type = vlan # Example: tenant_network_type = gre# Example: tenant_network_type = vxlan 本文主要以vlan为例,并
2015-02-08 19:41:00 741
原创 kvm 存储栈分析
1. kvm与qemu的关系 发现好多同学还是不太了解kvm与qemu的关系,首先做个简单的介绍:qemu:it is a emulator, 用来仿真cpu,设备,总线等设备kvm: it's a kenerl module, 用来处理qemu向内核发起的请求总结一下: qemu是kvm的客户端展现,kvm是内核为qemu提供的服务代理,用来处理qemu的请求。
2015-02-08 19:15:55 624
原创 qemu虚拟机中客户机上网
启动KVM进程,例如;qemu-kvm -m 1024 -smp 4 -hda php-el5.4-vm.img -cdrom /home/wills/CentOS-5.4-x86_64-bin-DVD.iso -net nic,macaddr=00:3e:00:12:34:80 -net tap,script=/etc/init.d/qemu-ifup -boot d -vnc 192.
2015-02-08 15:28:42 1263
原创 qemu network backend的初始化
Network优化:1、virtio-net:基于virtio框架的虚拟以太网设备vhost_net优化:内核进程vhost_XXXX其他优化选项:数据发送的完整流程在上面过程中可以看到vhost最核心处就在于将Guest中的virtio用于传输层的vring队列空间通过mapping方式与Host Kernel进行了共享,这样数据就
2015-02-08 14:34:40 1986
原创 qemu虚拟机与外部网络的通信
如果想用virtio来实现一个虚拟设备大概流程是这样的:1、自己实现scan设备的功能,然后调用register_virtio_device 函数来注册发现的虚拟设备。参考drivers/lguest/lguest_device.c里面的scan_devices 函数。一个典型的实现是,虚拟机主机提供的共享内存配置,里面提供了虚拟设备的列表一样的配置,然后自己根据配置注册device。
2015-02-08 14:15:49 1184
原创 Nginx upstream原理分析【1】upstream和FastCGI前篇
[Nginx 源码分析] Fastcgi 模块(下)http://www.tuicool.com/articles/YbE3AfNginx upstream原理分析【1】upstream和FastCGI前篇http://chenzhenianqing.cn/articles/764.htmlspawn-fcgi 代码介绍
2015-02-01 21:21:47 1892
原创 HAProxy 研究笔记 -- TCP 连接处理流程
本文基于 HAProxy 1.5-dev7 版本。目录1. 关键数据结构 session2. 相关初始化2.1. 初始化处理 TCP 连接的方法2.2. 初始化 listener2.3. 绑定所有已注册协议上的 listeners2.4. 启用所有已注册协议上的 listeners3. TCP 连接的处理流程3.1. 接受新建连接
2015-02-01 11:13:28 1784
原创 HAProxy
HAProxy的event_accept函数源码分析HAProxy的独门武器:ebtreeNginx使用ETag功能的分析HAProxy 研究笔记 -- HTTP请求处理-1-接收HAProxy 研究笔记 -- 主循环处理流程 HAProxy 研究笔记 -- HTTP请求处理-2-解析HAProxy 研究笔记 -- epoll 事件的处理多个进程绑定相同端口的实现分析[
2015-02-01 10:57:34 477 1
原创 HAProxy内存池实现源码分析
名词解释:pool: 固定大小的一组内存区间组成的内存池;free_list: pool中固定大小的内存块以链表形式存储,链表的表头是free_list。申请空闲内存时从free_list中取头结点,释放内存时将内存块放到free_list的头结点。trunk: 固定大小的一块内存,多个相同大小的trunk组成pool的free_list。存储结构:pool列表: 利用双向链表
2015-02-01 10:52:15 827
原创 使用splice实现零拷贝复制文件
splice是linux2.6内核中新增的零拷贝数据发送函数,主要用于将数据发送到管道 或 从管道中接收数据。于splice类似的零拷贝发送函数还有sendfile,不同的是sendfile是将数据通过socket发到对端。所谓零拷贝是指(与传统的read/write模式相比),在数据发送的过程中,不需要在用户态为数据申请buffer,也就是不会产生用户态、内核态之间的数据拷贝(moves da
2015-02-01 10:45:45 1041
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人