KVM-虚拟机【安装与基础使用】

2025-09-11 02:08:22 | 世界杯足球价格

目录

【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

2

[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 ~]