56、网络虚拟化:如何成立独立的合作部?

上一节,我们讲了存储虚拟化,这一节我们来讲网络虚拟化。 网络虚拟化有和存储虚拟化类似的地方,例如,它们都是基于virtio的,因而我们在看网络虚拟化的过程中,会看到和存储虚拟化很像的数据结构和原理。但是,网络虚拟化也有自己的特殊性。例如,存储虚拟化是...

趣谈Linux操作系统

55、存储虚拟化(下):如何建立自己保管的单独档案库?

上一节,我们讲了qemu启动过程中的存储虚拟化。好了,现在qemu启动了,硬盘设备文件已经打开了。那如果我们要往虚拟机的一个进程写入一个文件,该怎么做呢?最终这个文件又是如何落到宿主机上的硬盘文件的呢?这一节,我们一起来看一看。 前端设备驱动virt...

趣谈Linux操作系统

54、存储虚拟化(上):如何建立自己保管的单独档案库?

前面几节,我们讲了CPU和内存的虚拟化。我们知道,完全虚拟化是很慢的,而通过内核的KVM技术和EPT技术,加速虚拟机对于物理CPU和内存的使用,我们称为硬件辅助虚拟化。 对于一台虚拟机而言,除了要虚拟化CPU和内存,存储和网络也需要虚拟化,存储和网络...

趣谈Linux操作系统

53、计算虚拟化之内存:如何建立独立的办公室?

上一节,我们解析了计算虚拟化之CPU。可以看到,CPU的虚拟化是用户态的qemu和内核态的KVM共同配合完成的。它们二者通过ioctl进行通信。对于内存管理来讲,也是需要这两者配合完成的。 咱们在内存管理的时候讲过,操作系统给每个进程分配的内存都是虚...

趣谈Linux操作系统

52、计算虚拟化之CPU(下):如何复用集团的人力资源?

上一节qemu初始化的main函数,我们解析了一个开头,得到了表示体系结构的MachineClass以及MachineState。 4.初始化块设备我们接着回到main函数,接下来初始化的是块设备,调用的是configure_blockdev。这里我...

趣谈Linux操作系统

51、计算虚拟化之CPU(上):如何复用集团的人力资源?

上一节,我们讲了一下虚拟化的基本原理,以及qemu、kvm之间的关系。这一节,我们就来看一下,用户态的qemu和内核态的kvm如何一起协作,来创建虚拟机,实现CPU和内存虚拟化。 这里是上一节我们讲的qemu启动时候的命令。 12qemu-syste...

趣谈Linux操作系统