CentOS下的KVM虚拟机
in Linux with 0 comment
CentOS下的KVM虚拟机
in Linux with 0 comment

kvm-logo.png
我有一台破旧的笔记本,说烂也不烂,配置还行,Intel I5 2代的CPU,8G内存,装了个CentOS跑各种服务,365天不停机服务(不折腾的情况下)。最近想要在上面安装KVM,装个Win Server 2012做windows装机服务器,为此还特地重装了系统。

虚拟化支持


首先确认机器是否支持虚拟化,其实现在的CPU基本都支持

lscpu | grep Virtualization
Virtualization:        VT-x #代表支持Intel的VT技术

安装KVM程序


yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
systemctl enable libvirtd
systemctl start libvirtd

确认模块是否加载


lsmod | grep -i kvm

有输出kvm的内容即可,我用VMware测试的时候,需要重启一次虚拟机。

配置网络桥接


brctl show
virsh net-list

这个命令对我来说没什么用,virsh net-dumpxml default可以看到默认出给创建了一个私有网络,只能虚拟机间通信。
正常情况下是创建一个虚拟网卡br0,然后将物理网卡桥接到这个虚拟网卡br0,然后在创建虚拟机的时候将网卡桥接到br0上面,这样虚拟机的网卡和br0都能获取到和宿主机之前同样的一个网段。
动态获取IP的虚拟网卡br0配置如下:

DEVICE="br0"
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"

然后修改物理网卡配置

vim /etc/sysconfig/network-scripts/ifcfg-enp5s0

在最后面加一条BRIDGE=br0
然后重启系统,用ifconfig看看,有br0接口。然后用brctl show查看,是桥接到物理网卡上面的

br0             8000.5404a6abbfef       no              enp5s0

创建虚拟机

以windows server 2012 R2为例

virt-install \
--virt-type=kvm \
--name windows \
--ram 2048 \
--vcpus=1 \
--os-variant=windows \
--cdrom=/home/Data/OS/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso  \
--disk /home/Data/OS/virtio-win-0.1.126_amd64.vfd,device=floppy \
--network bridge=br0,model=virtio \
--graphics vnc \
--disk path=/home/Data/kvm/win2k12r2.qcow2,size=30,bus=scsi,format=qcow2

参数解释:

--name 指定虚拟机的名称
--ram 指定Virtual Machine
--disk的内存量path = xxx,size = xxx
'path ='⇒指定虚拟机
size ='⇒指定虚拟机的磁盘数量
--vcpus 指定虚拟CPU
--os-type 指定GuestOS 的类型
--os-variant 指定GuestOS的类型 - 可能确认列表中使用以下命令osinfo-query os
--network 指定虚拟机的网络类型
--graphics 指定图形的类型。如果设置为“无”,则意味着非图形。
--console 指定控制台类型
--location 指定安装的位置,其中from
--extra-args 指定在内核中设置的参数

为什么会有--disk /home/Data/OS/virtio-win-0.1.126_amd64.vfd,device=floppy这条命令?是因为KVM创建windows虚拟机是找不到磁盘的,要额外加上驱动,以软驱的方式加载,方便在安装系统的时候可以手动选择加载驱动下载地址 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
装完后移除镜像和软驱,编辑/etc/libvirt/qemu/目录下的虚拟机同名xml文件,找到如下内容<disk type='file' device='floppy'><disk type='file' device='cdrom'>并移除!
2018-10-24_221256.png
然后重启虚拟机就不会有镜像文件和软驱加载进来了。

一些常用的命令


virsh list --all #列出所有虚拟机
virsh dominfo vmName #获取虚拟机信息
virsh shutdown/start VM #关闭/开启虚拟机
virsh autostart VM #设置虚拟机随KVM自动启动
virsh reboot VM #安全软重启
virsh reset VM #重置虚拟机

删除虚拟机

virsh shutdown VM
virsh undefine VM
virsh pool-destroy VM

记得命令完成后删除对应的磁盘文件

可能遇到的问题

参考文章1
参考文章2
参考文章3
参考文章4

The article has been posted for too long and comments have been automatically closed.