精华内容
下载资源
问答
  • 虚拟化学习

    千次阅读 2018-08-28 11:58:14
    虚拟化学习 1.为什么需要虚拟化? 在同一个系统里面没有做资源的隔离的时候,如果某一个应用程序卡死,而导致系统卡死,那么其他应用程序也会受到影响,解决方法:虚拟机管理器,VMM(hypervisor)。使用虚拟化...

    虚拟化学习
    1.为什么需要虚拟化?
    在同一个系统里面没有做资源的隔离的时候,如果某一个应用程序卡死,而导致系统卡死,那么其他应用程序也会受到影响,解决方法:虚拟机管理器,VMM(hypervisor)。使用虚拟化可以是机器利用率达到70%以上。而没有使用虚拟化一般只能打到20-30%。
    虚拟化其实就是做一个资源的分配与隔离。那么外部的那个系统自然能够管理所有的虚拟化的系统。在虚拟化的基础上面再做虚拟化可能会有问题,但是直接在硬件上面直接虚拟化是不会有问题的。

    磁盘和内存没有办法虚拟化出多的,但是CPU核是可以虚拟化出多个。毕竟可以使用多线程来模拟。

    2.私有化云及公有化云?
    企业的私有化云,以及阿里的公有化云。阿里云的服务器技术非常稳定,技术很牛。

    3.全虚拟化,半虚拟化,硬件辅助虚拟化?
    首先明白cpu的四个级别,不同级别上面运行的东西是不同的,权限也是不同的。OS上面有些命令必须要在ring0上面执行,但是我们最终的KVM是运行在ring0上面了,所以只有把Guest OS运行在ring1上面了。但是有些OS命令本应在ring0上运行却在ring1上运行这时候就会抛出异常,抛出异常就需要异常捕获(处理这个指令),但是异常捕获是非常耗资源的。这就是我们所说的全虚拟化,
    全虚拟化不需要更改OS内核,但是比较耗资源。

    半虚拟化,Guest OS会把涉及到在ring0上运行的超级调用指令发送给vmm,也就是说OS知道自己上层有一个VMM,那么要实现这样的操作就需要修改操作系统的内核指令。不再是一般的OS,而是一个特殊的OS,定制的OS。也就是要在OS中分清不同的指令级别,然后修改内核。但是我们的Windows是没有开源的,所以这个虚拟化只能是对Linux使用。所以名字才叫做半虚拟化。优点是不那么耗资源了,缺点是比较麻烦,需要修改内核。

    硬件辅助虚拟化,让厂商来实现这个东西。在安装VMware的时候如果安装不了系统,那么需要开启VT服务就是这个东西。
    egrep -c ‘(vmx|svm)’ /proc/cpuinfo
    这里写图片描述

    展开全文
  • 虚拟化学习小总结

    千次阅读 2015-05-27 09:59:36
    虚拟化学习总结

    虚拟化的学习

    这几天看了一点虚拟化的东西,感觉这个比较简单(学过计算机原理)。不说没有的了。简单的总结一下自己对于虚拟化的一些看法吧。

    我学习虚拟化是为了了解一下,虚拟容器Docker的一些东西。但是因为虚拟容器Docker,我觉的会是在今后几年,实用性特别强的东西。在听过了王家林老师的Docker课后,发现这个东西也是挺有发展前途的。

    这几天的学习让我认识到,虚拟化是一个已经应用的很广泛的东西。首先,虚拟化可以实现我们不同操作系统的需求,你可以在不用换系统的情况下,轻松地弄出一台虚拟机,来满足你的一些需求。我在搭建集群的时候就是这么用虚拟机的。这是对计算机资源的分割,很好的提高了计算机资源的利用率。但也是有一定的缺点。因为虚机太多你的计算机就容易崩溃。

    首先虚拟化的原理是:处理器虚拟化,内存虚拟化,I/O虚拟化。这是虚拟化的实现的基础。实现这三个的方式是:VMM.VMM可以提供虚拟资源,虚拟环境调度,虚拟机间的通信,虚拟环境管理接口。按照这种理论VMM 可以按平台分类:完全虚拟化(VM的虚拟机 基于硬件层级的),半虚拟化(基于操作系统层级的)。按照实现结构:Hypervisor模型(VMware) 宿主模型(KVM) 混合模型(XEn)。大家感兴趣的话可以根据需要,再去细细研究。我只是做一个小小的概述。方便自己以后查找回忆。
    在应用方面:主要是体现在桌面虚拟化。这些桌面虚拟化技术实现包括:终端服务 ,虚拟桌面托管,刀片式PC、操作系统映像流、远程操作系统、应用流和应用虚拟化 虚拟容器。现阶段在虚拟桌面托管上,终端,以及应用流和应用虚拟化上比较广泛。但随着事件的发展应用虚拟容器的也会逐渐更多。应为虚拟容器,让产品测试开发都变得更加快捷。在spark上也有对于Docker的支持。
    虚拟桌面,虚拟桌面托管的方面。VMware做的不错。可以http://bbs.51cto.com/thread-919674-1.html 这是桌面虚拟化的一个我觉的不错的文章,大家可以看看。其他就是在企业部署,云计算的应用(特别是公有云。因为这可以有很大的弹性)。

    虚拟化是云计算的一部分。云计算不仅仅只是有大数据。要开阔自己的眼界。

    展开全文
  • KVM 虚拟化学习之虚拟磁盘管理 qemu-img 一、虚拟磁盘简述1.1 虚拟存储性能的解决方案1.2 虚拟磁盘存储方案二、qemu-img 命令 -- 虚拟磁盘管理2.1 qemu-img 概述2.2 qemu-img 功能示例:2.2.1 创建一个镜像 create...

    一、虚拟磁盘简述

    1.1 虚拟存储性能的解决方案

    • 问题 :磁盘的I/O 性能一直是虚拟化存储性能的瓶颈。
    • 通过分布式的磁盘I/O 进一步提升存储性能,即多磁盘驱动
    • 通过集中式存储解决方案实现高可用和实时迁移,即SAN/NFS。

    1.2 虚拟磁盘存储方案

    • 固定配额存储,即分配多少,占用实际物理磁盘多少。就是在配置时,指定的容量,也会占用配置时指定的大小的主机磁盘容量。
    • 动态扩容方案,即预先指定磁盘大小,随之应用程序、文件等逐渐增大,但增大到最大容量。
    • 差异性存储方案,即只存储变更的数据。

    二、qemu-img 命令 – 虚拟磁盘管理

    2.1 qemu-img 概述

    qemu-img - QEMU disk image utility
    qemu-img 是QEMU 磁盘镜像工具。

    qemu-img allows you to create, convert and modify images offline. It can handle all image formats supported by QEMU.

    qemu-img 允许你在离线(即虚拟机关机状态)下创建、转换和修改镜像文件。它可以处理所有QEMU支持的镜像格式的磁盘镜像。

    Warning: Never use qemu-img to modify images in use by a running virtual machine or any other process; this may destroy the image. Also, be aware that querying an image that is being modified by another process may encounter inconsistent state.

    注意:切勿使用 qemu-img 修改正在运行的虚拟机或被其他进程使用的镜像,这会摧毁磁盘镜像。另外,请注意,查询一个被其他进程修改的镜像状态可能会不一致。

    2.2 qemu-img 功能

    操作 功能 使用
    creat 创建一个镜像 create [-f fmt] filename [size] 例:create -f qcow2 centos-7.qcow2 10G
    check 检查完整性(仅支持"qcow2", "qed" ,"vdi"格式一致性检查) check [-f fmt] filename 例: qemu-img check -f qcow2 /kvm/centos-7.qcow2
    convert 镜像格式转换
    info 查看镜像信息 info [-f fmt] [–output=ofmt] [–backing-chain] filename
    resize 调整镜像大小 resize filename [+/ -]size
    rebase 在现有镜像基础上创建新镜像 rebase [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
    snapshot 磁盘镜像快照 snapshot [-l , -a snapshot , -c snapshot , -d snapshot ] filename
    commit 提交更改 commit [-f fmt] [-t cache] filename

    示例:

    2.2.1 创建一个镜像 create

    [root@localhost kvm]# qemu-img create -f qcow2 -o ? # qcow2 选项
    Supported options:    
    size             Virtual disk size  # 虚拟磁盘大小
    compat           Compatibility level (0.10 or 1.1)
    backing_file     File name of a base image #指定基础镜像文件
    backing_fmt      Image format of the base image  #设置后端镜像基础镜像格式
    encryption       Encrypt the image  # 设置镜像加密
    cluster_size     qcow2 cluster size # 设置镜像簇大小,512~2M,默认64KB
    preallocation    Preallocation mode (allowed values: off, metadata, falloc, full) #设置镜像文件空间预分配模式
    lazy_refcounts   Postpone refcount updates
    
    #创建一个格式为 qcow2 大小10G的虚拟磁盘
    [root@localhost ~]# qemu-img create -f qcow2 img2.qcow2 10G
    Formatting 'img2.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
    
    #查看刚创建的虚拟磁盘详细信息
    [root@localhost ~]# qemu-img info --output=human img2.qcow2
    image: img2.qcow2   
    file format: qcow2  #文件格式
    virtual size: 10G (10737418240 bytes) # 虚拟磁盘大小
    disk size: 196K   #实际占用大小
    cluster_size: 65536  #簇默认64KB
    Format specific information:
        compat: 1.1
        lazy refcounts: false
    

    在这里插入图片描述

    2.2.2 查看虚拟磁盘信息 - info

    在这里插入图片描述

    2.2.3 检查磁盘镜像完整性(一致性) – check

    [root@localhost ~]# qemu-img check img2.qcow2 #img2.qcow2 的完整性
    No errors were found on the image.  #检查结果没有错误
    Image end offset: 262144
    

    2.2.4 调整磁盘镜像容量 – resize

    在这里插入图片描述

    注意:

    • 调整虚拟磁盘容量之前,请做好重要数据备份。---- 数据无价
    • 扩容后,需要在客户端使用磁盘管理工具fdisk 、partprobe 工具初始化该分区(建立新分区、格式化并挂载使用)。
    • 缩容,注意在保证虚拟机有足够的空间下进行,否则会发生数据丢失。
    • qcow2 格式的磁盘镜像不支持缩容操作

    2.3 磁盘镜像快照管理 – snapshot

    2.3.1 快照/检查点简述

    • 磁盘快照:
      • 对数据进行快照,用于虚拟机备份场景
    • 内存快照 – 只能对运行的虚拟机进行拍照
      • 对虚拟机的内存/设备信息进行拍照
      • 适用于快速的恢复、迁移场景
      • 通过 virsh save (qemu migrate to file)实现
      # 内存拍照
      [root@localhost ~]# virsh save CentOS-7  --file save.file
      Domain CentOS-7 saved to save.file
      
      # 恢复内存快照
      [root@localhost ~]# virsh restore save.file
      Domain restored from save.file
      
      
    • 检查点快照
      • 同时保存磁盘快照和内存快照
      • 保存虚拟机的某个时间点,因此,可以将虚拟机恢复到该时间点状态
      • 能够保持数据的一致性
    snapshot subcommand:
    'snapshot' is the name of the snapshot to create, apply or delete
      '-a' applies a snapshot (revert disk to saved state) # 回滚到指定快照
      '-c' creates a snapshot   # 创建一个快照
      '-d' deletes a snapshot   #删除一个快照
      '-l' lists all snapshots in the given image  # 列出给出镜像的所有快照
    

    2.3.2 示例 快照回滚操作:

    1. 创建磁盘快照
      在这里插入图片描述
    2. 删除数据
    3. 快照回滚,检查数据
    [root@localhost ~]# virsh shutdown CentOS-7  # 关闭虚拟机
    Domain CentOS-7 is being shutdown
    [root@localhost ~]# virsh list --all  #查看虚拟机状态
     Id    Name                           State
    ----------------------------------------------------
     -     CentOS-7                       shut off
    [root@localhost ~]# qemu-img snapshot -a s1  /kvm/centos-7.qcow2 #磁盘快照回滚
    

    注意坑: 进行磁盘快照回滚时需要在虚拟机关闭的状态下进行回滚,否则会破坏磁盘快照。qemu-img 的磁盘快照只支持通过qemu-img 创建的原生qcow2 格式磁盘快照,不支持转换后的qcow2。

    展开全文
  • 虚拟化的目的:是为了提高资源的利用率,提高管理的便携性,是云计算的底层基础。虚拟化的实现:是将底层的物理硬件都抽象成各种逻辑资源,也就是资源池化(虚拟化),然后再在这些逻辑资源之上,建立虚拟机操作系统...

    虚拟化的目的:是为了提高资源的利用率,提高管理的便携性,是云计算的底层基础。

    虚拟化的实现:是将底层的物理硬件都抽象成各种逻辑资源,也就是资源池化(虚拟化),然后再在这些逻辑资源之上,建立虚拟机操作系统。

    虚拟化需要解决的一个大问题就是,如何感知内核模式,即:现有的系统是这样的,操作系统运行在内核态中,用户程序运行在用户态中,当用户程序需要执行内核态功能(比如IO操作)的时候,会被系统捕捉,并由内核执行并返回。然而,在虚拟化中,如果不更改操作系统代码,则虚拟机操作系统系统也运行在内核态中,这样就会产生冲突,因为这时候宿主系统和虚拟系统内核同时运行在内核态中,这就会出问题。所以,虚拟化的重要的一步就在于,如何截获虚拟机命令对物理硬件的访问(内核态),并且将其重定向到逻辑资源池中。基于此又有两种不同的方式

    1. 基于软件的方法
      比如VMware workstation,它监控虚拟机操作系统的指令,并将虚拟机中的内核态命令截取,并转化为软件调用来实现该功能。
      另外一种就是著名的Qemu,它通过软件来仿真每条指令的取指令,解码指令,和执行指令,虚拟机操作系统的所有指令都是用软件模拟的,这种方式的性能较低。

    2. 基于硬件的方法
      就是依靠物理平台的本身提供对特殊指令的截获或者重定向的硬件支持,从而提升性能,

    为了能在一台物理设备上能够安装多个虚拟机操作系统,目前已经出现了多种技术,比如Qemu,xen,kvm,vmware 等多种技术。

    Qemu:用软件的形式,模拟一个虚拟机操作系统的所有设备。
    Xen: 刚开始支持半虚拟化,后来支持全虚拟化,Xen是一个直接在硬件上运行的管理程序,也就是说Xen相当于宿主操作系统,负责虚拟机管理和资源的调度。
    Kvm: 即内核虚拟机,它基于Linux 内核和支持虚拟化扩展的X86硬件,是一种全虚拟化方法。在KVM中,一个虚拟机实例表现为一个Linux 进程,所以,可以很好的利用Linux 成熟的进程调度方法,同时KVM还利用了QEMU的虚拟化来实现IO.
    等等。。。

    有如此众多的解决方法,而各个方案的管理方式,命令,工具又各不相同,学习和掌握这些不能的工具又费时又低效,所以一种能够用一个统一的方法来管理这些虚拟机的工具就应运而生,那就是我们要学习的Libvirt。

    Libvirt的位置:提供一种Hpyervisor不可知的 API 来安全管理运行于主机上的客户操作系统。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序,它基于驱动程序的架构,该架构允许一种通用的 API 以通用方式为大量潜在的虚拟机监控程序提供服务。

    个人总结的虚拟化系统图如图1所示:

    虚拟化结构图

    在KVM和XEN中,KVM+Linux Kernel 的功能与Xen Hpyervisor +Domian 0 的功能相当,KVM利用了Linux 内核的一些成熟的特性,并且可以受益于Linux 内核的发展。而Domain 0 运行的是修改过的linux 系统,其它虚拟机的IO部分,主要和Domain 0 进行通信。Xen的半虚拟化方式,需要修改操作系统的代码,所以它也和KVM一样,只能运行受限的操作系统。

    纠正的一些错误理解:
    1. 虚拟机包括虚拟的硬件和虚拟的操作系统,而不仅仅是虚拟操作系统而已,以前一直错误的认为虚拟机只是一个虚拟操作系统(VMware workstation)。
    2. Libvirt 作为一个函数库API存在,它没有专门的物理硬件来运行它,而是宿主在Domain 0 或者Linux 系统中。

    展开全文
  • kvm虚拟化学习(一)

    千次阅读 2019-06-16 13:20:01
    一、虚拟化 1.虚拟化介绍 虚拟化是云计算的基础。虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同事运行多个逻辑计算机,每个逻辑 计算机可运行不同的操作系统,并且应用程序都可以在...
  • 这段时间对VMware的vsphere虚拟化有了兴趣,想把一些淘汰的服务器利用起来组建一个虚拟化集群,VMware的虚拟化产品相比Openstack更加成熟稳定,对于一个单位内部建设虚拟化环境来说,VMware比Openstack的学习成本...
  • 一般虚拟化主ESXi都会开启BIOS中的CPU虚拟化技术,INTEL叫VT-x,AMD的叫AMD-V。ESXI部署虚机需要做一下配置(一定要用vshpere web client浏览器客户端打开)。 1、检查虚机版本是否是9版本以上的,如果不是进行虚机...
  • 上一章我们介绍了VMware vSphere的一些入门知识,了解了vSphere的关键组件与一些涉及虚拟化资源的计算方法,这时你应该已经下载了vSphere软件,本章我们继续。下图是我准备搭建的基于现有硬件、网络业务环境的VMware...
  • KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机...
  • 虚拟化学习笔记-基础知识

    千次阅读 2018-02-28 09:58:44
    学习来源:https://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm1/index.html参考合集(重点):https://www.ibm.com/developerworks/cn/linux/theme/virtualization/index.html虚拟机迁移的三种方式 P2V、V2V ...
  • 一般虚拟化主ESXi都会开启BIOS中的CPU虚拟化技术,INTEL叫VT-x,AMD的叫AMD-V。如下图为DELL服务器的CPU虚拟化功能开启方法,进入BIOS,选择Process Setting,将Virtualization Technology设置为Enabled。 当在该...
  • VMware ESXi 6.0 (企业版虚拟化服务器) 步骤一:因为VMware ESXi 6.0只是当接收服务器使用下,没必要使用物理机安装。所以使用VMware Workstation 安装。安装过程不提,一路按照提示来即可 步骤二:安装完成之后, ...
  • kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。...进一步的学习参考:kvm+libvirt虚拟机快照浅析 http://itxx.sinaapp.com/blog
  • 传统的虚拟化技术 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不...
  • 虚拟化技术学习笔记(一)

    千次阅读 2018-06-14 15:32:52
    虚拟化原理
  • 虚拟化的组件的学习

    千次阅读 2016-02-04 10:00:30
    Hypervisor 为虚拟桌面的虚拟机提供虚拟化运行环境。这些虚拟机就叫作用户虚拟化桌面。 2、 用户虚拟桌面(Hosted virtual desktop)  虚拟机里面运行的桌面操作系统和应用就是一个用户虚拟桌面 3、连接管理器...
  • libvirt支持多种虚拟化方案,既支持包括KVM、QEMU、Xen、VMware、VirtualBox等在内的平台虚拟化方案,又支持OpenVZ、LXC等Linux容器虚拟化系统,还支持用户态Linux(UML)的虚拟化
  • 虚拟化技术详解

    万次阅读 多人点赞 2018-07-14 17:10:52
    看到这篇文章的朋友,大部分应该都用过虚拟化软件,然后才会想知道虚拟化技术的。windows下的常用的虚拟化技术有VmWare,VirtualBox等等,那么这篇文章将会介绍这些技术基本的实现原理,并普及虚拟化相关的术语描述。 ...
  • 好了,说完了CPU和内存的例子,不细说网络和硬盘了,也是类似,都是虚拟化软件模拟一个给虚拟机内核看的,其实啥事儿都需要虚拟化软件转一遍。 这种方式一个坏处,就是慢,往往慢到不能忍受。 于是虚拟化软件...
  • Docker虚拟化实战学习——基础篇

    千次阅读 2018-05-26 02:17:24
    Docker虚拟化实战和企业案例演练深入剖析虚拟化技术概念和应用场景虚拟化,一是项技术~~,是一种资源解决方案。虚拟化技术是将物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒,使计算元件运行在...
  • 什么是虚拟化? 这里简单归纳一下我的理解: 1.虚拟化是资源的一种逻辑表示,并不会受限于物理资源。 2.运行的环境不在真实的硬件上,而是硬件之上的虚拟内存中的一段,或者说是虚拟的环境中。 3.虚拟化为数据、计算...
  • kvm虚拟化教程

    千次阅读 2014-05-05 17:09:42
    KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linuxkvm虚拟机安装...
  • 华为计算虚拟化-学习笔记

    千次阅读 2018-03-06 17:47:44
    CPU虚拟化通过时分、空分方式实现多个VM共享CPU资源,对VM的敏感指令进行截获并模拟执行X86,Ring0-Ring3,操作系统内核、操作系统、操作系统、应用程序,优先级从高到低虚拟化方法:特权解除(Privilege ...
  • 虚拟化是什么,虚拟化技术分类

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 230,484
精华内容 92,193
关键字:

虚拟化学习