目录
【1】kvm-01:安装-KVM管理工具
【2】创建新的虚拟机
【3】kvm常用管理命令
【4】console控制台登录
【5】修改虚拟机的密码
【6】KVM虚拟机的虚拟磁盘管理和快照管理
【7】将raw格式的磁盘挂载到宿主机
【8】磁盘的管理命令
【9】创建快照-内部快照
【10】查看虚拟机中的快照
【11】创建快照并起名称
【12】删除快照
【13】还原快照
【14】查看快照中的配置情况
【15】快照在宿主机的存放路径
【16】编辑、修改快照中的配置
【17】克隆虚拟机 - 完整克隆
【18】克隆虚拟机 - 连接克隆
【19】创建桥接网卡
【20】创建新的虚拟机的网络模式使用桥接模式
【21】将现有的虚拟机更改为桥接模式
【22】宿主机的网卡
【23】为什么创建的虚拟机,默认的网络是nat,网段会是122呢?
【24】冷添加网卡 - 备份配置文件或者 edit
【25】冷添加硬盘
【26】热添加硬盘
【27】硬盘格式化,挂载使用
【28】磁盘扩容
【29】热添加网卡
【30】热调整内存大小
【31】热添加CPU
【32】冷迁移技术
【33】热迁移技术
kvm-01
10.0.0.31
4G
cpu开启vt虚拟化
kvm-02
10.0.0.32
2G
cpu开启vt虚拟化
【1】kvm-01:安装-KVM管理工具
[root@kvm-01 ~]# lsmod | grep kvm
kvm_intel 170181 0
kvm 554609 1 kvm_intel
irqbypass 13503 1 kvm
[root@kvm-01 ~]# yum -y install libvirt qemu-kvm virt-install.noarch openssl
[root@kvm-01 ~]# systemctl start libvirtd.service
[root@kvm-01 ~]# systemctl enable libvirtd.service
https://mirror.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
### 把下载的镜像拉到虚拟机 ### 放到opt下
【2】创建新的虚拟机
建议创建的虚拟机的宿主机内存不要低于2G。否则会特别慢
下面使用命令的方式创建虚拟机,搭配vnc得到图形界面
[root@kvm-01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-test --memory 1024 --vcpus 1 --disk /opt/centos7-test.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Allocating 'centos2.raw' | 10 GB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
# --virt-type kvm :虚拟化类型kvm、qemu
# --os-type=linux :系统类型
# --os-variant rhel7 :系统版本
# --name centos7-test :虚拟机名称(唯一)
# --memory 1024 :虚拟机内存
# --vcpus 1 :CPU核数
# --disk /opt/centos2.raw,format=raw,size=10 :硬盘位置、格式、容量(唯一)
# --cdrom /opt/CentOS-7-x86_64-Minimal-1810.iso :使用的镜像文件
# --network network=default :默认网络
# --graphics vnc,listen=0.0.0.0 :vnc显示输出
# --noautoconsole
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test running
【3】kvm常用管理命令
# 查看运行中的虚拟机
[root@kvm-01 ~]# virsh list
Id Name State
----------------------------------------------------
# 查看所有存在的虚拟机
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test shut off
# 启动虚拟机
[root@kvm-01 ~]# virsh start centos7-test
Domain centos7-test started
[root@kvm-01 ~]# virsh list
Id Name State
----------------------------------------------------
2 centos7-test running
# 关机虚拟机
[root@kvm-01 ~]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
# 拔电源关机
[root@kvm-01 ~]# virsh destroy centos7-test
# 重启
[root@kvm-01 ~]# virsh reboot centos7-test
# 磁盘文件占用空间,创建的时候分配了10G,查看目前已使用
[root@kvm-01 ~]# du -smh /opt/*
1.4G /opt/centos2.raw
918M /opt/CentOS-7-x86_64-Minimal-1810.iso
# 磁盘空间分配的大小
[root@kvm-01 ~]# ll -h /opt/
total 2.3G
-rw------- 1 qemu qemu 10G Jul 14 00:44 centos2.raw
-rw-r--r-- 1 qemu qemu 918M Jul 13 08:42 CentOS-7-x86_64-Minimal-1810.iso
# 备份磁盘文件
[root@kvm-01 ~]# cp /opt/centos2.raw /backup/
# 配置文件备份
[root@kvm-01 ~]# virsh dumpxml centos7-test > kvm_centos7-test.xml
# 删除虚拟机,先关机在删除,删除后磁盘文件是不会被删除的注意
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test running
[root@kvm-01 ~]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 ~]# virsh undefine centos7-test
Domain centos7-test has been undefined
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
# 上面备份的配置文件,根据配置文件导入虚拟机
[root@kvm-01 ~]# ls
anaconda-ks.cfg kvm_centos7-test.xml
[root@kvm-01 ~]# virsh define kvm_centos7-test.xml
Domain centos7-test defined from kvm_centos7-test.xml
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test shut off
# 修改配置文件edit,如果修改了磁盘文件的名称,但是没有修改配置文件,启动虚拟机时他会找不到磁盘文件而报错
[root@kvm-01 ~]# virsh edit centos7-test
[root@kvm-01 opt]# mv centos7-test.raw centos7-test-7-14.raw
[root@kvm-01 opt]# virsh start centos7-test
error: Failed to start domain centos7-test
error: Cannot access storage file '/opt/centos7-test.raw': No such file or directory
[root@kvm-01 opt]# virsh edit centos7-test
[root@kvm-01 opt]# virsh start centos7-test
Domain centos7-test started
# 修改cpu的核数,很多时候修改了配置需要重启生效,reboot不管用
[root@kvm-01 opt]# virsh edit centos7-test
[root@kvm-01 opt]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 opt]# virsh start centos7-test
Domain centos7-test started
# 重命名,不能处于运行期间修改
[root@kvm-01 opt]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 opt]# virsh domrename centos7-test centos7-test-7-14
Domain successfully renamed
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# virsh start centos7-test-7-14
Domain centos7-test-7-14 started
# 挂起处于运行的虚拟机
[root@kvm-01 opt]# virsh suspend centos7-test-7-14
Domain centos7-test-7-14 suspended
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
8 centos7-test-7-14 paused
# 恢复被挂起的虚拟机,恢复后虚拟机的时间可能会落后
[root@kvm-01 opt]# virsh resume centos7-test-7-14
Domain centos7-test-7-14 resumed
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
8 centos7-test-7-14 running
# 建议虚拟机下载时间同步服务
[root@localhost ~]# yum -y instarll chrony
# 查询vnc端口号
[root@kvm-01 opt]# virsh vncdisplay centos7-test-7-14
:0
# 一个虚拟机相当于一个qemu进程
[root@kvm-01 opt]# ps -ef | grep qemu
# KVM 宿主机开机自动启动虚拟机,宿主机开机时只要启动了libvirtd服务,就会拉起虚拟机
[root@kvm-01 opt]# virsh autostart centos7-test-7-14
Domain centos7-test-7-14 marked as autostarted
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 查看虚拟机是否被设置开机自启,如果我们删除了autostart目录下的软连接就相当与关闭了开机自启
[root@kvm-01 opt]# ll -h /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 39 Jul 14 02:14 centos7-test-7-14.xml -> /etc/libvirt/qemu/centos7-test-7-14.xml
[root@kvm-01 opt]# rm -rf /etc/libvirt/qemu/autostart/centos7-test-7-14.xml
[root@kvm-01 opt]# virsh shutdown centos7-test-7-14
Domain centos7-test-7-14 is being shutdown
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# ln -s /etc/libvirt/qemu/centos7-test-7-14.xml /etc/libvirt/qemu/autostart/
[root@kvm-01 opt]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 39 Jul 14 02:23 centos7-test-7-14.xml -> /etc/libvirt/qemu/centos7-test-7-14.xml
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 第二种方式查看虚拟机是否被设置开机自启
[root@kvm-01 opt]# virsh list --autostart --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 取消开机自启、1:删除软连接 2:命令方式
[root@kvm-01 opt]# virsh autostart --disable centos7-test-7-14
Domain centos7-test-7-14 unmarked as autostarted
[root@kvm-01 opt]# virsh list --autostart --all
Id Name State
----------------------------------------------------
【4】console控制台登录
console:命令版的控制台
vnc:图形版的控制台
# 7系统的方式,在虚拟机中配置
[root@kvm-01 opt]# ssh root@192.168.122.75
root@192.168.122.75's password:
Last login: Fri Jul 14 13:57:14 2023 from gateway
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
Connection to 192.168.122.75 closed by remote host.
Connection to 192.168.122.75 closed.
[root@kvm-01 opt]#
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
[root@kvm-01 opt]# virsh console centos7-test-7-14
Connected to domain centos7-test-7-14
Escape character is ^]
ctrl+] 退出 、回车进入
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Fri Jul 14 14:33:14 from gateway
[root@localhost ~]#
[root@localhost ~]# ctrl + ] 退出 ,返回到宿主机界面
[root@kvm-01 opt]#
【5】修改虚拟机的密码
虚拟机中需要安装qemu-guest-agent
[root@kvm-01 opt]# ssh root@192.168.122.75
root@192.168.122.75's password:
Last login: Fri Jul 14 14:39:36 2023
[root@localhost ~]# ps -ef | grep qemu.guest_agent
root 3177 3104 0 14:53 pts/0 00:00:00 grep --color=auto qemu.guest_agent
[root@localhost ~]# yum -y install qemu-guest-agent
[root@localhost ~]# systemctl start qemu-guest-agent
[root@localhost ~]# systemctl enable qemu-guest-agent
[root@localhost ~]