KVM的安装与使用

本文详细介绍了在Ubuntu 18.04上安装和配置KVM虚拟化环境的过程,包括安装KVM及相关工具,创建NAT和桥接网络的虚拟机,以及使用virsh命令管理虚拟机。此外,还涵盖了虚拟机的快速创建、配置修改、快照创建与恢复以及虚拟机迁移等操作。
摘要由CSDN通过智能技术生成

一、安装

/*
centos:
yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
*/

root@ubuntu18:~#apt install qemu-kvm virt-manager libvirt-daemon-system

root@ubuntu18:~# kvm-ok
KVM acceleration can be used

root@ubuntu18:~# ip a    //是否有虚拟桥接网络
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ab:34:40 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.10/24 brd 192.168.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feab:3440/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:bb:b2:87 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:bb:b2:87 brd ff:ff:ff:ff:ff:ff
    
root@ubuntu18:~# grep "192.168.122.1" /etc/libvirt/ -R
/etc/libvirt/qemu/networks/default.xml:  <ip address='192.168.122.1' netmask='255.255.255.0'>
/etc/libvirt/qemu/networks/autostart/default.xml:  <ip address='192.168.122.1' netmask='255.255.255.0'>

二、安装一台centos7.8

2.1、默认NAT网络

# 提前将centos7.8镜像上传过去
root@ubuntu18:~# ll /data/iso/
total 10033164
drwxr-xr-x 2 root root        4096 Nov  9 19:34 ./
drwxr-xr-x 4 root root        4096 Nov  9 19:33 ../
-rw-r--r-- 1 root root 10273947648 Nov  9 19:37 CentOS-7-x86_64-Everything-2003.iso


root@ubuntu18:~# ll /var/lib/libvirt/images/
total 8
drwx--x--x 2 root root 4096 Feb 19  2021 ./
drwxr-xr-x 7 root root 4096 Nov  9 19:07 ../

#创建一个格式为raw大小为10G的稀疏格式磁盘
root@ubuntu18:~# qemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G

#创建一个格式为raw大小为10G的裸磁盘
root@ubuntu18:~# qemu-img create -f raw /var/lib/libvirt/images/centos.raw 10G

root@ubuntu18:~# ll -h  /var/lib/libvirt/images/
total 204K
drwx--x--x 2 root root 4.0K Nov  9 19:18 ./
drwxr-xr-x 7 root root 4.0K Nov  9 19:07 ../
-rw-r--r-- 1 root root 193K Nov  9 19:17 centos.qcow2
-rw-r--r-- 1 root root  10G Nov  9 19:18 centos.raw

#创建默认网络虚拟机
virt-install \
  --virt-type kvm \
  --name centos7.8 \
  --ram 1024 \
  --vcpus 2 \
  --cdrom=/data/iso/CentOS-7-x86_64-Everything-2003.iso \
  --disk path=/var/lib/libvirt/images/centos.qcow2 \
  --network network=default \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole

接下来开始进行安装

2.2、桥接网络

//宿主机设置桥接网卡,桥接网卡为br0
root@ubuntu18:/etc/libvirt/qemu# vim /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
            dhcp4: no
            dhcp6: no
  bridges:
          br0:
                  dhcp4: no
                  dhcp6: no
                  addresses: [192.168.10.10/24]
                  gateway4: 192.168.10.2
                  nameservers:
                    addresses: [223.5.5.5, 180.76.76.76]
                  interfaces:
                          - ens33

//centos:
# vim ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.18.200.101
NETMASK=255.255.0.0
GATEWAY=172.18.0.1
DNS1=172.18.0.1

# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

//安装的策略
virt-install \
  --virt-type kvm \
  --name centos7-bridge \
  --ram 1024 \
  --vcpus 1 \
  --cdrom=/data/iso/CentOS-7-x86_64-Everything-2003.iso \
  --disk path=/var/lib/libvirt/images/centos3.qcow2 \
  --network bridge=br0 \               //使用刚刚创建的br0
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole

三、使用

创建完毕,5900端口关闭,所以第一次需要手动开启虚拟机,然后就可以在使用5900去操作

3.1、virsh常用命令

点击查看这个博主的文章

virsh --help                                     #查看命令帮忙

virsh list                                       #显示正在运行的虚拟机

virsh list --all                                 #显示所有的虚拟机

virsh start vm-node1                             #启动vm-node1虚拟机

virsh shutdown vm-node1                          #关闭vm-node1虚拟机

virsh destroy vm-node1                           #虚拟机vm-node1强制断电

virsh suspend vm-node1                           #挂起vm-node1虚拟机

virsh resume vm-node1                            #恢复挂起的虚拟机

virsh undefine vm-node1                          #删除虚拟机,慎用

virsh dominfo vm-node1                           #查看虚拟机的配置信息

virsh domiflist                                  #查看网卡配置信息

virsh domblklist vm-node1                        #查看该虚拟机的磁盘位置

virsh edit vm-node1                              #修改vm-node1的xml配置文件

virsh dumpxml vm-node1                           #查看KVM虚拟机当前配置

virsh dumpxml vm-node1 > vm-node1.bak.xml        #备份vm-node1虚拟机的xml文件,原文件默认路径/etc/libvirt/qemu/vm-node1.xml

virsh autostart vm-node1                         #KVM物理机开机自启动虚拟机,配置后会在此目录生一个软连接/etc/libvirt/qemu/autostart/vm-node1.xml

virsh autostart --disable vm-node1               #取消开机自启动
root@ubuntu18:~# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     centos7.8                      running

root@ubuntu18:~# virsh start centos7.8
Domain centos7.8 started

四、快速创建虚拟机

使用copy的方式直接拷贝一个新的虚拟机

