KVM虚拟化

kvm实验

环境准备,我这里使用虚拟机进行模拟,先设定好虚拟化


image.png

进入系统查看是否支持虚拟化

[root@kvm ~]# lsmod |grep kvm
kvm_intel             174841  0 
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm

KVM:Kernel-based Virtual Machine

安装需要的软件和下载镜像:

yum install libvirt virt-install qemu-kvm -y 

libvirt 作用:虚拟机的管理软件
virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具
qemu-kvm qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

自行下载一个centos7的镜像,我本地有镜像所以不需要下载

[root@kvm opt]# ll
total 171008
-rw-r--r-- 1 root root 175112192 Nov 25  2018 CentOS-7-x86_64-DVD-1804.iso

因为我的实验机是最小化安装的,要想实现图形化界面需要安装桌面,如果不想安装桌面可以下载vnc到windows桌面上待会备用

先启动一个虚拟机

[root@kvm opt]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm opt]# ps -ef |grep 5900
root       5151   1940  0 20:46 pts/0    00:00:00 grep --color=auto 5900

命令详解:
--virt-type kvm 虚拟化的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字
--memory 1024 虚拟机的内存
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1804.iso
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0 图形界面用vnc输出
--noautoconsole

这样可以直接连接vnc


image.png

kvm虚拟机的virsh日常管理和配置命令

列表list(--all)
开机start
关机shutdown
拔电源关机destroy
重命名domrename (低版本不支持)
挂起suspend
恢复resume
查询vnc端口号vncdisplay
导出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml
删除undefine 推荐:先destroy,在undefine
导入配置define
修改配置edit(自带语法检查)

低版本修改虚拟机名字操作流程

先停掉虚拟机 virsh shutdwon centos7
备份配置文件 virsh dumpxml centos7 >web01.xml
删除虚拟机 virsh undefine centos7
修改配置文件 vim web01.xml <name>web01</name>,删掉uuid
导入虚拟机 virsh define web01.xml

虚拟机优化

当虚拟机挂起或者恢复后时间后出现不一致,所以需要做好时间同步
创建虚拟机系统时取消swap节省内存

虚拟机开机自启

开机启动autostart,前提:systemctl enable libvirtd;
取消开机启动autostart --disable
查看哪些虚拟机设置了开机自启:
当设置了开启自启后在/etc/libvirt/qemu/autostart/下会存在一个软连接

[root@kvm opt]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 29 Apr  3 22:28 centos7.xml -> /etc/libvirt/qemu/centos7.xml

qemu下命令

查看虚拟磁盘信息
qemu-img info test.qcow2
创建一块qcow2格式的虚拟硬盘:
qemu-img create -f qcow2 test.qcow2 2G
调整磁盘磁盘容量
qemu-img resize test.qcow2 +20G

把raw格式转换为qcow2格式

raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用2G
qcow2:cow (copy on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G

  • 1.先关闭要修改的虚拟机web01
virsh destroy web01
  • 2.查看虚拟机运行状态
virsh list --all
  • 3.确定关闭后执行转换命令
qemu-img convert -f raw -O qcow2 /data/web01.raw /data/web01.qcow2
 >格式示例qemu-img convert [-f fmt]   [-O output_fmt]    filename     output_filename
  • 4.修改web01配置文件
virsh edit web01

[root@oldboy data]# virsh dumpxml web01|grep 'qcow2'
      <driver name='qemu' type='qcow2'/>
      <source file='/data/web01.qcow2'/>
  • 5.重新启动web01,看是否可正常启动
virsh start web01 

快照

raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中

  • 创建快照virsh snapshot-create-as centos7 --name install_ok

--name 指定快照名字

  • 查看快照virsh snapshot-list centos7

  • 还原快照virsh snapshot-revert centos7 --snapshotname 1516574134

  • 删除快照virsh snapshot-delete centos7 --snapshotname 1516636570

虚拟机克隆

kvm虚拟机:磁盘文件 + 配置文件

  • 完整克隆
    克隆命令:virt-clone --auto-clone -o web01 -n web02(完整克隆)

参数解释:
-o 指定要克隆的机器
-n 被克隆的机器

  • kvm链接克隆
    a.基于源磁盘文件,创建链接磁盘文件
    qemu-img create -f qcow2 -b web02.qcow2 web03.qcow2
    b:生成虚拟机的配置文件
    virsh dumpxml web02 >web03.xml
    virsh define web03.xml
    virsh start web03
    c:导入虚拟机并进行启动测试
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
    全自动链接克隆方法:强哥博客

kvm虚拟机网络

默认的虚拟机网络是NAT模式,网段192.168.122.0/24,但是只能被内网访问,要想被外网也访问到,要使用桥接模式

  • 默认NAT模式
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
  • 桥接模式
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

kvm虚拟机实现桥接模式

1:创建桥接网卡
virsh iface-bridge eth0 br0
在使用此命令后会生成新的网卡信息,原eth0网卡信息也同时变更

取消桥接网卡
virsh iface-unbridge br0
2:测试虚拟机网络
创建一台使用桥接模式的虚拟机进行测试是否可以正常连接外网

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name test --memory 1024 --vcpus 1 --disk /data/test.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

修改已创建的虚拟机的网络模式,需要修改配置文件内的网络类型记名称

virsh edit centos7

    <interface type='bridge'>
      <mac address='52:54:00:55:aa:fa'/>
      <source bridge='br0'/>

在宿主机上,重启虚拟机生效

热添加技术

kvm虚拟机在线热添加硬盘
先创建一块准备添加的硬盘
qemu-img create -f qcow2 add01.qcow2 5G
临时生效
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver=qcow2

永久生效
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver qcow2 --config

作业3:扩容kvm虚拟机的根分区

kvm虚拟机在线热添加网卡
kvm虚拟机在线热添加内存
kvm虚拟机在线热添加cpu

虚拟机磁盘扩容:
在kvm虚拟机,卸载
virsh detach-disk centos7 vdb
qemu-img resize /data/centos7-add01.qcow2 +5G
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2

在虚拟机中:xfs_growfs /dev/vdb

根分区扩容:
1)在宿主机上关闭虚拟机并调整虚拟机磁盘大小
qemu-img resize oldboy.qcow2 +10G

2)虚拟机中fdisk重新分区
fdisk /dev/vda

3)重启之后,执行xfs_growfs /dev/vda1,
如果虚拟机磁盘文件系统是ext4:resize2fs /dev/vda1

kvm虚拟机在线热添加网卡

virsh attach-interface web04 --type bridge --source br0 --model virtio
detach-interface web04 --type bridge --mac 52:54:00:35:d3:71

kvm虚拟机在线热添加内存

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

临时热添加内存
setmem web04 1024M --live
永久增大内存
setmem web04 1024M --config

kvm虚拟机在线热添加cpu

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热添加cpu核数
setvcpus web04 4 --live
永久添加cpu核数
setvcpus web04 4 --config

11:virt-manager和kvm虚拟机热迁移(共享的网络文件系统)

冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享

1):
yum groupinstall "GNOME Desktop" -y
yum install openssh-askpass -y

yum install tigervnc-server -y

vncpasswd
vncserver :1
vncserver -kill :1

2):kvm虚拟机热迁移
1:两边的环境(桥接网卡)
2:实现共享存储(nfs)
3:虚拟机桥接网络
4:在线热迁移

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容

  • 一.虚拟机的创建 1.添加镜像到本地(利用rz命令) mkdir /iso上传镜像到/iso下,PS:虚拟机创建镜...
    平_方阅读 2,210评论 0 0
  • 以下使用都基于Centos7.2进行的操作 流程: 1、开启虚拟化技术 2、下载KVM相关组件 3、建立(系统安装...
    天夭夭阅读 1,838评论 0 2
  • CentOS6.5 安装KVM虚拟机 vnc安装 因为安装系统还是需要图形界面去进行相关操作的,所以我们先配置一个...
    Evil_cosey阅读 809评论 0 1
  • KVM 维护常用命令 kvm虚拟机的配置文件位置:/etc/libvirt/qemu 修改虚拟机的相关配置sudo...
    Kim9501阅读 1,601评论 0 0
  • 相信大家的身边肯定遇到过老实人吧,老实是什么呢?很多人都会把老实和木讷,懦弱,自卑,没心眼,不聪明,只会...
    哑然x失笑阅读 423评论 4 0