Linux环境安装KVM虚拟机
Linux环境安装KVM虚拟机1.安装前检查1.1.查看CPU是否支持VTcat /proc/cpuinfo | egrep 'vmx|svm'结果显示有vmx或者svm就表示支持虚拟化技术,否则需要进入系统BIOS中设置CPU开启虚拟化。1.2.关闭防火墙和selinuxsystemctl stop firewalldsetenforce 02.安装kvm2.1.安装kvm## 1.安装kvmy
Linux环境安装KVM虚拟机
文章目录
- Linux环境安装KVM虚拟机
- 1.安装前检查
- 2.安装kvm
- 3.启动kvm服务
- 4.安装虚拟机系统
- 5.kvm虚拟机常用操作
- 5.0.连接和退出虚拟机
- 5.1.查看所有虚拟机状态
- 5.2.查看指定虚拟机状态
- 5.3.手动启动虚拟机
- 5.4.手动关闭虚拟机
- 5.5.手动重启虚拟机
- 5.6.手动挂起和恢复虚拟机
- 5.7.断电关闭虚拟机
- 5.8.设置随宿主机启动(开机启动虚机)
- 5.9.取消开机启动
- 5.10.删除虚拟机
- 5.11.备份虚拟机配置文件
- 5.12.编辑虚拟机配置文件
- 5.13.虚拟机迁移宿主机(复制虚拟机到新的宿主机运行)
- 5.14.显示虚拟机的信息
- 5.15.显示虚拟机的UUID
- 5.16.获取虚拟机的ID
- 5.17.显示虚拟机的状态
- 5.18.返回虚拟机的状态ok or error
- 5.19.编辑虚拟机的配置文件,可调整内存、CPU等配置
- 5.20.虚拟机添加qcow2磁盘
- 5.21.修改虚拟机内存和CPU容量
- 6.配置虚拟机网卡信息
- 7.快照管理
- 8.虚拟机克隆
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 虚拟机名称
-
- 查看硬盘格式信息
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 虚拟机名称
更多推荐
所有评论(0)