Linux环境安装KVM虚拟机

文章目录

1.安装前检查

1.1.查看CPU是否支持VT
cat /proc/cpuinfo | egrep 'vmx|svm'

结果显示有vmx或者svm就表示支持虚拟化技术,否则需要进入系统BIOS中设置CPU开启虚拟化。
在这里插入图片描述

1.2.关闭防火墙和selinux
systemctl stop firewalld
setenforce 0

2.安装kvm

2.1.安装kvm
## 1.安装kvm
yum install -y qemu-kvm libvirt virt-install bridge-utils
## 2.重启系统
init 6
2.2.验证kvm安装是否成功
virsh -c qemu:///system list

结果显示如下界面,表示kvm安装成功
在这里插入图片描述

2.3.加载kvm模块
## 加载kvm模块
modprobe kvm

## 检查模块是否加载成功,执行如下命令
lsmod |grep kvm

如果显示两行,说明模块正确加载
在这里插入图片描述

3.启动kvm服务

## 1.启动libvirtd守护进程
systemctl start libvirtd
## 2.查看是否启动成功
systemctl status libvirtd

下面显示 active running表示启动成功,到这里我们的kvm就安装启动成功了。
在这里插入图片描述

4.安装虚拟机系统

4.1.创建镜像和虚拟机存放路径

存放路径可以根据自己的想法设置,我这里放在了当前用户目录下。

## 1.创建存放iso镜像文件目录
mkdir -p /home/weihua/data/kvm/iso

## 2.创建虚拟机安装位置
mkdir -p /home/weihua/data/kvm/kvmStory
4.2.同时给ios、虚拟机存放路径执行权限
## 如果不赋予执行权限,下面执行安装虚拟机命令时会报错提示打开iso和虚拟机存放路径没有权限无法安装虚拟机
chmod -R 777 /home/weihua
4.3.打开root执行权限
vim /etc/libvirt/qemu.conf

将user=root 和 group=root 的注释去掉。
在这里插入图片描述

4.4.安装虚拟机命令

我们使用 iso方式安装系统,所以需要提前准备系统的iso文件放到我们创建好的目录下,例如:/home/weihua/data/kvm/iso
执行下面的命令就可以启动系统的安装过程了。

virt-install \
--virt-type=kvm \
--name=centOS7 \
--vcpus=2 \
--memory=2048 \
--location=/home/weihua/data/kvm/iso/CentOS-7-x86_64-Minimal-1804.iso \
--disk path=/home/weihua/data/kvm/kvmStory/centOS7.qcow2,size=15,format=qcow2 \
--network bridge=virbr0 \
--graphics none \
--extra-args='console=tty0 console=ttyS0' \
--force

参数说明

--name=kvm-1   虚拟机名字为kvm-1
--vcpus=2        2个虚拟CPU核心
--memory=2048      2G内存
--disk path=/data/vms/kvm-1.qcow2,size=15,format=qcow2   虚拟机硬盘文件所在目录及名字,大小为15G,格式为qcow2,此参数会自动生成该硬盘文件在对应目录
--network bridge=virbr0    虚拟机桥接用的网卡,不一定是这个名字,在母机上用ifconfig查看实际名字
4.5.进入安装过程界面

这里的安装设置和界面安装Linux设置是一样的,叹号的都是需要我们手动设置项。
在这里插入图片描述

4.6.设置系统语言
  • 在上面的界面按下 1 进入下面的语言设置页面
  • 输入68为中文语言,按下回车键
  • 输入1 为简体中文,按下回车键
    在这里插入图片描述
4.7.设置时区

-进入时区设置界面
在这里插入图片描述

  • 选择Asia(亚洲) 选择shanghai 时区
    在这里插入图片描述
4.8.选择安装路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.9.创建root密码

在这里插入图片描述

  • 输入密码
    在这里插入图片描述
  • 输入yes确认
    在这里插入图片描述
4.10.开始安装系统