root@ubuntu18:~# cd /var/lib/libvirt/images/

root@ubuntu18:/var/lib/libvirt/images# ls
centos.qcow2  centos.raw      //之前使用centos.qcow2创建的一个虚拟机

root@ubuntu18:/var/lib/libvirt/images# cp centos.qcow2 centos2.qcow2

/*
virt-install \
  --virt-type kvm \
  --name centos2 \
  --ram 1024 \
  --vcpus 1 \
  --cdrom=/data/iso/CentOS-7-x86_64-Everything-2003.iso \
  --disk path=/var/lib/libvirt/images/centos2.qcow2 \
  --network network=default \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole
*/

root@ubuntu18:/var/lib/libvirt/images# virt-install \
>   --virt-type kvm \
>   --name centos2 \
>   --ram 1024 \
>   --vcpus 1 \
>   --cdrom=/data/iso/CentOS-7-x86_64-Everything-2003.iso \
>   --disk path=/var/lib/libvirt/images/centos2.qcow2 \
>   --network network=default \
>   --graphics vnc,listen=0.0.0.0 \
>   --noautoconsole

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

//然后等待他到安装的时候,不要安装。直接宿主机关机,然后开机就直接可以用了。
root@ubuntu18:/etc/libvirt/qemu# virsh list
 Id    Name                           State
----------------------------------------------------
 1     centos2                        running

root@ubuntu18:/etc/libvirt/qemu# virsh shutdown centos2
Domain centos2 is being shutdown

root@ubuntu18:/etc/libvirt/qemu# virsh start centos2
Domain centos2 started

五、修改虚拟机配置

root@ubuntu18:/etc/libvirt/qemu# cd /etc/libvirt/qemu/

root@ubuntu18:/etc/libvirt/qemu# ls
centos2.xml  centos7.8.xml  networks

//直接修改
root@ubuntu18:/etc/libvirt/qemu# vim centos2.xml
里面找到虚拟修改的配置,然后更改

//官方建议以下更改方式
root@ubuntu18:/etc/libvirt/qemu# virsh edit centos2

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 2
Domain centos2 XML configuration not changed.


root@ubuntu18:/etc/libvirt/qemu# virsh define centos2.xml 
Domain centos2 defined from centos2.xml

六、快照的创建与恢复

6.1、创建

root@ubuntu18:~# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos2                        shut off
 -     centos7-bridge                 shut off
 -     centos7.8                      shut off

root@ubuntu18:~# virsh snapshot-create-as centos7-bridge init-centos7-bridge
Domain snapshot init-centos7-bridge created

root@ubuntu18:~# virsh snapshot-list centos7-bridge
 Name                 Creation Time             State
------------------------------------------------------------
 init-centos7-bridge  2021-11-11 13:18:44 +0800 shutoff

root@ubuntu18:~# virsh snapshot-info centos7-bridge init-centos7-bridge
Name:           init-centos7-bridge
Domain:         centos7-bridge
Current:        yes
State:          shutoff
Location:       internal
Parent:         -
Children:       0
Descendants:    0
Metadata:       yes

6.2、恢复

root@ubuntu18:~# virsh snapshot-revert centos7-bridge init-centos7-bridge

七、虚拟机迁移

需求:从一台机器迁移到另一台机器。(冷迁移,因为热迁移需要nfs共享qcow2磁盘,硬件不好严重影响性能)

//就是拷贝两个文件到另一台机器
scp /etc/libvirt/qemu/rocky8-template.xml  10.0.0.101:/etc/libvirt/qemu/

//查看对应的磁盘路径
virsh domblklist rocky8-template

scp /var/lib/libvirt/images/rocky8-template.qcow2 10.0.0.101:/var/lib/libvirt/images
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KVM(Kernel-based Virtual Machine)是一种开源的虚拟化解决方案,它允许在Linux操作系统上创建和管理虚拟机。下面是KVM虚拟机的安装使用步骤: 1. 确认系统支持虚拟化:首先要确保使用的CPU支持虚拟化技术,并且已启用虚拟化扩展。可以通过在终端运行命令`egrep -c '(vmx|svm)' /proc/cpuinfo`来检查CPU是否支持虚拟化,如果返回值大于0,则表示支持。 2. 安装KVM软件包:使用包管理器安装KVM软件包。在基于Debian的系统上,可以使用以下命令进行安装: ``` sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ``` 3. 配置网络桥接:KVM使用网络桥接来实现虚拟机与物理网络的通信。可以通过编辑`/etc/network/interfaces`文件来配置桥接网络。添加以下行来创建一个桥接接口: ``` auto br0 iface br0 inet dhcp bridge_ports eno1 # 将eno1替换为物理网卡名称 ``` 保存并关闭文件后,执行`sudo service networking restart`来重新启动网络服务。 4. 创建虚拟机:使用virt-manager或者virsh命令行工具来创建和管理虚拟机。virt-manager是一个图形化的管理工具,可以通过以下命令安装: ``` sudo apt-get install virt-manager ``` 安装完成后,可以在应用程序菜单中找到virt-manager并打开它。通过界面创建虚拟机,选择适当的操作系统镜像、内存和存储配置等。 5. 启动和管理虚拟机:可以使用virt-manager或者virsh命令来启动和管理虚拟机。在virt-manager中,右键单击虚拟机并选择“Start”来启动虚拟机。在命令行中,可以使用以下命令来启动虚拟机: ``` virsh start [虚拟机名称] ``` 其他常用的virsh命令包括`virsh list`(列出虚拟机)、`virsh shutdown [虚拟机名称]`(关闭虚拟机)等。 这是KVM虚拟机的基本安装使用步骤,你可以根据自己的需求进一步了解和配置KVM。如果有任何问题,欢迎继续提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值