怎么学习云服务器构建及虚拟化技术

这两天云服务器的实验留的还挺多,但是自己在ubuntu上敲指令完成部署后丝毫没有成就感,并且不晓得有什么用,所以我就想思考下这门课到底是教会我什么,在知乎看到一句话,叫做不应该把自己当做学生,而是应该把自己当做一个开发者,你做出来的成果远远比你只会说我会学习什么更有价值。

1.云服务器是什么

云服务器是说当你需要计算服务时,给你,不需要时,就直接释放,相比直接物理机上的服务器来说,在云上的,更加灵活。

2.虚拟化技术是什么

虚拟化技术讲大白话就是现实中你要一台电脑那就是你能看得着,摸得住的,但是虚拟化就可以帮你利用一些计算机技术把物理计算机中的比如CPU,内存,这种实体在计算机中虚构出来一个虚拟计算机来使用。

3.KVM是什么

KVM是一门技术!一门基于linux内核的虚拟化技术!

作用是使内核中的内存管理,进程管理等直接管理虚拟机

我们这是说的KVM是指KVM虚拟机,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。

注意:还有一个KVM是多计算机切换器,是计算机管理设备,通过它可实现用一套键盘、鼠标、显示器来控制多台计算机,可以对不同地点的电脑服务器直接通过一个计算机来控制,和我们在这里说的KVM在linux当做模块用不太一样,注意!

KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程

序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机

KVM在2007年2月被收录进Linux 2.6.20版本的内核

虚拟化分为两种类型:

    1:Hypervisor直接运行在硬件上   (例如:kvm)

    2:Hypervisor运行在OS上    (例如:vmware)

kvm技术比较奇葩只要当前系统(Linux)装载了KVM模块, Linux内核就直接变成Hypervisor, Hypervisor可以直接在系统上运行相关

的管理命令来创建、删除…KVM虚拟机,每个创建出来的虚拟机又有自己的用户空间和内核空间

注意在原有系统上执行各种命令是不受kvm模块管理的

那虚拟机上的cpu是如何虚拟出来的?

就是由原有的内核中的一个线程,通过kvm模块辅助完成,比如一个虚拟机的一颗cpu运行就是通过原有内核中的一个线程通过kvm模

块辅助在内核中完成,两颗cpu就是用两个线程,从原有内核的角度来看虚拟cpu就是一个线程

如果kvm虚拟机的用户空间进行了i/o调用,是怎么个过程?(我们知道i/o调用一般都是特权指令)

首先用户空间,会发起系统调用,将请求转交给自己的内核空间,内核空间再转交给原有的用户空间的qemu应用程序所模拟出来的各

种硬件设备,再由qemu转交给原有内核空间完成真正的i/o系统调用,如果非i/o类的特权指令则直接交给硬件cpu处理,这一特性使得

kvm技术性能的损失和真正的物理机相比小于10%

kvm的两类组件:

    /dev/kvm:工作于hypervisor,在用户空间可通过ioctl(),系统调用来完成VM创建、启动等管理功能;它是一个字符设备

    功能:创建VM、为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、运行VCPU等等

    qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备

可以理解成管理许多台计算机,比如正常你管理不同个物理服务器需要一个个来,但是KVM相当于你在一台机子上就可以管理所有的服务器,不管地域空间的限制。

4.qemu是什么

qemu是个虚拟操作系统模拟器,说白了也是个软件,就是来模仿计算机的物理部件的,可以让内存虚拟化,处理器虚拟化等等

5.kvm和qemu的关系

知乎:河马

KVM模块的职责就是打开并初始化VMX功能,提供相应的接口以支持虚拟机的运行。

KVM只模拟CPU和内存,因此一个客户机(你在虚拟机里建的一个ubuntu或者centos之类的)操作系统可以在宿主机(你的物理机)上跑起来,但是你看不到它,无法和它沟通。于是,有人修改了QEMU代码,把他模拟CPU、内存的代码换成KVM,而网卡、显示器等留着,因此QEMU+KVM就成了一个完整的虚拟化平台。

KVM只是内核模块,用户并没法直接跟内核模块交互,需要借助用户空间的管理工具,而这个工具就是QEMU。KVM和QEMU相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备。对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如RedHat开发的libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择。

所以简单直接的理解就是:QEMU是个计算机模拟器,而KVM为计算机的模拟提供加速功能。



以后学新知识应该这样子学
1.它是什么?是技术?是软件?是方法?
2.它有什么用?它实现了后能做啥?
3.怎么使用它,怎么会用它?
这样学习,有好奇心去学习是蛮棒的!

猜你喜欢

转载自www.cnblogs.com/zhefublog/p/12554083.html
今日推荐