Linux实现KVM+QEMU+libvirt的虚拟机环境并使⽤virsh对虚拟机进⾏管理
说明:
本⽂使⽤的实验环境是运⾏在windows10上的Vmware workstation 12.5 pro,宿主机操作系统是Ubuntu16(机器名称为
KVM_test),kvm+qemu+libvirt安装在KVM_test上。运⾏在KVM_test上的客户机操作系统也是Ubuntu16(机器名称为
test_ubuntu)。
本实验需要的软件有Vmware workstation、vnc viewer、ubuntu16的ios镜像。Vnc viewer需要注册码,请⾃⾏百度查。
本实验所有的操作和⽂件均是放置在/home/joe/的⽬录下。如果使⽤其他⽬录,请⾃⾏适当更改后⾯所出现的命令。**
实验步骤:
⾸先需要在Vmware中安装好宿主机KVM_test,注意要在(虚拟机设置->硬件->处理器)⾥打开虚拟化,如下图箭头所指。宿主机的安装不是本实验的重点,在此不做过多赘述。
安装完成宿主机之后,最好先检查⼀下是否能够联⽹,因为之后需要下载安装KVM-qemu和libvirt。
检查完成后在终端中使⽤命令lsmod | grep kvm,查看硬件是否⽀持辅助虚拟化。(如果之前没有在虚拟机设置中打开虚拟化的话这⾥可能看不到任何信息)。如有图中信息表⽰cpu⽀持硬件辅助虚拟化。
接下来我们需要安装qemu-kvm,使⽤命令ubuntu网络配置
sudo apt-get install qemu-kvm
安装qemu-kvm的软件包,由于软件源的原因可能需要⽐较长的时间。
安装完qemu之后,我们要安装libvirt,使⽤命令:
sudo apt-get install libvirt-bin
libvirt,同样等待⼀段时间后,安装成功。
安装完libvirt之后,我们需要安装virt-install
使⽤命令
sudo apt-get install virtinst
安装完成后我们就完成了初期的软件环境配置。
接下来我们要给test_ubuntu划分⼀个磁盘空间,作为该虚拟机的硬盘。
使⽤命令
qemu-img create -f qcow2 test.qcow2 10G
其中10G表⽰磁盘空间的⼤⼩,⼤家可以根据需要进⾏调整。如果安装Ubuntu16这样的操作系统最好是有10G以上,要不然安装的时候会提⽰空间不⾜。
新建⼀个l⽂件作为虚拟机的配置⽂件
使⽤命令:
l
使⽤命令l编辑该⽂件,其内容如下
<domain type='kvm'>
<name>test_ubuntu</name> //虚拟机名称
<memory>1048576</memory> //最⼤内存,单位k
<currentMemory>1048576</currentMemory> //可⽤内存,单位k
<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='/home/joe/test.qcow2'/> //⽬的镜像路径
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/joe/Ubuntu16.iso'/> //光盘镜像路径
<target dev='hdb' bus='ide'/>
</disk>
<interface type='bridge'> //虚拟机⽹络连接⽅式
<source bridge='virbr0'/> //当前主机⽹桥的名称
<mac address="00:16:3e:5d:aa:a8"/> //为虚拟机分配mac地址,务必唯⼀,否则dhcp获得同样ip,引起冲突
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='19' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>//vnc⽅式登录,端⼝号⾃动分配,⾃动加1,可以通过virsh vncdisplay 来查询
</devices>
</domain>
在编写完配置⽂件之后,需要将下载好的Ubuntu16 的ios镜像复制到/home/joe/⽬录下,如图所⽰。
然后执⾏命令
virsh l
定义虚拟机及其配置信息。
如果这⾥报错说不到什么kvm⽬录的话可能就是配置⽂件⾥的这⼀⾏参数有问题。
<emulator>/usr/bin/kvm</emulator>
有的系统可能⽬录是/usr/bin/qemu或者是/usr/libexec/qemu-kvm
可以都尝试⼀下。
然后执⾏命令,启动虚拟机
virsh start test_ubuntu
执⾏命令查看当前运⾏的虚拟机状态
virsh list
执⾏命令可以看到该虚拟机对应的端⼝号
virsh vncdisplay test_ubuntu
于是我们可以使⽤vnc viewer 远程连接虚拟机(test_ubuntu)
在使⽤vnc viewer连接虚拟机之前我们还需要知道当前的宿主机(也就是安装kvm的Ubuntu)的ip地址。所以我们使⽤命令 查看其⽹络信息如下。
ifconfig

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。