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中对宿主机的硬件处理器开启虚拟化。
然后进行宿主机的系统安装,这里就不详细介绍安装步骤了。
1.3 安装KVM
宿主机的操作系统安装完成后,并配置好网络,可以访问外网!
(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
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
只需要修改两个内容,其他内容不用修改。
修改ifcfg-ens33,注释掉IP配置信息,添加BRIDGE=br0即可。
重启network服务,
[aaa@qq.com ~]# systemctl restart network
#如果在终端工具上重启网卡,连接会断开,要去桌面系统重新启动一次network。
重启成功后,查看网卡
[aaa@qq.com ~]# brctl show
1.5 开始创建虚拟机
注意:创建虚拟机之前先查看一下是否将足够的磁盘空间交给KVM使用。
我第一次创建的时候,会报磁盘空间不够使用的错误,所有又加了一块硬盘到分区上。
具体如何给centos-root分区扩容,可以参考其他相关文档。
(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
(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目录,需要做一个软连接。
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会出现黑屏
(4)修改vncserver的配置文件
[aaa@qq.com ~]# vi /etc/systemd/system/aaa@qq.com:1.service
找到[Service]
将<User>改为root用户
(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
然后下面就是windows系统的安装
以下操作是在win10虚拟机上面!!!
到这里,虚拟机windows10系统就已经安装完成,下面使用物理机去远程连接到win10虚拟机。
首先要查看win10虚拟机的IP地址,
打开cmd->输入ipconfig /all->即可查看到虚拟机分配到的IP地址
我这里虚拟机的IP地址是192.168.1.101
要注意的几点:
win10虚拟机:要去开启远程权限,和关闭防火墙
右击我的电脑->属性->远程设置->远程-> 允许远程协助
以下操作是在物理机上面!!!
当物理机去远程连接的时候,如果提示内部错误,需要在cmd中执行netsh winsock reset 命令
这条命令主要作用是初始化网络环境。
四、远程连接测试
当执行命令之后,就可以成功的连接到虚拟机上。
上一篇: VMware虚拟机下Linux系统ping不通外网的解决办法
下一篇: Linux目录结构详解