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

本文详细介绍了KVM虚拟机的安装、创建、管理命令、控制台登录、磁盘管理、快照操作、网络配置、克隆技术、热添加硬件以及迁移技术。内容包括安装KVM管理工具、创建虚拟机、使用桥接网卡、修改虚拟机密码、管理磁盘快照以及进行冷热迁移等。
摘要由CSDN通过智能技术生成

目录

【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
      <source file='/opt/centos7-test-7-14.raw'/>
      
[root@kvm-01 opt]# virsh start centos7-test 
Domain centos7-test started

# 修改cpu的核数,很多时候修改了配置需要重启生效,reboot不管用
[root@kvm-01 opt]# virsh edit centos7-test
  <vcpu placement='static'>2</vcpu>
  
[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 ~]# ps -ef | grep  qemu.guest_agent
root      3185     1  0 14:54 ?        00:00:00 /usr/bin/qemu-ga --method=virtio-serial --path=/dev/vi
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦有一把琐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值