文章目录

  • 虚拟化概念
  • 为什么要使用虚拟化
  • KVM安装以及使用
    • virsh常用命令
    • 磁盘格式转换
    • 快照管理
    • 虚拟机克隆
    • 虚拟机的网络连接模式
    • 磁盘热添加、扩容
    • 热添加网卡
    • 热添加内存
    • 热添加CPU
    • kvm热迁移
    • esxi虚拟机迁移至kvm

虚拟化概念

虚拟化是一种资源管理技术,它是将计算机应硬件资源抽象、转换后呈现出来,它打破了实体结构空间不可切割的障碍,使用户可以比原本的组态以更好的方式来使用这些资源,常用的应用虚拟化方式有:
完全虚拟化:虚拟机模拟完整的底层硬件环境和特权指令的执行过程。代表软件有VMware Workstation、VirtualBox、qemu等
硬件辅助虚拟化:利用硬件辅助,比如Intel的intel-VT和AMD的AMD-V,来支持和处理敏感指令来实现完全虚拟化的功能。代表软件有VMware Workstation、Xen和本章所讲的KVM。
操作系统级虚拟化:内核通过创建多个虚拟机的操作系统实例来隔离不同的进程。比如Docker以及其它相关的容器技术。

为什么要使用虚拟化

  1. 提高现有资源的利用率。通过整合服务器资源,将共用的基础架构资源聚合起来,它打破了传统的“一台服务器一个应用程序”模式。
  2. 提高桌面的可管理性和安全性。目前大多数计算机都支持部署、管理和安全监视安全桌面环境,无论否能连接到网络,用户都可以在本地或远程的方式对这种环境进行访问。
  3. 提高硬件和应用程序的可用性,进而提高业务连续性。可安全地实现备份、迁移整个虚拟环境下而不会出现业务中断。
  4. 通过缩减物理基础架构和提高服务器/管理员比率,降低数据中心成本:由于服务及相关IT硬件更少,因此减少了占地空间,也减少了电力和散热需求。
  5. 实现了运营灵活性 :由于采用动态资源管理,加快了服务器部署并改进了桌面和应用程序部署,因此可响应市场的变化。

KVM安装以及使用

KVM全称为kernel-based Virtual Machine,即基于内核的虚拟机,它不需要额外使用专门的内核,因此性能相较于早之前的Xen性能更好,兼容性更强。
下载kvm软件

yum install -y libvirt virt-* qemu-kvm

安装一台kvm虚拟机

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 2048 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=20 --cdrom /opt/rhel-server-7.3-x86_64-dvd.iso  --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

各参数含义:

--virt-type   #虚拟化的类型
--os-type=   #系统类型
--os-variant  #系统版本
--name    #虚拟机的名称
--memory   #指定内存大小
--disk    #磁盘格式、大小等相关配置。format=row|qcow2,其中row格式占用空间较大,不支持快照功能,但性能较好,不方便传输;qcow2占用空间小,支持快照,性能相对row差,方便传输
--cdrom  #系统镜像路径
--network=default  #default为nat模式
--graphics vnc     #需要下载vnc软件对kvm虚拟机安装操作系统

virsh常用命令

list 列出正在运行的虚拟机 ,list --all列出所有
start 开启虚拟机
shutdown 关闭虚拟机
destroy 暴力关机
dumpxml 导出配置文件 。virsh dumpxml centos7 >/opt/centos7.xml
undefine 移除虚拟机,如果未开机状态执行shutdown会将虚拟机的配置文件删除导致虚拟机也被删除,建议destroy后在undefine
define 导入配置文件。virsh define /opt/centos7.xml
edit 自带语法检查的编辑,virsh edit web
domrename 对虚拟机名称重命名。virsh domrename centos7 web
suspend 将虚拟机设为挂起状态
resume 恢复虚拟机状态
vncdisplay 显示虚拟机的vnc端口
  • kvm开启console控制台登录:
grubby --update-kernel=ALL --args="console=ttyS0"
reboot

磁盘格式转换

