部署kvm虚拟化
在单台物理主机(X220笔记本)上构建开发、测试、模拟环境,需要使用虚拟化技术
安装KVM
安装纯字符终端管理工具
默认安装会启用一个
NAT
模式的bridgevirbr0
启动激活libvirtd
服务
由于安装操作系统时,给
/hom
目录分配了最大的空见,所以这里创建一个images软链接到/home/libvirt/images
,以便有足够空见存放镜像:
安装Guest OS
安装CentOS 7
以上安装程序启动了vnc访问接口,所以客户端先通过ssh端口转发方式创建访问vnc的端口映射,即在本地客户端电脑执行以下命令
这里
<SERVER_IP>
是运行KVM的服务器,端口5900
是VNC访问端口,默认从5900开始,每个新增qemu进程开启的vnc端口依次增减,如5900,5901,5902。
虚拟机网络
为了能够模拟部署集群,并且采用固定的虚拟机ip地址,参考 KVM libvirt静态IP地址和端口映射设置静态虚拟机IP(虚拟化使用dnsmasq使用静态IP)
在NAT模式下,libvirt使用了内建的dnsmasq
来提供DHCP和DNS解析,可以通过在virsh中设置固定的DHCP IP地址和虚拟机MAC地址绑定来确保每次分配给vm相同的IP地址。
显示输出:
编辑网络
显示输出网络如下:
编辑<dhcp>
段落
默认dhcp范围是
<range start='192.168.122.2' end='192.168.122.254'/>
,这里修订从100开始,前面的ip地址段保留为静态分配。
配置修改生效:
注意:重建default
网络会导致虚拟机网路不通,这是因为这些虚拟机的虚拟网卡没有连接到重建的虚拟网桥上,需要重新链接虚拟网卡到网桥:
brctl show
检查网桥名字,可以看到是virbr0
物理服务器上通过ifconfig -a
可以看到所有的虚拟机的虚拟机网卡,例如vnet0
、vnet1
...,执行以下命令添加连接
注意:上述重建网桥并重连虚拟网卡后,已经生效了dnsmasq静态分配IP的方式,但是虚拟机内部还是需要重启网卡或重启虚拟机。
另外一种比较简单的方法是,定制虚拟机
virsh edit centos7
,修订虚拟机的mac地址。在dnsmasq中可以批量顺序设置好mac地址配置。这样可以避免多次重启虚拟网络。
虚拟机内部配置
由于默认的网络是NAT模式,所以ssh登录虚拟机要么在物理服务器上做端口映射,要么通过物理服务器转跳。不管怎样,为方便管理,登录端的主机(我选择物理服务器作为转跳服务器,类似于整个虚拟机集群的管理机)的公钥需要分发到虚拟机内部。
帐号设置方法同ssh帐号和sudo设置,完成初始帐号设置。
clone虚拟机
在完成了初始模板虚拟机之后,并不建议直接使用,而是采用clone方法来完成后续虚拟机的创建,这样可以保持最初的纯净版本,以便构建不同的开发环境。
实际开发环境采用KVM虚拟机内部嵌套Docker,采用Docker来快速部署大量的不同操作系统环境,实现开发环境切换。
参考
Last updated