接上前一篇:https://www.cnblogs.com/zjd1396/p/9899634.html
四.优化
4.1计算节点磁盘空间管理
上图可以看出本地磁盘空间总共只有98G,而本机的实际配置如下:
[root@compute ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 99G 2.2G 92G 3% /
devtmpfs 79G 0 79G 0% /dev
tmpfs 79G 0 79G 0% /dev/shm
tmpfs 79G 11M 79G 1% /run
tmpfs 79G 0 79G 0% /sys/fs/cgroup
/dev/sda1 976M 154M 771M 17% /boot
/dev/mapper/centos-home 996G 72M 945G 1% /home
tmpfs 16G 0 16G 0% /run/user/0
也就是说需要修改存储实例的路径到/home(现在缺省是/root,root总容量是99G,而home总容量是996G),修改方法为:
ü 先删除已创建的实例;
ü [root@compute ~]# mkdir /home/novainstances,用于存放实例,同时[root@compute ~]# chmod 777 novainstances;
ü 编辑[root@compute ~]# vi /etc/nova/nova.conf,修改如下参数:instances_path=/home/novainstances;
ü 重启nova服务:[root@compute ~]# systemctl restart libvirtd.service openstack-nova-compute.service;
ü 刷新再看:
ü 创建两个实例后,可以看到:[root@compute novainstances]# ll
总用量 16
drwxr-xr-x 2 nova nova 4096 10月 31 11:09 11f2d8cf-5f36-474b-be44-0ba5105923b7
drwxr-xr-x 2 nova nova 4096 10月 31 11:09 945e9730-2c2d-4f1f-97b0-faac8584f8b6
drwxr-xr-x 2 nova nova 4096 10月 31 11:09 _base
drwxr-xr-x 2 nova nova 4096 10月 31 11:09 locks
4.2控制节点磁盘空间管理
上面的安装过程只在计算节点安装了nova-compute服务,实际上控制节点也有很强的硬件配置,也可以同样安装计算服务来跑实例。(注意,控制节点安装计算服务也需要像计算节点一样添加一个yum源,也需要修改保存实例的路径。)如下:
ü 现在看只有一个计算节点:
ü 安装:[root@compute /]# yum install openstack-nova-compute
ü 启动服务:
[root@controller ~]# systemctl restart libvirtd.service openstack-nova-compute.service
[root@controller ~]# systemctl enable libvirtd.service openstack-nova-compute.service
ü 刷新:
ü 再创建一个实例,已经跑到这个新计算节点上了:
4.3调整最大实例数等参数
下图可以看出,系统缺省最大实例数只有10:
控制节点上编辑:[root@controller ~]# vi /etc/nova/nova.conf
在节点[DEFAULT]的最后添加如下参数:
quota_instances=10000
quota_cores=2000
quota_ram=512000000
quota_floating_ips=10000
重启Nova服务再刷新:
哈哈,夸张吧!
4.4配置外部网络
4.4.1配置vlan network
4.4.1.1准备工作
如前文所述,本控制节点有多块网卡,其中两块连接到同一个交换机10.47.181.1上,第一块ens44f0配置了地址10.47.181.26,第二块ens44f1没有配置地址,但要配置如下两个参数:
BOOTPROTO=static(这里用none也可以)
ONBOOT=yes
配置vlan时,就是要求走vlan数据的网卡不要配置IP地址。同时要求连接此网卡的交换机端口配置为trunk模式,不能是access模式。
剩下需要做的配置在2.9.4、2.9.5、3.2.3和3.2.4四个章节中已包含。
4.4.1.2创建第一个vlan network
来到dashboard,创建一个网络及其子网,配置如下:
其中物理网络default就是2.9.4中所述的物理网卡的label。
4.4.1.3创建第二个vlan network
过程同上。最后两个vlan如下:
4.4.1.4创建实例并关联网络
配置4个实例,创建实例的向导过程中分别选择上述两个vlan,完成后看到的网络拓扑图如下:
4.4.2配置路由
ü 检查配置页面:
上面两个vlan之间是隔离的(同一vlan内之间的实例能互相ping通),为了能互相ping通,需要配置路由。路由服务提供跨subnet互联互通功能。本次练习没有物理路由,就用Neutron支持的虚拟路由。
进入dashboard,可能出现找不到路由配置页面的情况,如下:
此时需要在控制节点上修改配置:
[root@controller ~]# vi /etc/openstack-dashboard/local_settings
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
......
然后重启服务:
[root@controller ~]# systemctl restart httpd.service memcached.service
现在刷新dashboard后就可以看到了。
ü 检查2.9.4中配置过的 /etc/neutron/l3_agent.ini
在[DEFAULT]节点修改如下配置:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
ü 回到dashboard上的创建路由页面:
然后进入此路由的配置页面,两次点击增加接口:
将两个子网分别添加进来,完成后可以看到两个vlan的网关都被添加进来了:
此时两个vlan之间的实例都可以互相ping通了。
4.4.3配置浮动IP
正常情况下,网络节点应该有第三块物理网卡专门用于和外网互通。(比如我现在练习用的环境中,办公网是10.*.*.*,而上面创建的几个实例是192.168.*.*。)我们通过这第三块物理网卡来给实例配置一个10网段的地址,这样通过办公网络就能直接访问这些实例了。
如果有第三块网卡,则步骤为:
ü 还是先在网络节点(即现在合一的控制节点)上添加网桥,把第三块物理网卡加入到网桥:
[root@controller ~]# ovs-vsctl add-br br-ex
[root@controller ~]# ovs-vsctl add-port br-ex ens44f2
其中ens44f2为传说中的第三块网卡,并注意br-ex与前面为配置路由创建的br-eth不同。网卡名称也不同。
ü 配置:[root@controller ~]# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
修改[ovs]节点的如下配置,新增红色字体:
bridge_mappings = default:br-eth,external:br-ex
ü 编辑:[root@controller ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini
在[ml2_type_flat]节点修改如下配置:
flat_networks = external
[ovs]节点再增加如下红色配置:
physical_interface_mappings = default:ens44f1,external:ens44f2
(这些配置是针对外部网络类型是flat,如果是vlan,则应该在[ml2_type_vlan]中增加如下红色配置:network_vlan_ranges = default:3001:4000,external)
但目前条件有限,只有两块物理网卡(第三块专门用于连接磁阵了)。因此现在尝试在第二块网卡上打通办公网,给实例配置浮动IP。上面斜体字写的配置全部去掉。然后只配置下面一处即可:
ü 编辑:[root@controller ~]# vi /etc/neutron/l3_agent.ini
在[ml2_type_flat]节点修改如下配置:
external_network_bridge = br-eth
ü 重启Neutron相关服务:
[root@controller ~]# systemctl restart openstack-nova-api
[root@controller ~]# systemctl restart neutron-server.service neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
[root@controller ~]# systemctl restart neutron-l3-agent.service
ü 回到dashboard,创建一个外部网络,如下:
其中的物理网络:如果有三块网卡的方案,填写external,如果是两块网卡,则填写default(和前面配置vlan公用一个网卡)。
网络地址和网关就是现在网络节点(控制节点)真实分配的办公网的网关。
填的地址池是连续的目前空闲的地址。
ü 将ext_net连接到router_100_101:
回到路由配置页面,为router_100_101配置网关:
ü 进入浮动IP设置页面,点“分配IP给项目”,如下:
反复执行此分配动作几次,就从之前设定的地址范围(10.47.181.44,10.47.181.50)中随机分配了如下几个IP地址:
ü 分别给这个地址“关联”实例即可,关联后如下:
最后看网络拓扑图如下:
好了,网络全通啦!!!