在这里插入图片描述

  • 安装系统完成
    在这里插入图片描述
4.X 配置kvm日志
  • 编辑文件/etc/libvirt/libvirtd.conf
#将日志级别设置为 1(调试)
log_level = 3
#指定日志输出文件名称
log_outputs="3:file:/var/log/libvirt/libvirtd.log"
  • 日志级别对应的数字
    注意 :libvirtd. 日志文件可能会飞速增长。 用户应配置logrotate ,否则您的 /var 文件系统最后会装满内容
    1 debug
    2 info
    3 warn
    4 error
    5 fatal
  • 配置文件生效
libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf
  • 查看virsh管理qemu虚拟机的信息
    log在目录/var/log/livirt/qemu/ 下面,具体的log文件名与虚拟机名字关联

5.kvm虚拟机常用操作

5.0.连接和退出虚拟机
## 重新连接虚拟机
virsh console虚拟机名称
## 断开虚拟机连接
同时按Ctrl+]
5.1.查看所有虚拟机状态
virsh list --all
5.2.查看指定虚拟机状态
virsh domstate 虚拟机名称
5.3.手动启动虚拟机
virsh start 虚拟机名称
5.4.手动关闭虚拟机
virsh shutdown 虚拟机名称
5.5.手动重启虚拟机
virsh reboot 虚拟机名称
5.6.手动挂起和恢复虚拟机
## 挂起虚拟机
virsh suspend 虚拟机名称
## 恢复虚拟机
virsh resume 虚拟机名称
5.7.断电关闭虚拟机
## 这种关闭虚拟机为非正常关闭虚拟机方式,相当于直接断掉电源。强制关闭,
##不到万不得已的时候不要用这种方式关闭虚拟机
virsh destroy 虚拟机名称
5.8.设置随宿主机启动(开机启动虚机)
## 当宿主机开机后自动开启虚拟机
virsh autostart 虚拟机名称
5.9.取消开机启动
virsh autostart --disable 虚拟机名称
5.10.删除虚拟机
virsh undefine 虚拟机名称
5.11.备份虚拟机配置文件
virsh dumpxml 虚拟机名称 > /home/vpsbak/虚拟机名称_back.xml
5.12.编辑虚拟机配置文件
## 配置文件位置是/etc/libvirt/qemu
virsh edit 虚拟机名称
5.13.虚拟机迁移宿主机(复制虚拟机到新的宿主机运行)
## 1.备份虚拟机配置文件
virsh dumpxml 虚拟机名称 > /home/vpsbak/虚拟机名称.xml

## 2.关机,迁移配置文件和磁盘文件,配置文件路径是 /etc/libvirt/qemu
scp /home/vpsbak/centos6.xml  root@192.168.6.3:/etc/libvirt/qemu/
scp /home/vpsdata/vps/centos6.qcow2  root@192.168.0.3:/data/vpsdata/vps
##3.激活虚拟机配置文件
virsh define /etc/libvirt/qemu/centos6.xml
5.14.显示虚拟机的信息
virsh dominfo 虚拟机名称
5.15.显示虚拟机的UUID
virsh domuuid 虚拟机名称
5.16.获取虚拟机的ID
## 根据虚拟机名称得到ID
virsh domid 虚拟机名称

## 根据ID得到虚拟机名称
virsh domname ID
5.17.显示虚拟机的状态
virsh domstate 虚拟机名称
5.18.返回虚拟机的状态ok or error
virsh domcontrol 虚拟机名称
5.19.编辑虚拟机的配置文件,可调整内存、CPU等配置
[root@dell720 qemu]# virsh edit centOS7 

<domain type='kvm'>
  <name>centOS7</name>
  <uuid>eec806bd-88c3-461d-9ec6-330ecf5faafd</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Haswell-noTSX-IBRS</model>
    <feature policy='require' name='md-clear'/>
    <feature policy='require' name='spec-ctrl'/>
    <feature policy='require' name='ssbd'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/home/chenglong/kvmData/centOS7.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
    </controller>
