1.项目介绍
Openstack已经成为当下云计算解决方案的事实标准,然而Openstack囊括了计算、网络、存储等大量底层组件,涉及的知识和原理众多。作为一名openstack的开发人员,在学习研究openstack的过程和平时项目开发中,为学习openstack的运行原理去部署一整套运行环境时耗费精力巨大,还有在进行网络和SDN相关测试时,由于需要模拟大量虚机的网络访问,很难组织大量软件和硬件资源来进行场景测试。仅仅根据以上两点,在我自己的openstack软件开发和测试中非常想去解决这个问题,经过自己的思考和借鉴以往经验,提出了'从头搭建openstack运行环境'(Openstack From Scratch)的想法。这是从一套干净的linux系统,通过软件包源码和底层计算(kvm、qemu)、网络(ovs)、存储(iscsi、ceph)命令的方式,一步步执行命令运行出一套可运行openstack的环境。
从头搭建出的openstack环境对以下方面会有重要借鉴意义:
1.对于Openstack的学习者,根据部署手册,可以在虚机环境里构建出一套openstack原型系统,对于学习虚拟化、网络、存储的相关技术原理非常有帮助。
2.对于Openstack开发过程中,去验证开发的新功能时,可以方便快速的根据自己的需要去构建openstack实验环境,并对运行环境根据自己的需要进行修改。
3.对于Openstack测试过程中,搭建的Openstack运行环境,占用资源少,部署快捷迅速,在场景测试和压力测试会大大提高测试效率和减少对硬件资源的依赖。
2.项目基础架构介绍
2.1 运行环境配置
virtualbox虚机 2台 操作系统:centos7
vm1(控制节点、网络节点):vcpu:1个,mem:1G,disk:10G,网卡4块
vm2(计算节点):vcpu:2个,mem:2G,disk:20G,网卡3块
控制节点网卡配置:
Adapter 1:Host-only网络 vboxnet3 10.255.255.1 管理网络
Adapter 2:Host-only网络 vboxnet4 10.255.254.1 隧道网络
Adapter 3:Internal网络 intnet_vlan vlan网络
Adapter 4:Host-only网络 vboxnet5 10.255.253.1 外部网络
计算节点网卡配置:
Adapter 1:Host-only网络 vboxnet3 10.255.255.1 管理网络
Adapter 2:Host-only网络 vboxnet4 10.255.254.1 隧道网络
Adapter 3:Internal网络 intnet_vlan vlan网络
2.2 环境架构图
2.2.1网络构成
Manager network:管理网络用于OFS虚机和宿主机之间管理登录使用
Tunnel network:隧道网络用于租户间建立隧道虚拟网络使用
Vlan network:vlan网络用于租户间provider网络使用
External network:外部网络用于租户虚机访问外网使用
2.2.2计算节点内部构成
eth0:10.255.255.20 255.255.255.0 10.255.255.1
eth1:10.255.254.100 255.255.255.0 10.255.254.1
eth2:无
租户Tenant1 tenant网络 tunnelid=1
vm1: 10.0.0.81 52:54:00:12:34:60 255.255.255.0 10.0.0.1
vm2: 10.0.0.82 52:54:00:12:34:61 255.255.255.0 10.0.0.1
租户Tenant2 tenant网络 tunnelid=2
vm3: 10.0.1.83 52:54:00:12:34:62 255.255.255.0 10.0.1.1
租户Tenant3 provider网络 vlanid=103
vm4: 10.0.2.84· 52:54:00:12:34:63 255.255.255.0 10.0.2.1
qbr* 安全组网桥,运行虚机对应安全组iptable规则
br-int 集成网桥,虚机挂载网桥,实现localvlan虚机隔离
br-tun 隧道网桥,实现虚机localvlan与隧道id转换
br-eth2 vlan网桥,实现虚机localvlan与外部vlan转换
2.2.3网络节点内部构成
eth0:10.255.255.21 255.255.255.0 10.255.255.1
eth1:10.255.254.101 255.255.255.0 10.255.254.1
eth2:无
eth3:无
租户Tenant1
dhcp:10.0.0.3 qdhcp-01
HAproxy:10.0.0.100 qlbass-01
租户Tenant2
dhcp:10.0.1.3 qdhcp-02
租户Tenant3
dhcp:10.0.2.3 qdhcp-03
br-int 集成网桥,dhcp、HAproxy等服务挂载网桥,实现localvlan租户间服务隔离
br-tun 隧道网桥,实现虚机localvlan与隧道id转换
br-ex vlan网桥,实现虚机localvlan与外部vlan转换
2.2.4综合场景说明
根据以上信息可以得出以下信息:
1.一共三个tenant租户,tenant1有两台虚机通过隧道网络互通,tenant2有一台虚机也通过隧道网络互通,tenant3有一台虚机通过vlan网络互通,并且租户分别对应有各自的dhcp服务。
2.租户tenant1和tenant2共享一个router路由,可以实现两租户间路由和防火墙服务,并且可以添加外网路由实现snat虚机访问外网和分配floatingip后实现dnat外网访问虚机。
3.租户tenant1两台虚机配置LBaas服务,实现两台虚机的负载均衡,并且负载均衡VIP可配置router实现snat和dnat