虚拟化 订阅
Intel VT即Intel公司的Virtualization Technology虚拟化技术。为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足,Intel在它的硬件产品上引入了Intel VT(Virtualization Technology,虚拟化技术)。2005年8月,Intel首次公布了针对硬件辅助虚拟化的Vanderpool(Intel VT虚拟化技术的前身)技术细节。Vanderpool技术通过增加新的指令,使得Intel处理器支持硬件虚拟化。2005年11月,Intel宣布,虚拟化技术Vanderpool改成VT,被Acer和联想应用在其基于Intel Pentium 4的PC上。Intel VT可以让一个CPU工作起来像多个CPU在并行运行,从而使得在一部电脑内同时运行多个操作系统成为可能。这种VT技术并不是一个新鲜事物,市面上已经有一些软件可以达到虚拟多系统的目的,比如VMware workstation、Virtual PC等,使用这种技术就可以单CPU模拟多CPU并行,可以实现单机同时运行多操作系统。 展开全文
Intel VT即Intel公司的Virtualization Technology虚拟化技术。为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足,Intel在它的硬件产品上引入了Intel VT(Virtualization Technology,虚拟化技术)。2005年8月,Intel首次公布了针对硬件辅助虚拟化的Vanderpool(Intel VT虚拟化技术的前身)技术细节。Vanderpool技术通过增加新的指令,使得Intel处理器支持硬件虚拟化。2005年11月,Intel宣布,虚拟化技术Vanderpool改成VT,被Acer和联想应用在其基于Intel Pentium 4的PC上。Intel VT可以让一个CPU工作起来像多个CPU在并行运行,从而使得在一部电脑内同时运行多个操作系统成为可能。这种VT技术并不是一个新鲜事物,市面上已经有一些软件可以达到虚拟多系统的目的,比如VMware workstation、Virtual PC等,使用这种技术就可以单CPU模拟多CPU并行,可以实现单机同时运行多操作系统。
信息
领    域
信息科学
本    质
Intel公司的虚拟化技术
特    点
让一个CPU工作起来像多个CPU在并行运行
中文名
Intel的虚拟化技术
拥有者
Intel公司
外文名
IntelVT
Intel VT简介
VT,就是虚拟化技术(Virtualization Technology)的缩写。Intel VT就是指Intel的虚拟化技术。这种技术简单来说就是让可以让一个CPU工作起来就像多个CPU并行运行,从而使得在一台电脑内可以同时运行多个操作系统。只有部份Intel 的CPU才支持这种技术。
收起全文
精华内容
下载资源
问答
  • 虚拟化

    千次阅读 2019-05-15 14:25:12
    在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念。例如对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用...

     

    在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念。例如对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用程序的代码和数据可能被分隔成多个碎片页或段,甚至被交换到磁盘、闪存等外部存储器上,即使物理内存不足,应用程序也能顺利执行。

    1、虚拟化技术的分类

    1.平台虚拟化

    平台虚拟化(Platform Virtualization)是针对计算机和操作系统的虚拟化。我们通常所说的虚拟化主要是指平台虚拟化技术。

    虚拟机中运行的操作系统称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统称为主机操作系统(Host OS)。

    (1)全虚拟化 全虚拟化(Full Virtualization)是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其他系统软件完全不作任何修改就可以在虚拟机中运行。操作系统与真实硬件之间的交互可以看成是通过一个预先规定的硬件接口进行的。全虚拟化 VMM(Virtual Machine Monitor)以完整模拟硬件的方式提供全部接 。

    (2)超虚拟化 超虚拟化(Paravirtualization)是一种修改 Guest OS 部分访问特权状态的代码以便直接与 VMM 交互的技术。

    (3)硬件辅助虚拟化 硬件辅助虚拟化(Hardware-Assisted Virtualization)是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。

    (4)部分虚拟化 部分虚拟化(Partial Virtualization)中, VMM 只模拟部分底层硬件,因此客户机操作系统不作修改是无法在虚拟机中运行的,其他程序可能也需要进行修改。

    (5)操作系统级虚拟化 在传统操作系统中,所有用户的进程本质上是在同一个操作系统的实例中运行,因此内核或应用程序的缺陷可能影响到其他进程。

    资源虚拟化(Resource Virtualization),针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。

    应用程序虚拟化(Application Virtualization),包括仿真、模拟、解释技术等。

    实现虚拟化时常常使用的一些模式和技术

    1.单一资源多个逻辑表示

    这种模式是虚拟化最广泛使用的模式之一。它只包含一个物理资源,但是它向消费者呈现的逻辑表示却仿佛它包含多个资源一样。

    2.多个资源单一逻辑表示

    消费者只与一个系统(头节点)进行交互,而集群事实上可以包含很多的处理器或节点。实际上,这就是从 IT 技术设施的角度看到的网格可以实现的功能。

    3.在多个资源之间提供单一逻辑表示

    这种模式包括一个以多个可用资源之一的形式表示的虚拟资源。虚拟资源会根据指定的条件来选择一个物理资源实现。

    4.单个资源单一逻辑表示 这是用来表示单个资源的一种简单模式,就仿佛它是别的什么资源一样。

    5.复合或分层虚拟 这种模式是前面介绍的一种或多种模式的组合,它使用物理资源来提供丰富的功能集。

    展开全文
  • Linux 桌面虚拟化技术 KVM

    万次阅读 2021-08-11 07:35:49
    Linux 桌面虚拟化技术 KVM

    • KVM:是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。
    • VM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

    • 官方网址:http://www.linux-kvm.org/page/Main_Page

    • KVM: 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到Linux 内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。
    • 一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)
    • XEN :需要升级内核,只能支持和物理机系统一样的操作系统。 xen 虚拟上,可以运行windows ?
    • KVM: 支持 linux 以外的其它系统。比如:windows
      QEMU:是一套由 Fabrice Bellard 所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛。QEMU 具有高速度和跨平台的特性,QEMU 能模拟至接近真实电脑的速度。
      QEMU 能模拟整个电脑系统,包括中央处理器及其他周边设备。
      QEMU 和 vmware 一样,都是仿真虚拟化技术,效率比较低。QEMU 也是一种虚拟机技术。

    • 实验环境:
    • VM 虚拟机 CentOS 7.6   SElinux、Firewall以及iptables 均为关闭状态

    • 查看 CPU 是否支持虚拟化
    • egrep "vmx|svm" /proc/cpuinfo
    • intel: vmx
    • AMD: svm
    • 如果显示为空,则表示不支持虚拟化,需要开启 主板 BIOS 虚拟化支持

    • 安装 KVM 模块、管理工具和 libvirt,命令行安装:
    • yum install qemu-kvm libvirt libguestfs-tools virt-install libvirt-python librbd1 -y
    • 注:使用系统镜像,先配置好 yum 本地源

      qemu-kvm : kvm 主程序, KVM 虚拟化模块
      virt-manager: KVM 图形化管理工具,这里不安装不使用
      libvirt: 虚拟化服务
      libguestfs-tools : 虚拟机的系统管理工具
      virt-install : 安装虚拟机的实用工具 。比如 virt-clone 克隆工具就是这个包安装的
      libvirt-python : python 调用 libvirt 虚拟化服务的 api 接口库文件
      librbd1:是一个属于librados的用户态接口库
    • 安装完 KVM 后启动服务
    • systemctl enable libvirtd --now
    • 确定正确加载 kvm 模块
    • lsmod |grep kvm
      kvm_intel             188740  0 
      kvm                   637515  1 kvm_intel
      irqbypass              13503  1 kvm 

    • 如果启动报错,查看 系统日志 /var/log/messages  排查

    • 解决办法:安装最新版本的 librbd1

    • 配置 KVM 网络桥接功能

    • 网桥介绍: 经常说的 Bridge 设备其实就是网桥设备,也就相当于现在的二层交换机,用于连接同一网段内的所有机器,目的就是将第一块网卡 ens33 添加到 br0,此时 br0 就成为了所谓的交换机设备,物理机的 ens33 也是连接在上面的。
    • 添加桥接设备 br0: 相当于一个二层交换机
    • 使用 virsh 命令配置网桥
    • 使用 virsh 命令配置网桥很方便,但 br0 上不会自动配置 DNS,如果需要虚拟机上网需要自己添加DNS,过程如下:
      # yum install libvirt-client -y       #安装包括 virsh 命令的 rpm 包
      # virsh iface-bridge ens33 br0 --no-stp
       注:iface-bridge 网卡接口名 新建网桥名 不启用 stp 生成树协议
      # echo 'DNS1=8.8.8.8' >> /etc/sysconfig/network-scripts/ifcfg-br0
      # systemctl restart network.service 

    •  重启验证 

    • 扩展:virbr0 概述
      virbr0 是一种虚拟网络接口,这是由于安装和启用了 libvirtd 服务后会自动生成一个桥设备名字为 virbr0。
      libvirtd 这个服务,在安装系统时,已经帮你安装好并开机启动了。所以尽管我们没有安装 KVM,一样可以能看到这个 virbr0 这个桥设备。
    •  libvirtd 在服务器上生成一个 virtual network switch (virbr0),kvm 中所有的虚拟机(guests操作系统)通过这个 virbr0 连起来。默认情况下 KVM 中 virbr0 使用的是 NAT 网络模式。所以这种情况下 KVM 中的虚拟机需要通过物理机的网卡才能访问外部。

    • 创建KVM 虚拟机,准备一个硬盘或者分区,用于存放安装好的 Linux 操作系统:
    • mkfs.xfs /dev/sdc
    • mount /dev/sdc /var/lib/libvirt/images/

    • 写入 fstab 实现开机挂载

    • virt-install 命令常用选项:
      -n NAME, --name=NAME 指定 Guest 名字
      -r MEMORY, --ram=MEMORY 指定内存大小
      --vcpus=VCPUS 指定虚拟机的 CPU 数量
      --disk 指定虚拟机磁盘存储文件的路径 , size=5 指定虚拟磁盘的大小,单位是 G;
      例:--disk path=/var/lib/libvirt/images/centos-76.img,size=5
      --accelerate KVM 或 KQEMU 内核加速器,这个选项默认是添加的。另外,如果系统 KVM 和KQEMU 加速器都支持,优先使用 KVM 加速器。
      -c CDROM, --cdrom=CDROM 指定用于全虚拟化 Guest 的虚拟光驱, --cdrom=后指定ISO 或 CDROM 镜像。
      --network #指定虚拟机的网卡模式。如:--network bridge=br0 
      -x EXTRA, --extra-args=EXTRA 用来给加载的 kernel 和 initrd 提供额外的内核命令行参数。比如无人值守安装系统 
    • 准备工作
    • 基于 apache 服务器搭建本地 yum 源镜像
      # yum install httpd -y 
      # systemctl enable httpd --now
      # mkdir /var/www/html/centos7/ 
    • 准备系统镜像:centos7.6 (不建议使用 MINI 版)
      # mount /dev/cdrom /var/www/html/centos7/
    • # iptables -F #关闭防火墙

    • 创建 ks.cfg 自动应答文件

    • cat /var/www/html/ks.cfg
      firewall --disabled
      install
      url --url="http://192.168.2.234/centos7"
      rootpw --iscrypted $1$root$j0bp.KLPyr.u9kgQ428D10
      auth  --useshadow  --passalgo=sha512
      text
      firstboot --disable
      keyboard us
      lang en_US.UTF-8
      selinux --disabled
      logging --level=info
      reboot
      timezone  Asia/Shanghai
      network  --bootproto=dhcp --device=eth0 --onboot=on
      bootloader --location=mbr
      zerombr
      clearpart --all --initlabel 
      part /boot --fstype="xfs" --size=500
      #part swap --fstype="swap" --size=1000
      #part / --fstype="ext4" --size=1 --grow

      part pv.156 --fstype="lvmpv" --size=1 --grow
      volgroup centos --pesize=4096 pv.156
      logvol swap  --fstype="swap" --size=1000 --name=swap --vgname=centos
      logvol /  --fstype="xfs" --vgname=centos --size=1 --grow

      %packages
      #CentOS 6.X 这里要使用 @base
      @^minimal
      @core
      %end

    • 创建 centos-7 虚拟机:

    • virt-install --name=centos7 --memory=4096,maxmemory=4096 --vcpus=1,maxvcpus=1 --os-type=linux --os-variant=rhel7 --location=http://192.168.2.234/centos7/ --network bridge=br0 -x "ks=http://192.168.2.234/ks.cfg" --disk path=/var/lib/libvirt/images/centos7.qcow2,size=10 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"

    • KVM 虚拟机常用命令
      # virsh list #列出在运行的虚拟机
      # virsh start centos7 #启动 centos7虚拟机
      # virsh shutdown centos7 #关闭 centos7 虚拟机
      # virsh autostart centos7 #设置 centos7.虚拟机为物理机开机后,自动启动
    • 重启验证

    •  shutdown 需要点时间

    • 设为开机启动 kvm 中 centos7 虚拟机,但是 reboot 物理机后,没有启动。
      解决:
      # chkconfig --list libvirtd #开机启动了
      # libvirtd 0:off 1:off 2:off 3:on4:on5:on6:off
      # vim /etc/fstab #记得设置开机自动挂载 sdc,不然后开机启动不了虚拟机

    • KVM 虚拟机克隆和快照

    • 克隆 kvm 虚拟机
      克隆前,centos7.0 需要提前关机。
      语法:virt-clone -o 原虚拟机 -n 新虚拟机 -f 新虚拟机镜像存放路径
      选项:-o old -n new 
      虚拟机镜像: 就是整个虚拟机文件。 
    • virt-clone -o centos7 -n centos7-1 -f /var/lib/libvirt/images/centos7-1.qcow2

    • KVM 虚拟机组成
      一台 KVM 虚拟机由两部分组成:虚拟机配置文件和镜像 img
      查看虚拟机的配置文件:
    • ll /etc/libvirt/qemu
      总用量 8
      drwxr-xr-x 2 root root   25 8月  11 10:50 autostart
      -rw------- 1 root root 3340 8月  13 12:34 centos7-1.xml
      -rw------- 1 root root 3334 8月  11 10:31 centos7.xml
      drwx------ 3 root root   42 8月  11 07:59 networks

    • vim /etc/libvirt/qemu/centos7-1.xml 

    • 调整虚拟机配置,必须关闭该虚拟机
    • viresh shutdown centos7-1
    • 重新加载配置文件
    • virsh define --file /etc/libvirt/qemu/centos7-1.xml
      定义域 centos7-1(从 /etc/libvirt/qemu/centos7-1.xml)

    • 发现内存已经调整为 1G 

    • 测试链接
    • 修改 IP  HOSTNAME

    •  开启之前关闭的虚拟机
    • virsh start centos7

    •  原虚拟机和克隆完的虚拟机配置文件的区别:

    •  vimdiff /etc/libvirt/qemu/centos7.xml /etc/libvirt/qemu/centos7-1.xml

    • 注:这里可以看出两者的 MAC 地址是不一样的。 所以对克隆或复制出来的虚拟机启动后,要修改网卡配置文件的 MAC 地址,因为克隆出来的虚拟机的真实 MAC 地址和操作系统中的 ifcfg-eth0 中的MAC 地址不一样。
    • 虚拟机常用镜像格式对比
    • 目前主要虚拟机的镜像格式:raw,cow, qcow,qcow2,vmdk 。
      raw 格式镜像
      raw:老牌的镜像格式,用一个字来说就是裸,也就是赤裸裸,你随便 dd 一个 file 就模拟了一个raw 格式的镜像。由于裸的彻底,性能上来说的话还是不错的。centos6 上 KVM 和 XEN 默认的格式还是这个格式。centos7 以上默认是 qcow2 。
      裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h 看到的大小就是使用大小)。
      例: qcow2 转为 vmdk 方法是: qcow2 转为 raw ,然后把 raw 转为 vmdk 。也可以直接 qcow2 转为 vmdk
      raw 格式的缺点:不支持 snapshot 快照。
    • cow、qcow、qcow2 格式
      1、cow 格式:还没有成熟,就被放弃了。后来被 qcow 格式所取代。
      2、qcow 格式:刚刚出现的时候有比较好的特性,但其性能和 raw 格式对比还是有很大的差距,目前已经被新版本的 qcow2 取代。
      3、qcow2 格式:
      现在比较主流的一种虚拟化镜像格式,经过优化,目前 qcow2 的性能上接近 raw 裸格式的性能qcow2 格式支持 snapshot,可以在镜像上做 N 多个快照,具有以下优点:
      更小的存储空间
      支持创建 image 镜像
      支持多个 snapshot,对历史 snapshot 进行管理
      支持 zlib 的磁盘压缩
      支持 AES 的加密
      4、 vmdk 格式:
      VMware 的格式,整体性能最好,因为原本 VMware 就是做虚拟化起家。从性能和功能上来说,vmdk 应该算最出色的,由于 vmdk 结合了 VMware 的很多能力,目前来看,KVM 和 XEN 使用这种格式的情况不是太多。但就 VMware 的企业级虚拟化 Esxi 来看,它的稳定性和各方面的能力都很好 


    • KVM 快照:
      快照的作用:1、热备 2、灾难恢复 3、回滚到历中的某个状态

    • 注:快照是存放在 kvm 的磁盘镜像中。
    • kvm 快照,分两种:
      方法 1:使用 lvm 快照,如果分区是 lvm,可以利用 lvm 进行 kvm 的快照备份
      方法 2:使用 qcow2 格式的镜像创建快照。
    • 创建 KVM 快照
    • 要使用快照功能,磁盘格式必须为 qcow2。
    • qemu-img info /var/lib/libvirt/images/centos7-1.qcow2

    • 语法:virsh snapshot-create-as KVM 虚拟机名 快照名
    • virsh snapshot-create-as centos7-1 系统初始
    • 查看快照文件大小
    • ll -h /var/lib/libvirt/qemu/snapshot/centos7-1/

    • 查看当前 kvm 中的虚拟机,是基于哪个快照来运行
    • virsh snapshot-current centos7-1 |head
    • 查看快照占用的大小:
    • emu-img info /var/lib/libvirt/images/centos7-1.qcow2 
      image: /var/lib/libvirt/images/centos7-1.qcow2
      file format: qcow2
      virtual size: 10G (10737418240 bytes)
      disk size: 3.3G
      cluster_size: 65536
      Snapshot list:
      ID        TAG                 VM SIZE                DATE       VM CLOCK
      1         系统初始           226M 2021-08-13 13:17:37   00:15:30.624
      Format specific information:
          compat: 1.1
          lazy refcounts: true

    • 恢复虚拟机快照必须关闭虚拟机
    • 安装一些软件后创建快照

    • 关闭虚拟机后执行恢复快照
    • virsh snapshot-revert 虚拟机名称 快照名称
    • virsh shutdown centos7-1 
      域 centos7-1 被关闭

      virsh domstate centos7-1 
      关闭

      virsh snapshot-revert centos7-1 系统初始

      virsh snapshot-current centos7-1 |head

    • 删除快照
    • virsh snapshot-delete centos7-1 vim_lrzsz 

    • virsh 常用命令
      # virsh list #查看已启动的虚拟机列表
      # virsh list --all #查看所有虚拟机列表
      # virsh start centos7 #启动名称为 centos7 虚拟机
      # virsh shutdown centos7 #关闭 名称为 centos7 虚拟机
      # virsh dumpxml centos7 > /opt/centos7.xml #导出centos7 虚拟机配置文件
      # virsh undefine centos7 #取消域 centos7.0 的定义。
      注:virsh undefine centos7.0 会删除虚拟机 centos7.0 的配置文件,虚拟机 centos7.0 的磁盘
      镜像文件还在。另外,发现“虚拟系统管理器”中管理的 kvm 虚拟机,没有 centos7.0

    •  不能直接删除有快照的虚拟机,要先删除快照

    •  列表、配置文件已经删除,但是磁盘文件依然存在

    • 把虚拟机重新加入到 virt-manager 目录列表。
      语法:virsh define 虚拟机.xml 的绝对路径
    • # virsh destroy centos7 #强制关机,强制关闭 虚拟机。 当使用 virsh shutdown 正常关机,不行时,用这个。
      # virsh autostart centos7#设置开机自启动 centos7.0
      # virsh autostart --disable centos7.0 #取消虚拟机随宿主机开机自启
      # virsh suspend centos7.0 #挂起虚拟机
      # virsh resume centos7.0 #恢复虚拟机

    • qcow2 格式转换成 raw

    • qemu-img convert -f qcow2 -O raw /var/lib/libvirt/images/centos7-1.qcow2 /var/lib/libvirt/images/centos7-1.raw
    • 查看转换后的格式,已经转换成了 raw 
    • qemu-img info /var/lib/libvirt/images/centos7-1.raw
      image: /var/lib/libvirt/images/centos7-1.raw
      file format: raw
      virtual size: 10G (10737418240 bytes)
      disk size: 1.2G

    • 修改虚拟机配置文件-使用新的磁盘格式启动虚拟机 
    • virsh edit centos7-1
    • #注意 vim 直接编辑配置文件/etc/libvirt/qemu/xuegod63-kvm2.xml 不生效
      修改后,需要重启服务

    • 其他镜像格式转换方法
      例 1:将 vmdk 转换为 qcow2
      qemu-img convert -f vmdk -O qcow2 source-name.vmdk target-name.qcow2 
      例 2:将 qcow2 转换为 vmdk
      ]# cd /var/lib/libvirt/images/
      ]# qemu-img convert -f qcow2 -O vmdk centos7.img centos7.vmdk

    • 使用 X11 图形转发

    • 需要安装 virt-manager 和 tigervnc
    • yum -y install virt-manager tigervnc
    • 注:5900为 tigervnc默认监听端口,使用的不是真正的虚拟机图形界面,虚拟机并没有安装图形界面

    • kvm 使用的系统字体,对中文支持不是很友好,需要单独准备字体,这里使用win系统的微软雅黑,将字体文件导入到 /usr/share/fonts/dejavu/ 目录下,然后重启一下

    • 重启之后检查xshell设置X11 转发,使用 virt-manager 命令启动
    • 注意这里调用的是 Xmanager - Passive 程序 

    • 图形界面点点鼠标即可 

    展开全文
  • 但使用VMware vCenter Converter Standalone Client虚拟化之后,可能是硬件更改,金蝶软件变成演示版。(现在金蝶软件仅仅是用来查询历史数据) 请问有没有办法在虚拟过程中,将硬件全克隆过去?或者在虚拟机中,...
  • VMware虚拟化- 虚拟化与VMware的基础介绍

    万次阅读 多人点赞 2019-01-15 11:57:04
    1 什么是虚拟化 1.1 虚拟化概念 通俗的理解:如果你问“什么是虚拟化”,我想大部分人的回答都会是“就是在一个操作系统中运行另一个操作系统”。虽然这个答案也没错,但这并不是真正“虚拟化”的意义,只能说是...

    1 什么是虚拟化

    1.1 虚拟化概念

           通俗的理解:如果你问“什么是虚拟化”,我想大部分人的回答都会是“就是在一个操作系统中运行另一个操作系统”。虽然这个答案也没错,但这并不是真正“虚拟化”的意义,只能说是虚拟化在硬件和操作系统之间的一个实践。

          事实上,这些不同的层级之间与当前的架构是紧紧依赖的。没有软件的话,服务就无法提供给用户;没有Framework,软件就无法运行;没有操作系统的话,就无法安装各式各样的软件和 Framework;没有硬件当然就什么都没有了。为了避免层次之间的紧密依赖性,在 1960 年代,就有人引入虚拟化的概念,做法很简单,就是将上一层对下一层的依赖撤销;换句话说,就是将本层的依赖从底层中抽离出来。因此我们定义“虚拟化”的正规说法,可以为“虚拟化,就是不断抽离依赖的过程”。注:此处所讨论的虚拟化均指服务器虚拟化。

    1.2 虚拟化的分类

    1)根据虚拟化架构分为:

           寄居架构:就是首先需要在硬件上安装操作系统,然后再操作系统上安装虚拟化工具,如 VMware Workstation、微软 Windows Virtual PC,然后利用这些平台安装客户机

           原生架构:就是直接在硬件上安装虚拟化管理工具,如 VMware vSphere 、 CitrixXenServer/XenDesktop 。

    2)根据虚拟化的程度分为:

           完全虚拟化(full virtualization),指的是虚拟机不知道自己是虚拟机,也就是通过查看自己的硬件设备信息发现与物理机的设备信息

    展开全文
  • 我们知道,虚拟化技术一共有全虚拟化(使用二进制翻译)、半虚拟化(操作系统辅助)和硬件辅助虚拟化,那这三者各有什么特点和优缺点呢? 传统硬件上直接安装OS的时候,OS工作在Ring0,应用软件工作在Ring3 ...

    目前虚拟化技术有软件模拟、全虚拟化(使用二进制翻译)、半虚拟化(操作系统辅助)、硬件辅助虚拟化和容器虚拟化这几种。
    (1)软件模拟
    软件模拟是通过软件完全模拟cpu、芯片组、磁盘、网卡等计算机硬件:
    在这里插入图片描述
    因为是软件模拟,所以理论上可以模拟任何硬件,但是非常低效,一般只用于研究测试的场景,典型的有QEMU。
    (2)全虚拟化
    x86平台指令集分为4个特权模式:Ring0 、Ring1、Ring2、Ring3、OS工作在Ring0级别,应用软件工作在Ring3级别,驱动程序工作在Ring1和Ring2。
    在这里插入图片描述
    如何将虚拟机越级的指令使用进行隔离,1998年VMware首次找到了解决办法,通过虚拟化引擎,捕获虚拟机的指令,并进行处理,即全虚拟化方案。
    在全虚拟化的情况下,VMM工作在Ring 0 ,Guest OS工作在Ring 1 ,应用程序工作在Ring 3,可是这时候Guest OS是不知道自己工作在虚拟机里的,认为自己还是工作在Ring 0 ,所以它还是按照Ring 0级别产特权生指令,Guest OS产生的每一条指令都会被VMM截取,并翻译成宿主机平台的指令,然后交给实际的物理平台执行,由于每一条指令都需要这么翻译一下,所以这种虚拟化性能比较差。
    在这里插入图片描述
    (3)半虚拟化**
    半虚拟化是对Guest OS做相应修改,以便和VMM协同运作。在硬件辅助虚拟化兴起之前,半虚拟化性能胜过全虚拟化。在半虚拟化情况下,Guest OS知道自己并不是直接运行在硬件资源上,而是运行在虚拟化环境里,工作在非Ring 0,那么它原先在物理机上执行的一些特权指令,就会修改成其他方式(超级调用),这种方式是可以和VMM约定好的,半虚拟化不需要VMM层进行二进制翻译,所以性能较好,但是实现比较麻烦(要修改OS内核代码),典型的半虚拟化技术有xen。
    在这里插入图片描述

    (4)硬件辅助虚拟化**
    2005年,Intel推出了硬件辅助虚拟化方案,对CPU指令进行改造,即VT-x,VT-x提供了两种操作模式:VMX root operation和VMX non-root operation,VMM运行在 VMX root operation,虚拟机运行在VMX non-root operation。在绝大多数情况下,客户机在此模式下运行与原生系统在非虚拟化环境中运行性能一样,不需要像全虚拟化那样每条指令都要先翻译再执行;在少数必要的时候,某些客户机指令的运行才需要被VMM截获并做相应处理。这种方案因为是基于硬件的,所以效率非常高。
    在这里插入图片描述
    现在不仅CPU指令有硬件虚拟化方案,I/O通信也有硬件解决方案,称为VT-d;网络通信的称为VT-c。
    (5)容器虚拟化
    容器虚拟化是基于CGroups、Namespace等技术将进程进行隔离,每个进程就像一台独立的虚拟机,拥有自己被隔离出来的资源,也有自己的根目录、独立的进程编号、被隔离的内存空间。基于容器的虚拟化可以实现在单一内核上运行多个实例。目前热门的容器虚拟化技术Docker,Docker可以将一个开发环境进行打包,很方便在另一个系统上运行起来。

    展开全文
  • KVM虚拟化

    万次阅读 多人点赞 2019-03-14 20:17:24
    kvm虚拟化1. 虚拟化介绍2. kvm介绍3. kvm部署3.1 kvm安装3.2 kvm web管理界面安装 1. 虚拟化介绍 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、...
  • kvm虚拟化之cpu虚拟化

    万次阅读 2018-01-27 12:48:45
    (文章来自作者维护的社区微信公众号【虚拟化云计算】) (目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问) 讲到intel的cpu虚拟化,就不得不提到vt-x。vt-x是intel...
  • 什么是虚拟化? 这里简单归纳一下我的理解: 1.虚拟化是资源的一种逻辑表示,并不会受限于物理资源。 2.运行的环境不在真实的硬件上,而是硬件之上的虚拟内存中的一段,或者说是虚拟的环境中。 3.虚拟化为数据、计算...
  • 记录一下自己对虚拟化的理解。 CPU虚拟化: 全虚拟化:主要利用模拟仿真技术,优先级压缩技术,二进制翻译技术。Guest OS认为自己是物理机,会发出ring0级别的指令产生权限异常,异常被vmm捕获后,陷入模拟仿真...
  • 虚拟化技术详解

    万次阅读 多人点赞 2018-07-14 17:10:52
    看到这篇文章的朋友,大部分应该都用过虚拟化软件,然后才会想知道虚拟化技术的。windows下的常用的虚拟化技术有VmWare,VirtualBox等等,那么这篇文章将会介绍这些技术基本的实现原理,并普及虚拟化相关的术语描述。 ...
  • 虚拟化-内存虚拟化

    千次阅读 2017-10-27 18:08:33
    内存虚拟化相关概念
  • kvm虚拟化之IO虚拟化

    千次阅读 2018-01-27 20:24:42
    (文章来自作者维护的社区微信公众号【虚拟化云计算】) (目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问) QEMU-KVM作为一个VMM提供了全虚拟化环境,guest不经过...
  • 了解虚拟化 VMware Workstation就是虚拟化 虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源 关键词Hypervisor(VMM)...
  • kvm虚拟化之时钟虚拟化

    千次阅读 2018-02-05 22:53:04
    (文章来自作者维护的社区微信公众号【虚拟化云计算】) (目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问) 我们知道kvm有一个半虚拟化的时钟kvm-clock,但是现在只...
  • 虚拟化是什么,虚拟化技术分类

    千次阅读 2019-12-09 13:42:15
    什么是虚拟化? 这里简单归纳一下我的理解: 1.虚拟化是资源的一种逻辑表示,并不会受限于物理资源。 2.运行的环境不在真实的硬件上,而是硬件之上的虚拟内存中的一段,或者说是虚拟的环境中。 3.虚拟化为数据、计算...
  • 完全虚拟化和半虚拟化区别

    万次阅读 2019-07-28 22:07:56
    虚拟化和全虚拟化最大的区别: 半虚拟化是需要更改系统内核才得以实现虚拟化,而完全虚拟化是不需要修改内核。 Xen虚拟机有两种运行方式:完全虚拟化(full virtualization)和半虚拟化(para virtualization) ...
  • 服务器虚拟化和桌面虚拟化

    千次阅读 2018-09-28 09:04:20
    服务器虚拟化和桌面虚拟化依托的都是KVM架构,两者的底层的东西是一样的,只不过是人为的将这个底层系统二次开发成不同的系统版本,有些功能做了限制,有些做了优化。这样的好处是,不同的场景可以使用不同的虚拟化...
  • 虚拟化与半虚拟化的实现方式

    万次阅读 2016-07-05 01:47:02
    虚拟化虚拟化不需要对GuestOS操作系统软件的源代码做任何的修改,就可以运行在这样的VMM中在全虚拟化的虚拟平台中,GuestOS并不知道自己是一台虚拟机,它会认为自己就是运行在计算机物理硬件设备上的HostOS。...
  • Linux虚拟化视频

    2019-05-08 11:04:07
    虚拟化诞生的重要原因就是提升资源利用率,从而起到节约成本的主要目的,这也是高级运维工程师必须掌握的技能之一。 本套视频完整的讲解了虚拟化在不同阶段出现的关键性技术。Vcent是 VMware 公司出品的企业级虚拟化...
  • 虚拟化与云计算

    2020-03-02 18:46:21
    本门课程主要介绍了三部分内容,包括KVM虚拟化的相关管理(基本管理、克隆、镜像、网络、迁移以及桌面虚拟化等),使用Docker来管理镜像与容器,以及Openstack的安装,管理(项目与用户管理,网络管理,镜像管理,...
  • kvm虚拟化部署

    万次阅读 2019-08-31 14:34:40
    文章目录虚拟化介绍全虚拟化:半虚拟化:理论上讲:kvm介绍kvm部署 虚拟化介绍 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件...
  • 本文属于SQL Server虚拟化系列前言: 现代系统中,虚拟化越来越普遍,如果缺乏对虚拟化工作原理的理解,那么DBA在解决性能问题比如降低资源争用、提高备份还原速度等操作时就会出现盲点。所以基于本人工作环境的情况...
  • 虚拟化技术之docker技术详解

    千次阅读 多人点赞 2021-09-30 09:34:39
    2.1 KVM 虚拟化技术概念2.2 ESXI 虚拟化技术概念2.3 XEN 虚拟化技术概念2.4 Docker 虚拟化概念2.4.1 什么是docker 虚拟化2.4.2 通俗理解docker 虚拟化技术2.4.3 传统虚拟化和docker 虚拟化的区别2.4.4 Docker LXC 及...
  •  虚拟化技术按照其发展历史,可以分为四个阶段:硬件仿真虚拟化、完全虚拟化、半虚拟化和操作系统虚拟化。当前阶段的虚拟化技术以半虚拟化技术为主流,操作系统虚拟化是发展方向,目前主要应用在高端应用领域。下面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 818,024
精华内容 327,209
关键字:

虚拟化