欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

程序员文章站 2022-03-09 11:10:30
...

一、KVM安装

1.1 实验说明

本次实验环境是使用Vmware workstation创建centos7系统(安装GUI界面)。
在centos7宿主机上安装KVM环境,创建windows虚拟机。并通过物理机的远程连接工具去连接到windows虚拟机上。
本次实验需要的Vmware、vnc、win10的ISO镜像。

宿主机 客户机
centos7 windows10

1.2 开启虚拟化功能

首先在Vmware中对宿主机的硬件处理器开启虚拟化。
centos7部署KVM环境并创建、管理、远程连接到windows虚拟机
然后进行宿主机的系统安装,这里就不详细介绍安装步骤了。

1.3 安装KVM

宿主机的操作系统安装完成后,并配置好网络,可以访问外网!

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

(1)关闭防火墙
[aaa@qq.com ~]# systemctl stop firewalld
[aaa@qq.com ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

(2)关闭selinux
[aaa@qq.com ~]# setenforce 0

(3)查看宿主机是否支持虚拟化,当出现vmx时,说明支持虚拟化。如果没有任何的信息输出,说明你的CPU不支持虚拟化,将无法使用KVM虚拟机。
[aaa@qq.com ~]# grep vmx /proc/cpuinfo 

(4)通过yum安装wget下载工具
[aaa@qq.com ~]# yum install -y wget

(5)将系统默认的yum源备份
[aaa@qq.com ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

(6)通过wget下载aliyun的yum源
[aaa@qq.com ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

(7)通过aliyun的yum源安装epel源
[aaa@qq.com ~]# yum install -y epel=release

(8)清除yum
[aaa@qq.com ~]# yum clean all

(9)创建yum缓存
[aaa@qq.com ~]# yum makecache

(10)通过yum进行KVM及其KVM套件的下载和安装
[aaa@qq.com ~]# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager python-virtinst libvirt-client virt-viewer –y

(11)测试kvm是否安装成功
[aaa@qq.com ~]# stat /dev/kvm 
  File: ‘/dev/kvm’
  Size: 0               Blocks: 0          IO Block: 4096   character special file
Device: 5h/5d   Inode: 17314       Links: 1     Device type: a,e8
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (   36/     kvm)
Context: system_u:object_r:kvm_device_t:s0
Access: 2020-05-03 00:43:13.392460746 -0400
Modify: 2020-05-03 00:43:13.392460746 -0400
Change: 2020-05-03 00:44:57.538645393 -0400
 Birth: -

(12)测试libvirt是否可以正常启动
[aaa@qq.com ~]# systemctl restart libvirtd
[aaa@qq.com ~]# systemctl enable libvirtd

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

1.4 桥接网卡的制作

进行桥接网卡的制作,因为系统并不会自动生成一个桥接网卡。所以必须由我们自己动手创建一个桥接虚拟的网卡。查看宿主机的网卡,将宿主机的网卡进行虚拟机桥接网卡的绑定。比我的宿主机的网卡名字是ens33,将ifcfg-ens33复制现有网卡的配置文件,改名为ifcfg-br0.

[aaa@qq.com ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0
修改ifcfg-br0网卡
[aaa@qq.com ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0 
只需要修改两个内容,其他内容不用修改。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

修改ifcfg-ens33,注释掉IP配置信息,添加BRIDGE=br0即可。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

重启network服务,
[aaa@qq.com ~]# systemctl restart network
#如果在终端工具上重启网卡,连接会断开,要去桌面系统重新启动一次network。

重启成功后,查看网卡
[aaa@qq.com ~]# brctl show

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机
centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

1.5 开始创建虚拟机

注意:创建虚拟机之前先查看一下是否将足够的磁盘空间交给KVM使用。
我第一次创建的时候,会报磁盘空间不够使用的错误,所有又加了一块硬盘到分区上。
具体如何给centos-root分区扩容,可以参考其他相关文档。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

(1)检查是否加载KVM模块
[aaa@qq.com ~]# lsmod |grep kvm
kvm_intel             174841  0 
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm

(2)创建用于存放虚拟机的目录
[aaa@qq.com ~]# mkdir /kvm
[aaa@qq.com ~]# cd /kvm/
[aaa@qq.com kvm]# touch demo.xml
然后将windows的iso镜像上传到/kvm目录下
(3)给虚拟机划分硬盘空间作为虚拟机的硬盘,这里我给了20G空间
[aaa@qq.com kvm]# qemu-img create -f qcow2 test.qcow2 20G

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

(4)编辑demo.xml文件
[aaa@qq.com kvm]# vi demo.xml
<domain type='kvm'>
        <name>test_win10</name> //虚拟机名称
        <memory>1048576</memory> //最大内存,单位K
        <currentMemory>1048576</currentMemory> //可用内存,最好和上面的一致。
        <vcpu>2</vcpu> //虚拟CPU个数
        <os>
          <type arch='x86_64' machine='pc'>hvm</type>
          <boot dev='cdrom'/> 
       </os>
       <features>
         <acpi/>
         <apic/>
         <pae/>
       </features>
       <clock offset='localtime'/>
       <on_poweroff>destroy</on_poweroff>
       <on_reboot>restart</on_reboot>
       <on_crash>destroy</on_crash>
       <devices>
         <emulator>/usr/bin/kvm</emulator>
         <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
           <source file='/kvm/test.qcow2'/> //目的镜像路径
           <target dev='hda' bus='ide'/>
         </disk>
         <disk type='file' device='cdrom'>
           <source file='/kvm/win10.iso'/> //光盘镜像路径
           <target dev='hdb' bus='ide'/>
         </disk>
        <interface type='bridge'> //虚拟机网络连接方式
          <source bridge='br0'/> //当前主机网桥的名称
          <mac address="00:16:3e:5d:aa:a8"/> //为虚拟机分配mac地址,这个地址是唯一的,不能和其它虚拟机地址重复。
        </interface>
        <input type='mouse' bus='ps2'/>
         <graphics type='vnc' port='19' autoport='yes' listen = '0.0.0.0' keymap='en-us'/> //vnc方式登录,端口号自动分配
       </devices>
     </domain> 
demo.xml文件配置好之后,执行virsh define demo.xml命令
如果报错说找不到/usr/bin/kvm目录,需要做一个软连接。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

virsh list 就能查看到当前虚拟机的运行状态
virsh vncdisplay test_win10 查看虚拟机的端口号

二、vncserver的部署

2.1 准备环境

vnc是远程连接工具,所以需要图形化页面,如果你的宿主机系统的最小化安装的话,请下载图形化工具,
yum groups install "X Window System"或者yum groups install “GNOME Desktop”

2.2 安装步骤

(1)下载并安装vnc-server
[aaa@qq.com ~]# yum install tigervnc-server tigervnc vnc vnc-server

(2)拷贝vncserver的配置文件到系统配置文件目录中
[aaa@qq.com ~]# cp /lib/systemd/system/aaa@qq.com /etc/systemd/system/aaa@qq.com:1.service

(3)启动vncserver
password:设置vnc登录的密码
Verify: 再次确认密码
Would you like to enter a view-only password (y/n)? n             #注意表示"是否输入一个只能查看的密码,选择否",否则连接vnc会出现黑屏

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

(4)修改vncserver的配置文件
[aaa@qq.com ~]# vi /etc/systemd/system/aaa@qq.com:1.service 
找到[Service]<User>改为root用户

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

(5)启动配置文件
[aaa@qq.com ~]# systemctl daemon-reload
[aaa@qq.com ~]# systemctl enable aaa@qq.com:1.service

(6)设置登录密码,在设置完一遍时,提示设置第二遍,选择n。
[aaa@qq.com ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n             #注意表示"是否输入一个只能查看的密码,选择否",否则连接vnc会出现黑屏
A view-only password is not used

(7)启动vncserver
[aaa@qq.com ~]# systemctl start aaa@qq.com:1.service

(8)查看端口状态
netstat -lnt | grep 590*

(9)查看报错信息
grep vnc /var/log/messages

(10)到此为止vncserver就安装完成了

三、VNC连接虚拟机进行系统安装

3.1 安装步骤

进入到宿主机的桌面系统,执行vncviewer 宿主机IP地址:虚拟机的端口号,
[aaa@qq.com ~]# vncviewer 192.168.1.146:0

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

然后下面就是windows系统的安装

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

以下操作是在win10虚拟机上面!!!

到这里,虚拟机windows10系统就已经安装完成,下面使用物理机去远程连接到win10虚拟机。

首先要查看win10虚拟机的IP地址,
打开cmd->输入ipconfig /all->即可查看到虚拟机分配到的IP地址
我这里虚拟机的IP地址是192.168.1.101

要注意的几点:
win10虚拟机:要去开启远程权限,和关闭防火墙
右击我的电脑->属性->远程设置->远程-> 允许远程协助

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

以下操作是在物理机上面!!!

当物理机去远程连接的时候,如果提示内部错误,需要在cmd中执行netsh winsock reset 命令
这条命令主要作用是初始化网络环境。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机

四、远程连接测试

当执行命令之后,就可以成功的连接到虚拟机上。

centos7部署KVM环境并创建、管理、远程连接到windows虚拟机
centos7部署KVM环境并创建、管理、远程连接到windows虚拟机