Linux桌面虚拟化技术--KVM
文章目录
- 虚拟化概念
- 为什么要使用虚拟化
- KVM安装以及使用
- virsh常用命令
- 磁盘格式转换
- 快照管理
- 虚拟机克隆
- 虚拟机的网络连接模式
- 磁盘热添加、扩容
- 热添加网卡
- 热添加内存
- 热添加CPU
- kvm热迁移
- esxi虚拟机迁移至kvm
虚拟化概念
虚拟化是一种资源管理技术,它是将计算机应硬件资源抽象、转换后呈现出来,它打破了实体结构空间不可切割的障碍,使用户可以比原本的组态以更好的方式来使用这些资源,常用的应用虚拟化方式有:
完全虚拟化:虚拟机模拟完整的底层硬件环境和特权指令的执行过程。代表软件有VMware Workstation、VirtualBox、qemu等
硬件辅助虚拟化:利用硬件辅助,比如Intel的intel-VT和AMD的AMD-V,来支持和处理敏感指令来实现完全虚拟化的功能。代表软件有VMware Workstation、Xen和本章所讲的KVM。
操作系统级虚拟化:内核通过创建多个虚拟机的操作系统实例来隔离不同的进程。比如Docker以及其它相关的容器技术。
为什么要使用虚拟化
- 提高现有资源的利用率。通过整合服务器资源,将共用的基础架构资源聚合起来,它打破了传统的“一台服务器一个应用程序”模式。
- 提高桌面的可管理性和安全性。目前大多数计算机都支持部署、管理和安全监视安全桌面环境,无论否能连接到网络,用户都可以在本地或远程的方式对这种环境进行访问。
- 提高硬件和应用程序的可用性,进而提高业务连续性。可安全地实现备份、迁移整个虚拟环境下而不会出现业务中断。
- 通过缩减物理基础架构和提高服务器/管理员比率,降低数据中心成本:由于服务及相关IT硬件更少,因此减少了占地空间,也减少了电力和散热需求。
- 实现了运营灵活性 :由于采用动态资源管理,加快了服务器部署并改进了桌面和应用程序部署,因此可响应市场的变化。
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相关推荐
- Linux桌面虚拟化技术KVM
内容: • 虚拟化产品对比介绍 • 安装 KVM • 实戓 1:配置 KVM 网络桥接功能 • 实戓 2:使用 KVM 安装虚拟机 虚拟化产品对比介绍 vmware KVM rhel6_x64 xen ...
- Linux 桌面虚拟化技术 KVM
KVM:是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度 ...
- Linux桌面虚拟化技术-KVM
一. KVM概述 KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的 ...
- 桌面虚拟化技术 KVM
Linux 桌面虚拟化技术 KVM KVM: 是指基于Linux 内核的虚拟机(Kernel-based Virtual Machine).是第一个整合到 Linux 内核的虚拟化技术.在 KVM 模 ...
- linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令
(1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...
- Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机
(1).虚拟化产品对比介绍 虚拟化技术有以下三种:仿真虚拟化,这是一种对系统硬件没有要求,但性能最低的虚拟化技术:半虚拟化,这是一种直接使用物理硬件,性能高,但需要修改内核的虚拟化技术:全虚拟化,这是 ...
- 新一代的桌面虚拟化技术
第二代桌面虚拟化技术 第一代技术实现了远程操作和虚拟技术的结合,降低的成本使得虚拟桌面技术的普及称为可能,但是影响普及的并不仅仅是采购成本,管理成本和效率在这个过程中也是非常重要的一环. 纵观IT技术 ...
- 虚拟化技术KVM的搭建
2019独角兽企业重金招聘Python工程师标准>>> KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.K ...
- 虚拟化技术KVM和XEN概述
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计 ...
最新文章
- JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...
- 全国计算机等级考试python教材-全国计算机等级考试重大改革!新增Python科目
- web下拉列表代码_你做的Excel下拉菜单已Out,更好用的多列显示来了
- python3+requests:get/post请求
- ionic@2.0 beta版本安装指南
- 记录kafka踩坑:marking the coordinator (id rack null) dead for group
- linux_shell_根据网站来源分桶
- 机器人的自述作文_机器人的自述作文600字
- 大家都在用这个神器分析数据,而你还只会Excel表头过滤?
- 1.5 案例:多项式曲线拟合的比较
- Kettle Spoon 安装配置详解
- 推荐 DBeaver 数据库管理工具 PD数据库建模
- Catching Both Gray and Black Swans: Open-set Supervised Anomaly Detection(捕捉灰天鹅和黑天鹅:开放集监督异常检测)
- 软文发布时标题怎么写,这几点值得注意!
- mysql 1114错误_mysql – ERROR 1114(HY000):表’XXX’已满
- 排除AP无法上线原因
- 让站群排名稳步上升的策略
- iOS 将状态栏设置成白色
- javaScript学习笔记(六)面向对象
- Excel从身份证提取出生年月的几种方法