5.20.虚拟机添加qcow2磁盘
  • 1.查看磁盘大小与磁盘格式
## 查看磁盘大小,磁盘格式,磁盘文件位置
 virsh edit 虚拟机名称

在这里插入图片描述

    1. 查看硬盘格式信息
qemu-img info /var/lib/libvirt/images/虚拟机名称.qcow2
  • 3.添加一块qcow2磁盘
qemu-img create -f qcow2 test01_add.qcow2 2G
  • 4.将新增的磁盘文件添加到虚拟机
virsh edit generic
##添加如下内容:
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/var/lib/libvirt/images/test01_add.qcow2'/>
  <target dev='hdc' bus='ide'/>
</disk>
  • 5.启动虚拟机,分区、格式化、挂载磁盘

5.21.修改虚拟机内存和CPU容量

virsh edit centOS7
## 修改下面内存和CPU参数保存即可
<name>centOS7</name>
  <uuid>eec806bd-88c3-461d-9ec6-330ecf5faafd</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>

6.配置虚拟机网卡信息

6.1.显示网卡接口
virsh domiflist 虚拟机名称

在这里插入图片描述

6.2.获取网卡实时发包信息
 virsh domifstat 虚拟机名称 vnet0
6.3.配置桥接模式
  • 1 关闭NetworkManager
## 1.查看NetworkManager是否启动
service NetworkManager status
##如果启动则执行下面面命令关闭
chkconfig NetworkManager off
service NetworkManager stop
  • 2.本机网卡配置信息查看
## 1.查看当前连接宿主机IP地址对应的网卡接口名称
 ifconfig

我的网卡接口名称是em1
在这里插入图片描述

  • 3.修改本机网卡配置添加桥接网卡接口
## 1.进入网卡配置路径
cd  /etc/sysconfig/network-scripts
## 2.查看配置文件
ll
##3.找到上面第二步查看到的em1网卡接口名称对应的配置文件

在这里插入图片描述

  • 4.修改配置文件
## 1.进入到网卡配置路径
cd /etc/sysconfig/network-scripts/

##2.备份当前网卡文件信息
cp ifcfg-em1 ./ifcfg-em1.back

##3.创建桥接网卡命令
virsh iface-bridge em1 br0

##4.查看网卡列表中新增了br0网卡
ll /etc/sysconfig/network-scripts/ifcfg-*

-rw-r--r--  1 root root  76 Sep 28 19:43 /etc/sysconfig/network-scripts/ifcfg-br0
-rw-r--r--  1 root root  39 Sep 28 19:43 /etc/sysconfig/network-scripts/ifcfg-em1
  • 6.重启网卡
service network restart
  • 7.查看网卡是否新增了br0网络信息
## 1.出现br0网卡接口名称即为br0创建成功
brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4437e64a62ad       no              eth0

## 2.查看br0 网卡信息
ifconfig

显示br0网卡信息即为配置成功,到这里宿主机的网络配置就全部完成了。下面配置虚拟机的网络信息。
在这里插入图片描述

  • 8.分别查看em1和br0网卡文件信息如下
    查看em1网卡信息
    在这里插入图片描述
    查看br0网卡信息
    在这里插入图片描述
  • 8.1配置虚拟机桥接网络
    关闭正在运行的虚拟机
## 1.查看虚拟机是否在运行
virsh list --all
## 2.如果运行则执行下面的命令关闭虚拟机
virsh destroy 虚拟机名称

1.修改虚拟机网卡配置信息

virsh edit 虚拟机名称

向下查看配置文件直到 interface配置位置
修改前显示type类型是network
在这里插入图片描述
修改后类型为bridge
在这里插入图片描述
注意:如果用上面 virsh edit 命令编辑后提示下面的信息,可以用另一种方式编辑。
在这里插入图片描述
执行下面的命令和上面命令效果是一样的都是修改同一个文件。

