精华内容
下载资源
问答
  • KVM虚拟化
    千次阅读
    2022-01-16 15:50:21

    一、虚拟化

    在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个计算机配置环境,并重新分割、重新组合,以达到最大化合理利用物理资源的目的。

    虚拟化可以提高IT敏捷性、灵活性和可扩展性,同时大幅节约成本,实现更高的工作负载移动性、更高的性能和资源可用性、自动化运维,这些都是虚拟化的优势,虚拟化技术可以使IT部门更轻松地进行管理以及降低拥有成本和运维成本。其他优势包括

    • 降低资金成本和运维成本
    • 最大限度减少或消除停机
    • 提高IT部门的工作效率、效益、敏捷性和响应能力
    • 加快应用和资源的调配速度
    • 提高业务连续性和灾难恢复能力

    虚拟化类型

    服务器虚拟化

    服务器虚拟化支持将多个操作系统作为高效的虚拟机在单个五路服务器上运行,主要优势包括:

    • 提升IT效率
    • 降低运维成本
    • 更快地部署工作负载
    • 提高应用性能
    • 提高服务器可用性
    • 消除服务器数据剧增情况和复杂性

    网络虚拟化

    通过软件定义网络,即网络的创建不再依赖于物理设备,如公有云厂商运行用户自己创建新的网络,在kubernetes、OpenStack中都会使用到网络虚拟化

    桌面虚拟化

    将桌面部署为代管服务使IT组织能够更快地响应不断变化的工作场所需求和新出现的机会。还可以将虚拟化桌面和应用快速、轻松地交付给分支机构、外包和离岸员工以及使用iPad和Android平板电脑的移动员工

    应用虚拟化

    将软件虚拟化

    存储虚拟化

    SAN(基于磁盘)/SAN(NFS/Samba)/GlusterFS/ceph等

    库虚拟化

    在linux上运行windows程序使用wine,在mac系统运行windows程序使用CrossOver等

    容器技术

    被称为下一代虚拟化技术,典型的就是docker、Linux Container(LXC)、pouch、RKT

    虚拟化技术分类

    模拟器

    在一个host之上通过虚拟化模拟器软件,模拟出一个硬件或者多个硬件环境,每个环境都是一个独立的虚拟机,CPU、IO、内存等都是模拟出来的,可以在宿主机模拟出不同于当前物理机CPU指令集的虚拟机,比如可以在windows模拟出macOS、unix系统,比较出名的模拟器有:pearpc、QEMU、Bochs

    全虚拟化 full virtualization /准虚拟化 native virtualization

    全虚拟化/准虚拟化不做CPU和内存模拟,只对CPU和内存做相应的分配等操作,全虚拟化需要物理硬件的支持,比如需要CPU必须支持并且打开虚拟化功能,例如Intel的Intel VT-X/EPT,AMD的AMD-V/RVI,以在CPU层面支持虚拟化功能和内存虚拟化技术,因此完全虚拟化也是基于硬件辅助的虚拟化技术

    全虚拟化软件(硬件辅助全虚拟化):
    VMware workstation  #https://www.vmware.com/cn/products/workstation-pro.html
    paralles desktop
    KVM
    Microsoft Hyper-V
    VirtualBox

    半虚拟化 para virtualization

    半虚拟化要求guest OS的内核是知道自己运行在虚拟化环境当中的。因此guest OS的系统架构必须和宿主机的系统架构相同,并且要求对guset OS的内核做相应的修改,因此半虚拟化只支持开源内核的系统,不支持闭源的系统,比较常见的半虚拟化就是早期版本的XEN,但是Xen从其3.0版本开始,可以支持利用硬件虚拟化技术的支持(http://www-archive.xenproject.org/files/xen_3.0_datasheet.pdf),实现了完全虚拟化,可以在其平台上不加修改的直接运行如Linux/Windows的系列的操作系统,使得系统具备了更好的兼容性

    二、虚拟化技术之KVM

    KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自linux 2.6.20之后集成在Linux的各个主要发行版本中,KVM目前已成为学术界的主流VMM(virtual machine monitor,虚拟机监视器,也称为hypervisor)之一。

    KVM(基于内核的虚拟机)是针对Linux的完全虚拟化解决方案,它在x86硬件上包含虚拟化扩展(Intel VT或AMD-V)。它由提供核心虚拟化基础架构的可加载内核模块kvm.ko和处理器特定模块kvm-intel.ko或kvm-amd.ko组成

    KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化,而Xen早期则是基于软件模拟的半虚拟化,新版本则是支持基于硬件支持的完全虚拟化,但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大,广为流传的商业系统虚拟化软件vmware ESXI系列是Full-Virtualization

    Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O设备驱动等),被KVM置于一种受限制的CPU模式下运行

    KVM:运行在内核空间,提供CPU和内存的虚拟化,以及客户机的I/O拦截,Guest的部分I/O被KVM拦截后,交给QEMU处理

    Qemu:纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件,正因为Qemu是纯软件实现的,所有的指令都要经Qemu过一手,性能非常低,所以在生产环境中,大多数的做法都是配合KVM来完成虚拟化工作,KVM完成复杂及要求比较高的设备虚拟化。

    KVM管理工具

    libvirt

    使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机,libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualbox等

    virsh

     一个常用的管理KVM虚拟化的命令行工具,常用于管理运行在单个宿主机上的虚拟机

    virt-manager

     virt-manager是一个虚拟化管理图形软件,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的创建、删除、启动、停止以及一些简单的监控功能等

    OpenStack

     OpenStack是一个开源的虚拟化编排工具,常用于构建大规模的虚拟化环境,用于管理虚拟机的创建、启动、删除等整个生命周期

    virt-install命令使用

    # virt-install --help
    virt-install --name NAME --memory MB STORAGE INSTALL [options]
    使用指定安装介质新建虚拟机
    
    通用选项:
      --version      查看版本号
      --name NAME    新建虚拟机的名称,多个虚拟机的名称必须不一样
      --memory 1024  配置虚拟机的内存
      --vcpus 2      为虚拟机配置的vcpus数
      
    安装方法选项:
      --cdrom    ios镜像文件路径
    
    设备选项:
      --disk      使用指定的存储 --disk path=/var/lib/libvirt/images/centos7.qcow2
      --network   配置虚拟机网络接口 --network=default,--network bridge=mybr0
      vnc,listen=0.0.0.0,port=5901,password=test,keymap=ja  配置虚拟机控制程序设备
      
    其它选项:
      --autostart      引导主机时自动启动
      --noautoconsole  不要自动阐释连接到客户端控制台

    虚拟机管理命令virsh

    # virsh list          			#列出当前开机的
    # virsh list --incative  		#列出当前关闭的虚拟机
    # virsh list --all   				#列出所有
    # virsh shutdown centos7 		#正常关机
    # virsh start centos7 			#正常开机
    # virsh destroy centos7			#强制关机
    # virsh undefine win10      #强制删除
    # virsh autostart centos7   #设置当前虚拟机开机自启动

     

    三、使用KVM创建虚拟机

    kvm需要宿主机CPU必须支持虚拟化功能,因此如果是在vmware workstation上使用虚拟机做宿主机,那么必须要在虚拟机配置界面的处理器选项中开启虚拟化功能。

    宿主机环境准备

    #验证开启虚拟化
    [root@node4 ~]# grep -Em 1 "vmx|svm" /proc/cpuinfo
    # Inter: vmx
    # Amd: svm
    
    
    #安装kvm工具包
    ##CentOS
    [root@node4 ~]# yum install -y qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
    [root@node4 ~]# systemctl start --now libvirtd
    
    [root@node4 ~]# ifconfig virbr0 #验证是否生成NAT网卡virbr0
    
    
    
    # Ubuntu,https://ubuntu.com/server/docs/virtualization-libvirt
    apt install qemu-kvm virt-manager libvirt-daemon-system
    # kvm-ok # ubuntu验证是否支持kvm,centos不支持该方式

    创建NAT网络虚拟机

    默认网络就是nat

    [root@node4 ~]# ls -lrt /home/data/isos/centos7.iso   ##提前上传安装镜像
    -rw-r--r--. 1 qemu qemu 1020264448 Jan 10 18:32 /home/data/isos/centos7.iso
    
    #创建qcow2格式磁盘
    [root@node4 ~]# qemu-img create -f qcow2 /home/data/kvm/images/centos7.qcow2 15G
    
    # 查看支持的OS版本
    [root@node4 ~]# osinfo-query os | grep centos
    
    #创建默认网络虚拟机
    [root@node4 ~]# virt-install --virt-type kvm --name=CentOS7 --os-variant=centos7.0 --accelerate --ram 2048 --vcpus 2 --cdrom=/home/data/isos/centos7.iso --disk path=/home/data/kvm/images/centos.qcow2,size=15,format=qcow2,bus=virtio --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --autostart
    
    
    
    通过virt-manager安装管理虚拟机
    如果系统语言是中文virt-manager打开管理界面显示是乱码
    解决方法:
    [root@node4 ~]# yum install -y dejavu-lgc-sans-fonts && yum groupinstall -y "fonts"
    
    
    virt-manager提示Gtk-WARNING **: 19:16:15.412: cannot open display:
    ###安装xorg-x11-font-utils包后可以正常打开
    [root@node4 ~]# yum -y install xorg-x11-font-utils
    
    
    #安装步骤与正常安装一致
    [root@node4 ~]# virt-manager

    virt-manager管理虚拟机界面

     查看虚拟机IP

    自动获取到的ip地址是NAT分配的192.168.122.X地址段,此地址可以访问外网但是无法从外网主机访问到此虚拟机上的相关服务

     

    创建bridge网络虚拟机

    桥接网络可以让运行在宿主机上的虚拟机使用和宿主机同网段IP,并且可以从外部直接访问到虚拟机,目前企业中大部分场景都使用桥接网络。

    创建br0桥接网卡

    ubuntu 创建桥接网卡
    ~# vim /etc/netplan/01-netcfg.yaml 
    # This is the network config written by 'subiquity'
    network:
      renderer: networkd
      ethernets: 
        eth0: 
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          dhcp4: no
          dhcp6: no
          addresses: [172.20.22.26/16]
          gateway4: 172.20.22.254
          interfaces:
            - eth0
      version: 2
    
    ~# netplan apply
    ~# ifconfig 
    
    
    centos创建桥接网卡
    # cd /etc/sysconfig/network-scripts
    # vim ifcfg-br0 
    TYPE=Bridge
    BOOTPROTO=static
    NAME=br0
    DEVICE=br0
    IPADDR=172.20.22.26
    NETMASK=255.255.0.0
    GATEWAY=172.20.22.254
    
    # vim ifcfg-em1
    TYPE=Ethernet
    PROXY_METHOD=none
    BOOTPROTO=static
    NAME=em1
    DEVICE=em1
    ONBOOT=yes
    BRIDGE=br0
    
    # systemctl restart network
    # ifconfig

    创建虚拟机

    #创建系统磁盘
    # qemu-img create -f qcow2 /home/data/kvm/images/centos7-bridge.qcow2 10G
    Formatting '/home/data/kvm/images/centos7-bridge.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
    
    # ls -lrt /home/data/kvm/images/centos7-bridge.qcow2 
    -rw-r--r--. 1 root root 197120 Jan 12 14:45 /home/data/kvm/images/centos7-bridge.qcow2
    
    
    #创建基于桥接网络的虚拟机
    # virt-install --virt-type=kvm --name=centos7-bridge --os-variant=centos7.0 --accelerate --ram 2048 --vcpus 2 --cdrom=/home/data/isos/centos7.iso --disk path=/home/data/kvm/images/centos7-bridge.qcow2,format=qcow2,bus=virtio --network bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole --autostart
    
    #通过virt-manager安装管理虚拟机
    # virt-manager
    
    
    #创建虚拟机自动生成对应的xml文件目录,虚拟机删除之后xml文件也会自动删除
    # ls -lrt /etc/libvirt/qemu
    -rw-------. 1 root root 4237 Jan 11 11:26 CentOS7.xml
    -rw-------. 1 root root 4253 Jan 12 17:11 centos7-bridge.xml

    验证虚拟机桥接网络通信

    桥接网络的虚拟机需要手动设置虚拟机网卡的IP,网卡配置文件与物理机的相同也是在/etc/sysconfig/network-scripts目录中对应的ifcfg-eth0文件

    创建windows10虚拟机

    virtio是一种I/O半虚拟化解决方案,是一套通用I/O设备虚拟化的程序,是对半虚拟化Hypervisor中的一组通用I/O设备的抽象,提供了一套上层应用与各Hypervisor虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率,windows系统需要单独安装virtio驱动,linux系统自带virtio驱动

    windows虚拟机virtio驱动下载地址Index of /groups/virt/virtio-win/direct-downloads

    ##把win10的iso镜像问件以及virtio的驱动文件上传至home/data/isos目录下
    
    # qemu-img create -f qcow2 /home/data/kvm/images/win10.qcow2 100G
    Formatting '/home/data/kvm/images/win10.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off
    
    # virt-install --virt-type kvm --name win10 --os-variant=windows --accelerate --ram 2048 --vcpus 2 --cdrom=/home/data/isos/windows10.iso --disk path=/home/data/kvm/images/win10.qcow2 --disk path=/home/data/isos/virtio-win_amd64.vfd,device=floppy --network bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole --autostart
    
    Starting install...
    Domain installation still in progress. You can reconnect to 
    the console to complete the installation process.

    接下来的安装步骤跟物理机安装一致,具体安装过程略

    四、快速创建虚拟机

    快速创建虚拟机的方法:

    • 通过virt-manager直接clone
    • 复制虚拟机磁盘,通过命令行创建虚拟机
    • 复制虚拟机磁盘,通过virt-manager导入

    通过virt-manager直接clone

    打开virt-manager管理界面,右键点击clone

    修改虚拟机名称,点击clone

    clone完成后点击开机

    修改对应的IP地址,重启网络测试

     

    复制虚拟机磁盘,通过命令行创建虚拟机

    虚拟机不要开始安装过程,即虚拟机启动后立即强制关机重新启动即可进入到虚拟机系统。复制的虚拟机磁盘已经是一个完整的虚拟机系统。

    复制磁盘,通过命令行创建
    [root@node4 ~]# cd /home/data/kvm/images
    [root@node4 images]# cp centos7-bridge.qcow2 mysql-bridge.qcow2
    
    [root@node4 images]# virt-install --virt-type kvm --name mysql-bridge --os-variant=centos7.0 --accelerate --ram 2048 --vcpus 2 --cdrom=/home/data/isos/centos7.iso --disk path=/home/data/kvm/images/mysql-bridge.qcow2 --network bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole --autostart
    
    
    
    #会自动生成对应xml文件
    [root@node4 images]# ls -lrt /etc/libvirt/qemu
    -rw-------. 1 root root 4247 Jan 13 14:22 mysql-bridge.xml

    修改对应的ip测试

    复制虚拟机磁盘,通过virt-manager导入

    复制虚拟机磁盘,通过virt-manager导入
    [root@node4 ~]# cd /home/data/kvm/images
    [root@node4 images]# cp centos7-bridge.qcow2 haproxy-bridge.qcow2

    通过virt-manager管理界面导入

    登录系统之后修改IP,重启网络测试

     

    五、将vmvare虚拟机迁移到KVM环境

    1、将VMware虚拟机对应的vmdk文件迁移至kvm硬盘存储位置

    2、将迁移至kvm的vmdk文件格式转换为qcow2

    3、用virt-manager管理工具转换完成的qcows2重新导入,开机测试

    ##将vmware虚拟机的node4-centos7.vmdk文件上传至kvm对应的磁盘存储目录,然后转换vmdk文件
    # qemu-img convert -O qcow2 node4-centos7.vmdk node4-centos7.qcow2

    导入步骤:

    更多相关内容
  • KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux的一个内核模块,该内核模块使得...一个工具及接口,作为较通用的服务器虚拟化软件,它支持Xen,VMware ESXi/GSX,当然,还有QEMU/KVM。 3
  • KVM虚拟化技术课件
  • KVM虚拟化技术实战与原理解析 全书一共9章:第1章介绍了云计算和虚拟化的概念,并对KVM等几种流行的虚拟化技术做了比较;第2章介绍了KVM的基本架构、QEMU的作用以及Intel的硬件虚拟化技术;第3章详细讲解了KVM依赖的...
  • 资源共享----《KVM虚拟化技术:实战与原理解析》 资源共享----《KVM虚拟化技术:实战与原理解析》 资源共享----《KVM虚拟化技术:实战与原理解析》 资源共享----《KVM虚拟化技术:实战与原理解析》 资源共享----...
  • 基于KVMQEMU的虚拟化环境的搭建;启动运行第一个虚拟机;虚拟化应用实践;虚拟化管理工具的安装与使用;虚拟机镜像的制作 五个实验详细步骤以及截图!
  • KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案
  • kvm虚拟化视频教程.rar

    2022-03-24 20:33:34
    │ │ 01-什么是kvm虚拟化.mp4 │ │ 02-安装kvm虚拟机.mp4 │ │ 03-virsh的日常管理命令上.mp4 │ │ 04-virsh的日常管理命令下.mp4 │ └ 05-kvm虚拟机开机自启和console登录.mp4 ├ kvm-day2 │ │ 01-kvm虚拟机...
  • 平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉kvm比较复杂,可能是它的工具太多了吧...
  • 什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,...KVM虚拟化 KVM自linux2.6.20版本后就直接整合到linux内核中,它依托CPU虚拟化指令集(如Intel-VT、AM
  • KVM虚拟化.pdf

    2020-10-09 17:55:22
    运维---KVM虚拟化 很多公司会将自己的业务都运行在虚拟机上或云主机或容器中。跑在虚拟机,云主机,容器中各有自己的优势,但它们都是以==虚拟化==技术为基础的。
  • linux下KVM虚拟化总结

    2017-03-27 14:57:32
    kvm是linux内核虚拟化,文中指出了kvm虚拟化环境的安装搭建及使用工具。
  • 银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全、云原生支持、国产...
  • (1)什么是虚拟化 把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的技术 (2)虚拟化层 ①X86平台...
  • KVM虚拟化平台资源.rar

    2021-05-15 12:27:10
    KVM虚拟化平台资源.rar
  • 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO硬件资源,但逻辑上虚拟机之间是相互隔离的。 物理机我们一般称为宿主机(Host),宿主机上面...
  • 虚拟化技术文档包含了:虚拟化基础原理及分类、安装配置、网络环境、kvm迁移、qemu-img工具的使用
  • KVM虚拟化技术+实战与原理解析》.(任永杰,单海涛)《KVM虚拟化技术+实战与原理解析》.(任永杰,单海涛)《KVM虚拟化技术+实战与原理解析》.(任永杰,单海涛)《KVM虚拟化技术+实战与原理解析》.(任永杰,单海涛)
  • KVM虚拟化详解

    2021-01-27 11:55:45
    服务器虚拟化是云计算最核心的技术,而KVM是当前最主流的开源的服务器虚拟化技术。从Linux2.6.20起,KVM作为内核的一个模块 集成到Linux主要发行版本中。从技术架构(代码量、功能特性、调度管理、性能等)、社区...
  • 马大哥Xen_KVM虚拟化及IaaS云技术OpenStack的很全笔记
  • KVM虚拟化的基础知识,主要对虚拟化的各种类型进行了介绍,并介绍了KVM的相关内容
  • KVM虚拟化技术.ppt

    2019-07-29 14:38:23
    嵌入到Linux正式Kernel(提高兼容性) 代码级资源调用(提高性能) 虚拟机就是一个进程(内存易于管理) 直接支持NUMA技术(提高...---------- RedHat收购KVM ----------- 保持开源发展模式 更好的商业支持及服务保障
  • KVM虚拟化技术:实战与原理解析》不仅系统介绍了KVM虚拟机的功能、特性和使用方法,而且还深入地剖析了KVM虚拟机的核心技术和工作原理,对KVM做了全面而透彻的讲解。
  • KVM虚拟化技术 实战与原理解析.pdf;KVM虚拟化技术 实战与原理解析.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,494
精华内容 14,597
关键字:

kvm虚拟化

友情链接: w5500_udp_tcp_test.zip