Linux之虚拟化

一:什么是虚拟化

虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。--百度百科

总结:将底层计算机资源.虚拟成互相隔离的计算机资源.每个资源都要有计算机的五大部件的所有设备.

二:模拟和虚拟话的区别.

虚拟化的CPU只做相应的分配管理.CPU的架构和虚拟机的CPU保持一致. 模拟的CPU可以是任意类型.

三:虚拟化分类

1)半虚拟化:虚拟机明确知道自己的I/O是虚拟出来的.

半虚拟化产品:XEN KVM

虚拟机直接跑在硬件上.架构和虚拟硬件保持一致.也被称为类型一虚拟化

2)OS级别虚拟化:虚拟机跑在操作系统上跟操作系统共享同一内核.

OS虚拟化产品:Open vz , LXC

3)完全虚拟化:虚拟机不知道自己工作在虚拟环境中

4)库虚拟化:可以在Linux上安装windows程序

wine

5)应用程序虚拟化:JVM

四:计算机各部件虚拟化

1)CPU的虚拟化

BT技术加速性能:二进制翻译技术,使虚拟CPU通过二进制加速技术直接运行在物理CPU上.

HVM:硬件辅助加速技术,使虚拟机的cpu直接工作在0环上.物理的0环成为-1环.调用硬件驱动设备还是需要通过-1环.

在半虚拟化中调用CPU时直接通过hypercall

2)内存虚拟化

线性空间即为虚拟出来的内存空间.线性空间与物理空间之间的映射关系是通过CPU中的MMU来控制管理的.为了提高映射关系的命中率.出现了TLB缓存,在半虚拟化中TLB缓存会出现同种名称对应不同的结果现象.所以每次切换虚拟机都要清空TLB.为了解决这些问题,提出了了TLB,MMU的虚拟化.

MMU的虚拟化实现了GVA-HPA略去了GPA

TLB的虚拟化taggedTLB:给各个虚拟机的GVA-HPA映射打上标签.

3)I/O设备的虚拟化

模拟(软件):模拟和完全虚拟没有多大区别.

半虚拟化:IO fronted--IO backend

透传技术IO :直接分块物理硬盘给虚拟机

显示设备:帧缓冲机制

键盘鼠标:通过焦点捕捉.

五:虚拟化网络

桥接:把host主机网卡当作桥.虚拟机的网卡连接到这个桥上.与外界进行通信.

仅主机:在仅主机模式下,虚拟主机是不能与外部主机通信的,只能让个虚拟主机之间,虚拟主机与宿主机之间通信(用纯软件的方式创建一个虚拟交换机,个虚拟机连接到虚拟交换机上).

NAT转发:虚拟机通过NAT 转换把源地址转换成宿主机的IP地址与外部主机进行通信

TUN:模拟了网络层设备.操作在第三层.

TAP:等同于一个以太网设备.工作在第二层.

时间: 2024-08-25 23:09:31

Linux之虚拟化的相关文章

【 Linux 网络虚拟化 】Netns

netns 可以创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables等.总之,与网络有关的组件都是独立的. 创建网络空间: # ip netns add ns1 查看网络空间: # ip netns list 删除网络空间: # ip netns del ns1 进入网络空间执行命令: # ip netns exec ns1 `command` 实例一:    用netns连接两个隔离环境中的虚拟机,如图: 在虚拟化中有两个虚拟机网络隔离环

Linux桌面虚拟化技术KVM介绍及其安装

KVM的简介: KVM,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使 用Linux自身的调度器迚行管理,所以相对亍Xen,其核心源码很少.KVM目前已成为学术界的主流VMM 之一.KVM的虚拟化需要硬件支持(如Intel VT技术戒者 AMD V技术).是基亍硬件的完全虚拟化.而 Xen 早期则是基亍软件模拟的 Para-Virtualization. Linux 内核的虚拟机(Kernel-based Virtual Machine).是

图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN

Linux的网卡驱动中内含了很多"虚拟网卡".早先的文章曾经详细分析过tun,ifb等虚拟网卡,类似的思路,在虚拟化大行其道的趋势下,Linux源码树中不断增加对"网络虚拟化"的支持,不光是为了支持"虚拟机"技术,更多的是给了用户和程序员更多的选择.       这些对网络虚拟化的支持技术包括任何重量级的虚拟化技术,比较重的比如对虚拟机技术的支持,轻量级的则是net namespace技术.近期的工作基于net namespace技术,关于这个技

1.Linux 桌面虚拟化技术 KVM

1.1 虚拟化产品对比介绍1.2 安装 KVM 虚拟机1.3 实验 1:配置 KVM 网络桥接功能1.4 实验 2:使用 KVM 安装虚拟机1.5 实验 3:解决 centos6 下 shutdown 关丌了 KVM 虚拟机的问题 实验环境: centos7.4 镜像: http://mirrors.163.com/centos/7.4.1708/isos/x86_64/ 注:安装系统时,把图形界面和开发工具安装好 1.1 虚拟化产品对比介绍 1.1.1 虚拟化产品对比介绍vmwareKVM r

Linux容器虚拟化LXC的使用

Oops: 万一不能访问,请自带梯子和火星文翻译器 官方网站: https://linuxcontainers.org/ Github: https://github.com/lxc/lxc 火星文简介: What's LXC? LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users ea

网络虚拟化技术(一): Linux网络虚拟化

创建虚拟网络环境 使用命令 $ ip netns add net0 可以创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables,ebtables,等等.总之,与网络有关的组件都是独立的. ip命令需要root权限的,但是由于本文大量使用ip命令,于是笔者给ip命令添加了capability,使普通用户也能使用ip命令 使用命令 $ ip netns list net0 可以看到我们刚才创建的网络环境 进入虚拟网络环境 使用命令 $ ip ne

Linux Kvm虚拟化部署(Centos)

一:搭建KVM虚拟化平台1.创建centos的虚拟机的时候进行编辑,处理器开启虚拟化功能2.安装kvm插件这是在安装系统的时候直接安装kvm组件,当然也可以通过yum命令或者其他的方式进行安装--YUM命令安装:安装插件:yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install 安装图形化界面:yum install -y virt-manager systemctl enable libvirtd &&am

Linux网卡虚拟化

一张物理网卡虚拟化成两虚拟网卡(使用Vlan方法切分)使用操作步骤: 前期规划准备: eth1网卡正常使用 eth1所在交换机端口配置trunk allow vlan5 和public所需的vlanID(假如为2) 举例:假如eth1制成两张虚拟网卡,一张作为存储网络网卡为eth1.5,另外一张外部网络网卡为eth1.2 1. 加载802.1q模块 [[email protected] net]# modprobe 8021q     ---加载8021q [[email protected]

Linux -- 虚拟化与云计算介绍

一.虚拟化与云计算 1. 云计算概念 云计算是一个本世纪初才方兴未艾的热门名词,其本身是由Google前首席执行官埃里克·施密特(Eric Schmidt)在2006年8月9日的搜索引擎大会(SES San Jose 2006)上首次提出的.在此之后,云计算变得炙手可热,很多公司趁势宣传,号称自己是先进的云计算公司.加之业界也一直没有对云计算形成一个统一的定义,各种各样的云变得"乱花渐欲迷人眼".抛开形形***的宣传,本书试图为读者一步步理清云计算的真实面目. 在现有的被大家熟知并使用