qemu-img info test.raw #查看磁盘信息
qemu-img create -f raw oldboy.qcow2 10G  #创建一块qcow2格式的虚拟磁盘
qemu-img convert -f raw(原格式) -O qcow2(输出格式) test.row(源磁盘路径文件) test.qcow2  #raw转qcow ,virsh edit web(名称) 改type处和source file处,重启kvm虚拟机生效

快照管理

virsh snapshot-create web(名称)
virsh snapshot-list web
virsh snapshot-revert web --snapshotname 1590506570(恢复快照到这个,恢复快照必须关闭虚拟机)
virsh snapshot-delete web --snapshotname 1590506570(删除这份快照)

row格式占用空间较大,不支持快照功能,但性能较好,不方便传输;qcow2占用空间小,支持快照,性能相对row差,方便传输。

虚拟机克隆

1.创建完整克隆
virt-clone --auto-clone -o(old老的) web -n(new新的) web2
##也可以拷贝磁盘文件在生成一份配置文件(注意:如果原来的磁盘文件拍有快照可能导致克隆后的虚拟机起不来)
copy web.raw web2.raw
<name>web2</name>
删掉<uuid></uuid>这行,让它重新生成新的UUID。也可以用uuid-gen -r直接生成
删掉<mac address=''/>这行,会自动生成新的mac地址
2.创建连接克隆
##基于源磁盘文件,创建链接磁盘文件
qemu-img create -f qcow2 -b web.qcow2 web2.qcow2
virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024 --vcpus 1 --disk /opt/web2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

虚拟机的网络连接模式

NAT模式(网络地址转换)原理图:

在NAT模式下除了宿主机以外其余的任何网络是不能与kvm虚拟机通信的,如果我们在kvm虚拟机上部署了希望用户能够访问的服务,那么此时就需要用到桥接的模式,桥接模式原理图如下:

配置桥接模式:

#创建一块用于桥接的网卡br0
virsh iface-bridge eth0 br0
virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024 --vcpus 1 --disk /opt/web2.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
#取消桥接网卡配置
virsh iface-unbridge br0

把之前不是桥接模式的kvm虚拟机配置成桥接模式只需在配置文件对应地方修改为:

<interface type='bridge'>
<mac address='52:54:00:82:70:a9'/><source  bridge='br0'/>

然后重启虚拟机即可。

磁盘热添加、扩容

#创建一块虚拟磁盘
qemu-img create -f qcow2 c7.qcow2 5G
#临时挂载 [永久挂载]
virsh attach-disk centos7(名称)  c7.qcow2 vdb --subdriver qcow2  [--config]
格式化之后mount上去即可使用
#扩容
umount /dev/vdb /opt   //扩容之前避免数据损坏先卸载
qemu-img resize c7.qcow2 +10G
mount /dev/vdb /opt     //重新挂载
xfs_growfs /opt      //生效
#对根分区扩容:先删除原来分区的分区表在重新分区,然后重启,最后xfs_growfs /即可
fdisk /dev/vda
reboot
xfs_growfs /

热添加网卡

virsh attach-interface web04 --type bridge --source br0 --model virtio
detach-interface web04 --type bridge --mac 52:54:00:67:21:cf

热添加内存

virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024,maxmemory=2048 --vcpus 1 --disk /opt/web2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#临时生效
setmem web2 1024 --live
#永久生效
setmem web2 1024 --config

热添加CPU

virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024,maxmemory=2048 --vcpus 1,maxvcpus=3 --disk /opt/web2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
setvcpus web2 3 --live
setvcpus web2 3 --config

kvm热迁移

kvm虚拟机主要分为两部分:磁盘文件和配置文件,通常情况下磁盘文件是越大的迁移所花费的时间就越长,要实现快速迁移kvm虚拟机可以通过共享存储(文件系统)来实现,只需要把虚拟机的磁盘文件放在共享目录上再挂载在我们指定的–disk路径即可。

#挂载
mount -t nfs 192.168.1.20:/data /opt
cp web2.qcow2 /opt/
#从磁盘启动
virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024,maxmemory=2048 --vcpus 1,maxvcpus=3 --disk /opt/web2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#迁移
virsh migrate --live web2 qemu+ssh://192.168.1.20/system --unsafe
#图形界面操作
yum install -y "GNOME Desktop" tigervnc-server virt-manager
#启动vnc服务
vncserver:1

