1、先决条件
要运行带有2 GB以上RAM的guest虚拟机,您必须具有64位主机系统。 在继续安装之前,请确保您的Ubuntu主机支持KVM虚拟化。系统应具有带VT-x(vmx)的Intel处理器或具有AMD-V(svm)技术支持的AMD处理器
1.0查看cpu型号,物理cpu颗数
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c
1 Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c
1 address sizes : 43 bits physical, 48 bits virtual
1 physical id : 0 ###说明有一颗cpu,颗数是从0开始的
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c
1 Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c
1 address sizes : 43 bits physical, 48 bits virtual
1 physical id : 0 ###说明有一颗cpu,颗数是从0开始的
1.1查看内存
[root@kvm-node1 ~]# dmidecode|grep -A5 "Memory Device"|grep Size | cut -d: -f2 | sort -n | uniq -c
127 No Module Installed
63 1 kB
1 8 GB
1 8192 MB ###接了一根内存,每根内存的大小为8G
[root@kvm-node1 ~]# dmidecode|grep -A5 "Memory Device"|grep Size | cut -d: -f2 | sort -n | uniq -c
127 No Module Installed
63 1 kB
1 8 GB
1 8192 MB ###接了一根内存,每根内存的大小为8G
1.2处理器支持硬件虚拟化
grep -Eoc '(vmx|svm)' /proc/cpuinfo
如果CPU支持硬件虚拟化,则该命令将输出一个大于零的数字,即CPU核心的数量。否则,如果输出是,0则表示CPU不支持硬件虚拟化
在某些计算机上,制造商可能会在BIOS中禁用虚拟技术扩展
grep -Eoc '(vmx|svm)' /proc/cpuinfo
如果CPU支持硬件虚拟化,则该命令将输出一个大于零的数字,即CPU核心的数量。否则,如果输出是,0则表示CPU不支持硬件虚拟化
在某些计算机上,制造商可能会在BIOS中禁用虚拟技术扩展
要检查BIOS中是否启用了VT,请使用kvm-ok软件包中随附的工具。以超级用户或具有sudo特权的用户身份输入以下命令来安装cpu-checker包含该kvm-ok命令的软件包:
sql
sudo apt update
sudo apt install cpu-checker
sudo apt update
sudo apt install cpu-checker
安装完成后,检查您的系统是否可以运行硬件加速的KVM虚拟机:
undefined
kvm-ok
kvm-ok
如果未在BIOS中禁用处理器虚拟化功能,则输出将如下所示:
javascript
INFO: /dev/kvm exists
KVM acceleration can be used
INFO: /dev/kvm exists
KVM acceleration can be used
否则,该命令将打印,并显示一条失败消息以及关于如何启用扩展程序的一条可选消息。启用AMD-V或VT技术的过程取决于您的主板和处理器类型。请查阅主板文档,以获取有关如何配置系统BIOS的信息
2、安装
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
#检查是否安装成功
lsmod | grep kvm
#centos7
yum install -y qemu-kvm qemu-img qemu-kvm-tools virt-manager libvirt virt-install virt-viewer virt-v2v bridge-utils libguestfs-tools
libguestfs是用于访问和修改虚拟机的磁盘镜像的一组工具集合。libguestfs提供了访问和编辑客户机中的文件、脚本化修改客户机中的信息、监控磁盘使用和空闲的统计信息、P2V、V2V、创建客户机、克隆客户机、备份磁盘内容、格式化磁盘、调整磁盘大小等非常丰富的功能。
libguestfs-tools提供了很多工具,可以分别对应不同的功能和使用场景,如:
virt-ls用于列出虚拟机中的文件
virt-copy-in用于往虚拟机中复制文件或目录
virt-copy-out用于从虚拟机往外复制文件或目录
virt-resize用于调整磁盘大小
virt-cat用于显示虚拟机中的一个文件的内容
virt-edit用于编辑虚拟机中的文件
virt-df用于查看虚拟机中文件系统空间使用情况
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
#检查是否安装成功
lsmod | grep kvm
#centos7
yum install -y qemu-kvm qemu-img qemu-kvm-tools virt-manager libvirt virt-install virt-viewer virt-v2v bridge-utils libguestfs-tools
libguestfs是用于访问和修改虚拟机的磁盘镜像的一组工具集合。libguestfs提供了访问和编辑客户机中的文件、脚本化修改客户机中的信息、监控磁盘使用和空闲的统计信息、P2V、V2V、创建客户机、克隆客户机、备份磁盘内容、格式化磁盘、调整磁盘大小等非常丰富的功能。
libguestfs-tools提供了很多工具,可以分别对应不同的功能和使用场景,如:
virt-ls用于列出虚拟机中的文件
virt-copy-in用于往虚拟机中复制文件或目录
virt-copy-out用于从虚拟机往外复制文件或目录
virt-resize用于调整磁盘大小
virt-cat用于显示虚拟机中的一个文件的内容
virt-edit用于编辑虚拟机中的文件
virt-df用于查看虚拟机中文件系统空间使用情况
- qemu-kvm -为KVM管理程序提供硬件仿真的软件。
- libvirt-daemon-system -用于将libvirt守护程序作为系统服务运行的配置文件。
- libvirt-clients -用于管理虚拟化平台的软件。
- bridge-utils -一组用于配置以太网桥的命令行工具。
- virtinst -一组用于创建虚拟机的命令行工具。
- virt-manager -易于使用的GUI界面和支持命令行工具,用于通过libvirt管理虚拟机
2.0开机启动
# systemctl start libvirtd
# systemctl enable libvirtd
# systemctl list-unit-files |grep libvirtd.service //打印启动虚拟化和设置开机自启情况
# systemctl start libvirtd
# systemctl enable libvirtd
# systemctl list-unit-files |grep libvirtd.service //打印启动虚拟化和设置开机自启情况
2.1添加用户
#为了能够创建和管理虚拟机,您需要将用户添加到“ libvirt”和“ kvm”组中
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
$USER 是一个环境变量,其中包含当前登录用户的名称。
注销并重新登录,以便刷新组成员身份
#为了能够创建和管理虚拟机,您需要将用户添加到“ libvirt”和“ kvm”组中
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
$USER 是一个环境变量,其中包含当前登录用户的名称。
注销并重新登录,以便刷新组成员身份
2.2查看版本
#查看virsh的版本
[root@kvm-node1 ~]# virsh --version
4.5.0
#查看 virt-install工具的版本
[root@kvm-node1 ~]# virt-install --version
1.5.0
[root@kvm-node1 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@kvm-node1 ~]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.5), Copyright (c) 2003-2008 Fabrice Bellard
#查看qemu-kvm版本
[root@kvm-node1 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@kvm-node1 ~]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.5), Copyright (c) 2003-2008 Fabrice Bellard
#查看virsh的版本
[root@kvm-node1 ~]# virsh --version
4.5.0
#查看 virt-install工具的版本
[root@kvm-node1 ~]# virt-install --version
1.5.0
[root@kvm-node1 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@kvm-node1 ~]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.5), Copyright (c) 2003-2008 Fabrice Bellard
#查看qemu-kvm版本
[root@kvm-node1 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@kvm-node1 ~]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.5), Copyright (c) 2003-2008 Fabrice Bellard
2.3网桥
#centos7
#停用NetworkManager服务
#查看状态
systemctl status NetworkManager
#停止NetworkManager
systemctl stop NetworkManager
#关闭开机启动
systemctl disable NetworkManager
#创建br0网桥
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
#重启网络
systemctl restart network
#查看网桥
[root@kvm-node1 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c293ae6c4 no ens33
virbr0 8000.525400eb3239 yes virbr0-nic
#centos7
#停用NetworkManager服务
#查看状态
systemctl status NetworkManager
#停止NetworkManager
systemctl stop NetworkManager
#关闭开机启动
systemctl disable NetworkManager
#创建br0网桥
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
#重启网络
systemctl restart network
#查看网桥
[root@kvm-node1 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c293ae6c4 no ens33
virbr0 8000.525400eb3239 yes virbr0-nic