## 1.进入下面的目录
/etc/libvirt/qemu
## 2.修改虚拟机的配置文件
vim 虚拟机名称.xml
## 3.修改内容和上面一样
<interface type='bridge'>
      <mac address='52:54:00:84:1d:dc'/>
      <source network='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
  • 8.2.启动虚拟机
virsh start 虚拟机名称

9.VNC连接虚拟机配置网卡信息
网络改为桥接网卡
在这里插入图片描述

  • 9.2.双击进入虚拟机配置页
    在这里插入图片描述
  • 9.3.修改网卡为桥接模式 br0
    在这里插入图片描述
  • 9.4.页面滚动到底部选择Applay使之生效
## 1.进入网卡配置路径
cd /etc/sysconfig/network-scripts/
## 2.修改网卡信息
只需要添加下面有注释的几行即可
vim  ifcfg-eth0
## 3.修改如下信息
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # static是静态IP
IPADDR=110.16.88.111  # 同宿主机在一个网段的IP地址即可
NETMASK=255.255.255.0  # 同宿主机网段
GATEWAY=110.16.88.1  # 同宿主机网关相同
DNS1=110.16.8.200  # 同宿主机DNS相同
DNS2=110.16.8.300
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=bc392963-1308-4e4a-8da8-34805d8f1af5
DEVICE=eth0
ONBOOT=yes
  • 9.5.关闭虚拟机网络管理服务
#查看网络管理服务是否启动
systemctl status NetworkManager
显示active (running)就是启动状态
NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since \u4e8c 2020-09-29 10:41:17 CST; 6min ago
     Docs: man:NetworkManager(8)
 Main PID: 553 (NetworkManager)
   CGroup: /system.slice/NetworkManager.service
           \u2514\u2500553 /usr/sbin/NetworkManager --no-daemon

# 关闭网络管理服务
systemctl stop NetworkManager
  • 9.6.重启虚拟机网卡
systemctl restart network
## 查看IP地址是否生效
ifconfig

-9.7.验证宿主机与虚拟机是否可连接

# 在宿主机上ping 虚拟机的地址
ping 110.16.88.111

#结果显示宿主机与虚拟机连通
PING 110.16.88.111 (110.16.88.111) 56(84) bytes of data.
64 bytes from 110.16.88.111: icmp_seq=1 ttl=64 time=0.406 ms
64 bytes from 110.16.88.111: icmp_seq=2 ttl=64 time=0.292 ms

7.快照管理

7.1.创建快照
virsh snapshot-create-as 虚拟机名称 快照名称
7.2.查看快照
virsh snapshot-list 虚拟机名称
7.3.恢复快照
virsh snapshot-revert 虚拟机名称 快照名称
7.4.显示快照信息
virsh snapshot-info 虚拟机名称 快照名称
7.5.删除快照
virsh snapshot-delete 虚拟机名称 快照名称

8.虚拟机克隆

本地虚拟机克隆
  • 1.现有本地虚拟机需要先停止
virsh shutdown 虚拟机名称
  • 2.查看本地虚拟机是否停止
## 显示shut off 即为停止
virsh domstate 虚拟机名称
  • 3.执行克隆操作,使用磁盘文件vm1.img
## 获取克隆虚拟机详细参数  virt-clone --help
## -f 表示新虚拟机磁盘文件存放位置
virt-clone -o 虚拟机名称 -n 新虚拟机名称 -f /data/image/vm1.img
  • 4.查看虚拟机的配置文件
## 1.进入到下面的目录
/etc/libvirt/qemu目录下可以看到新虚拟机的xml配置文件
## 2.如果需要可以修改配置文件中的虚拟机的主机名称和内存、CPU参数
virsh edit 克隆的虚拟机名称

在这里插入图片描述

  • 5.启动虚拟机
## 查看所有虚拟机
virsh list --all
## 启动虚拟机
virsh start 虚拟机名称
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