虚拟机安装到存储的坑可以说是被绕过了。我之前安装KVM系统的操作系统是Debian9.6,在此发行版本上KVM安装配置都完成了,而且虚机都已经新建且启动成功了,卡在了分区过程,在分区的时候无法写入磁盘。各种找资料,各种解决不了。最后尝试使用Centos7安装,一次成功。这里也要说一句,看来还是选择一个有商业背景的发行版本靠谱,资料多,有问题了好处理。关于Debian9的KVM安装无限期推迟,等有空了看看到底是什么问题。
下面开始正题,首先把存储挂载,怎么挂载可以看《研扬UP2折腾记----iSCSI存储挂载》的文章。挂载后开始安装kvm及相关组件,命令如下:
yum install -y virt-top libvirt libvirt-client virt-install bridge-utils qemu-img qemu-kvm virt-viewer virt-what
只安装必要组件不需要的都不装,yum install -y表示全自动安装。
安装完成后查看下网络接口,可以看见我这里有三个接口,其中在使用的是enp3s0。
接下来配置网络桥接,首先进入目录/etc/sysconfig/network-scripts/,将当前网卡的文件ifcfg-enp3s0复制并命名为ifcfg-br0,然后依次修改这两个文件,ifcfg-enp3s0的修改内容如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp3s0"
#UUID="021ae363-bcd2-4097-9d5d-d7c8ca29f41c"
DEVICE="enp3s0"
ONBOOT="yes"
BRIDGE=br0
然后修改ifcfg-br0,修改内容如下:
TYPE="Bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
#UUID="021ae363-bcd2-4097-9d5d-d7c8ca29f41c"
DEVICE="br0"
ONBOOT="yes"
修改完成后重启网络服务 systemctl restart network。
再次查看网络信息,可以发现IP地址已经切换至我们新建的br0网卡上了。
创建kvm客户域配置文件
nano /root/bridge.xml,并写入如下内容
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
应用网卡设置
virsh net-define --file /root/bridge.xml
virsh net-autostart br0
virsh net-start br0
查看kvm网络信息。
将默认网卡删除
virsh net-destroy default
virsh net-undefine default
重新查看KVM网络信息
网络配置完成,开始安装虚机。执行下面的命令:
virt-install \
--virt-type=kvm \
--name debian9 \
--ram 1024 \
--vcpus=1 \
--os-variant=debian9 \
--virt-type=kvm \
--hvm \
--cdrom=/kvmfiles/iso/debian-9.6.0-amd64-DVD-1.iso \
--network=bridge=br0,model=virtio \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--disk path=/kvmfiles/vm/debian9.qcow2,size=15,bus=virtio,format=qcow2
没有错误的话会得到提示。如下图
这里简单介绍下几个参数:
--name:设置虚拟机名称。
--ram:配置虚拟机内存,单位是MB。
--vcpus:配置cpu个数。
--hvm:配置使用完全虚拟化。
--cdrom:使用cdrom安装系统,指定ISO文件。
--disk:配置虚拟机磁盘的保存位置,大小,及虚拟磁盘格式。
--os-variant:操作系统类型,通过osinfo-query os命令查询,不能随便填写。
然后可以使用vnc登录虚机了。
这里有点需要注意,需要关闭防火墙或者开发端口,否则无法使用VNC登录虚机。
需要虚机自启动可以执行virsh autostart VMName命令。
至此KVM安装配置完成,这只是基本的虚拟化,以后会进行复杂的虚拟化实验。