esxi虚拟机迁移至kvm

先在esxi导出虚拟机为ova格式再上传至kvm宿主机。然后:
virt-v2v -i ova test.ova(本地的) -o local -os /v2v -of qcow2
mv /v2v/test-sda /v2v/test.qcow2
#执行安装
virt-install --virt-type kvm --os-type=linux --os-variant=rhel7 --name web2 --memory=1024,maxmemory=2048 --vcpus 1,maxvcpus=3 --disk /opt/web2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Linux桌面虚拟化技术--KVM相关推荐

  1. Linux桌面虚拟化技术KVM

    内容: • 虚拟化产品对比介绍 • 安装 KVM • 实戓 1:配置 KVM 网络桥接功能 • 实戓 2:使用 KVM 安装虚拟机 虚拟化产品对比介绍 vmware KVM rhel6_x64 xen ...

  2. Linux 桌面虚拟化技术 KVM

    KVM:是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度 ...

  3. Linux桌面虚拟化技术-KVM

    一. KVM概述 KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的 ...

  4. 桌面虚拟化技术 KVM

    Linux 桌面虚拟化技术 KVM KVM: 是指基于Linux 内核的虚拟机(Kernel-based Virtual Machine).是第一个整合到 Linux 内核的虚拟化技术.在 KVM 模 ...

  5. linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    (1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...

  6. Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机

    (1).虚拟化产品对比介绍 虚拟化技术有以下三种:仿真虚拟化,这是一种对系统硬件没有要求,但性能最低的虚拟化技术:半虚拟化,这是一种直接使用物理硬件,性能高,但需要修改内核的虚拟化技术:全虚拟化,这是 ...

  7. 新一代的桌面虚拟化技术

    第二代桌面虚拟化技术 第一代技术实现了远程操作和虚拟技术的结合,降低的成本使得虚拟桌面技术的普及称为可能,但是影响普及的并不仅仅是采购成本,管理成本和效率在这个过程中也是非常重要的一环. 纵观IT技术 ...

  8. 虚拟化技术KVM的搭建

    2019独角兽企业重金招聘Python工程师标准>>> KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.K ...

  9. 虚拟化技术KVM和XEN概述

    虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计 ...

最新文章

  1. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...
  2. 全国计算机等级考试python教材-全国计算机等级考试重大改革!新增Python科目
  3. web下拉列表代码_你做的Excel下拉菜单已Out,更好用的多列显示来了
  4. python3+requests:get/post请求
  5. ionic@2.0 beta版本安装指南
  6. 记录kafka踩坑:marking the coordinator (id rack null) dead for group
  7. linux_shell_根据网站来源分桶
  8. 机器人的自述作文_机器人的自述作文600字
  9. 大家都在用这个神器分析数据,而你还只会Excel表头过滤?
  10. 1.5 案例:多项式曲线拟合的比较
  11. Kettle Spoon 安装配置详解
  12. 推荐 DBeaver 数据库管理工具 PD数据库建模
  13. Catching Both Gray and Black Swans: Open-set Supervised Anomaly Detection(捕捉灰天鹅和黑天鹅:开放集监督异常检测)
  14. 软文发布时标题怎么写,这几点值得注意!
  15. mysql 1114错误_mysql – ERROR 1114(HY000):表’XXX’已满
  16. 排除AP无法上线原因
  17. 让站群排名稳步上升的策略
  18. iOS 将状态栏设置成白色
  19. javaScript学习笔记(六)面向对象
  20. Excel从身份证提取出生年月的几种方法

热门文章

  1. 计算机基础及office办公软件应用,计算机基础及Office办公软件应用.pptx
  2. linux 默认路由 主机路由 网络路由
  3. 原生js实现数据双向绑定
  4. GeoServer + openlayers
  5. 【web】React-hooks
  6. %d, %ld, %lld 区别
  7. 使用Android studio开发一个数独游戏APP 系列第一讲
  8. python3手动配置环境变量
  9. KNIME Python Integration安装配置指南
  10. 蓝牙触摸板键盘延迟卡顿断连的问题