packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

时间:2022-06-08 06:59:56

1.实验环境

vbox先创一台虚拟机,环境如下:

条目 配置
os centos66 64bit
内存 4G
处理器 3
磁盘大小 30G

网络配置

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

vbox所建虚拟机网卡配置:
net0(网卡1):10.20.0.0/24 Host-Only#2 PCnet-PCI II 混杂模式:全部允许
net1(网卡2):72.16.0.0/24 Host-Only#3 PCnet-PCI II 混杂模式:全部允许
net2(网卡3):192.168.4.0/24 Host-Only#4 PCnet-PCI II 混杂模式:全部允许
网卡4:NAT

2.搭建openstack

1.启动虚拟机(当物理机用)后,为其配置网卡(eth2暂时先别设置onboot=no,以后有别的用途)
eth0 : 10.20.0.201 management network
eth1 : 172.16.0.201 public/external network
eth2 : 192.168.4.201 private network

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.20.0.201
NETMASK=255.255.255.0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.0.201
NETMASK=255.255.255.0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
[root@localhost ~]# service network restart

3.安装packstack

[root@localhost ~]# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm
[root@localhost ~]# yum -y install openstack-packstack
[root@localhost ~]# packstack --allinone
这个过程有点漫长,一般网络稳定的话还是比较顺利的,如果报错并且每次错点都不一样,但都是关于包下载失败的,极有可能是网络不好的原因,因为都是国外的源,建议使用好的网络执行这一步。
这一步执行成功后会出现以下内容:

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

这时ls会看到

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

[root@localhost ~]# cat keystonerc_admin 
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=77f0f98899ce4cda
export OS_AUTH_URL=http://10.20.0.201:5000/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ ']\$ '

在这里可以看到登录用户名和密码

4.登录dashboard+创建网络

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

登陆以后删除默认的网络和路由,创建我们自己的网络

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

并添加路由,最后形成的网络拓扑如下:

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

然后创建虚拟机,创建失败,报如下错误:

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

此时可以去查看日志,创建虚拟机失败一定与nova有关,可以去以下几个日志去查看究竟是哪一个出了错

[root@localhost ~]# vi /var/log/nova/
api.log cert.log compute.log conductor.log consoleauth.log nova-manage.log scheduler.log

我发现在我的scheduler.log 里有error,内容如下

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

这个错的最后一句是关键:raise e\n’, u”libvirtError: internal error no supported architecture for os type ‘hvm’\n”],经查证,packstack默认用的hypervisor类型是KVM,物理机搭建使用这个,而我们是用的虚拟机,所以要将这个参数改为qemu

[root@localhost ~]# vi /etc/nova/nova.conf 
...
#virt_type=kvm
virt_type=qemu
...
[root@localhost ~]# service openstack-nova-compute restart
[root@localhost ~]# service openstack-nova-scheduler restart

现在启动云主机成功
然后为其绑定浮动ip,并添加安全组规则

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)
接下来再ping虚拟机vm1的浮动ip172.16.0.3,发现ping不通,就连router01的网关172.16.0.2dou ping不通,我想起来还没有为eth1添加网桥

5.添加网桥,修改网卡配置

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
TYPE=OVSBridge
DEVICETYPE=ovs
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.0.201
NETMASK=25.255.255.0

还要修改一个配置文件,默认的type_drivers=vxlan

[root@localhost ~]# vi /etc/neutron/plugin.ini 
[ml2_type_vlan]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex

一定要重启网络和neutron相关服务

[root@localhost ~]# service network restart
[root@localhost ~]# service neutron-openvswitch-agent restart
[root@localhost ~]# service neutron-metadata-agent restart
[root@localhost ~]# service neutron-dhcp-agent restart
[root@localhost ~]# service neutron-l3-agent restart

再ping vm 的浮动ip,能Ping通了,而且可以ssh连接虚拟

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)

packstack allinone + vxlan 用vbox的虚拟机搭建openstack(单节点双网卡)