VMWare+Ubuntu+KVM+VNC虚拟机安装配置

时间:2024-03-25 10:59:21

实操安装时,查阅了很多资料,下面这篇博文很适合在windows上装了 Vmware workstation,再在workstation上装Ubuntu,再在Ubuntu上安装KVM的学习者。

1. 宿主机环境搭建

在本文中的宿主机不是使用的物理主机,而是利用vmware虚拟处理的宿主机,也就是说宿主机是配置是vmware+ubuntu16,系统的安装就不详细介绍网上相应的文档较多,下面主要介绍一下vmware+Ubuntu16要作为虚拟机的宿主机环境主机需要注意的一些简单事项:

1.1 虚拟机的配置

1.1.1 为了让vmware作为宿主机能支持虚拟化,必须在vmware配置里面开启虚拟化功能,配置如下图所示,如图所示必须在虚拟机的处理器选择里面将”Intel VT-x/EPT或AMD-V/RVI”选项打勾。并且将网络适配器修改为桥接模式。
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

1.2 Ubuntu16系统的安装
Ubuntu系统的安装网上教程多,不再重复介绍。

1.3 验证Ubuntu系统是否支持虚拟化
通过使用grep vmx /proc/cpuinfo查看系统是否支持虚拟化,如果结果中出现vmx等关键词,说明了系统是可以支持虚拟化的,如下图所示。
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

2. KVM安装

一般在Ubuntu中都有kvm的支持,也就是说可以通过默认的安装软件进行安装,在Ubuntu中的默认的安装图软件是apt-get,一般新安装的系统的apt-get的知识库还没有更新,建议先更新然后再查看是否有现成的安装包。

2.1 更新apt-get知识库
建议再刚安装完了Ubuntu系统之后更新一下知识库,使用apt-get update可以完成更新,如果更新速度慢或者是默认源访问不了,建议替换源为国内的源,网上有相应的教程。

2.2 查看是否具有现成的安装包
更新完了相应的知识库之后,可以通过命令apt-cache search kvm|grep kvm查看是否有相应的默认的安装包,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
2.3 安装KVM以及QEMU的安装
通过查看apt的知识库,可以看到知识库中包含了KVM和QEMU的安装包,所以使用apt-get命令就可以自动完成安装。
首先安装KVM,由于KVM是内核中的一个模块,所以安装完成之后需要查看内核是否加载了KVM模块,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
然后安装QEMU,并查看QEMU相关的包是否安装完成,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
至此KVM和QEMU安装完毕了,那么也就是说用于虚拟化的软件已经完成了安装,但是如何高效的对相应的虚拟化的软件进行使用以及相应虚拟机的管理呢,下面将安装相应的虚拟机管理软件。
2.4 libvirt和virsh的安装
同理,libvirt和virsh的安装也是通过查看apt-cache中是否有相应安装包,然后通过apt-get install命令安装,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
virsh的安装
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
至此虚拟机和虚拟机管理软件都安装好,下一步是要虚拟机的安装和运行

2.4 配置桥接网络
为了能使得后面虚拟机的安装能被宿主机所在局域网的其他机器访问,所有需要在宿主机配置桥接网络,这样虚拟机通过桥接网络就可以分配到宿主机所在局域网的IP地址了,那么虚拟机也就可以被访问了,配置如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置
配置好了之后使用ifconfig命令可以查看配置之后的网络情况,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

到现在桥接网络已经配置完成了,那么接下来就是虚拟机的安装了

3. 虚拟机的创建、安装、远程连接

3.1 虚拟机的配置文件
在本篇文章中,虚拟机的创建是通过虚拟机配置文件创建的,配置文件的内容如下所示:<domain type='kvm'>
<name>ubuntu14</name>
<uuid>f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type>hvm</type> // 配置虚拟机的启动方式
<boot dev='cdrom'/> // 如果为虚拟机安装系统,那么配置此选项
<boot dev='hd'/> // 虚拟机的系统已经安装完成,启动系统配置此选项
<bootmenu enable='yes'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<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="/home/muhong/vm/img/ubuntu.qcow2"/>
<target dev="vda" bus="virtio"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
</disk>
<disk type="file" device="cdrom"> // 配置系统的iso文件的路径(绝对路径)
<driver name="qemu" type="raw"/>
<source file="/home/muhong/ubuntuimage/ubuntu-14.04.5-server-amd64.iso"/>
<target dev="hdc" bus="ide"/>
<readonly/>
<address type="drive" controller="0" bus="1" target="0" unit="0"/>
</disk>
<interface type='bridge'>
<source bridge='br0'/> // 宿主机的桥接网络的名称
<mac address="00:0c:29:b6:24:9c"/> // 这个地址是虚拟机的物理地址
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<controller type="ide" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
</controller>
<input type='mouse' bus='ps2'/> // vnc远程连接的控制
<graphics type='vnc' port='-1' autoport="yes" listen='0.0.0.0'/>
<console type='pty'>
<target port='0'/>
</console>
</devices>
</domain>

3.2 启动虚拟机
当编写好了虚拟机的配置文件之后,然后就是创建虚拟机的实例了,虚拟机的创建以及虚拟机实例的查看如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

3.3 VNC虚拟机连接
当虚拟机的实例创建好了之后,可以通过vnc软件连接到虚拟机,此时虚拟机中的系统还没有安装,所以使用vnc连接之后可以完成系统的安装,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

当vnc连接到了虚拟机之后,就可以进系统的安装了,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

3.3 连接虚拟机
当通过vnc完成了虚拟机系统的安装之后,重新启动虚拟机,查看虚拟机的ip地址,然后就可以在宿主机的其他机器*问虚拟机系统了,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

至此虚拟机已经安装完成了,但是没有办法通过virsh shutdown关闭虚拟机,这是因为新安装的虚拟机的系统中没有电源管理驱动,所以在连接上虚拟机之后安装虚拟机电源管理驱动程序,如下图所示:
VMWare+Ubuntu+KVM+VNC虚拟机安装配置

总结

理论和实践相结合,首先了解虚拟机的原理,然后了解虚拟软件,然后了解虚拟机管理软件,然后就更上层的虚拟机调度……更上层的就是openstack相关的东西。
总的来说kvm和qemu就是虚拟软件,负责创建和运行虚拟机,但是却不能很方便的管理多个虚拟机的实例,为了更加方便的管理虚拟机,所有出现了libvirt和virsh等函数库和相应的命令行工具,但是虚拟机得应用起来,所以说又有了更上层的东西,openstack这一套就是起着这个作用。
接下来我将继续学习openstack相关的东西,并将openstack的各个组件依次安装应用,层层的分解学习。