文章目录
四. openstack 相关优化
优化: quota配额
也就是配置openstack最多能创建多少个虚拟机
查看配额
neutron quota-show admin
查看 openstack 配置文件是否开启配额限制
1.通过web 端修改配额
2. 通过配置文件修改配额
修改 neutron.conf
- 控制端:
vim /etc/neutron/neutron.conf
[quotas]
quota_network = 100 网络
quota_subnet = 100 子网
quota_port = 5000 创建多少个虚拟机
quota_driver = neutron.db.quota.driver.DbQuotaDriver
quota_router = 100 路由
quota_floatingip = 1000 浮动ip
quota_security_group = 100 安全组
quota_security_group_rule = 500 一个按群组多少个规则
重启 neutron 服务
systemctl restart openstack-nova-api.service \
neutron-server.service \
neutron-linuxbridge-agent.service \
neutron-dhcp-agent.service \
neutron-metadata-agent.service
- 计算节点:
vim /etc/neutron/neutron.conf
[quotas]
quota_network = 10
quota_subnet = 10
quota_port = 5000
quota_driver = neutron.db.quota.driver.DbQuotaDriver
quota_router = 10
quota_floatingip = 50
quota_security_group = 10
quota_security_group_rule = 100
重启 neutron 服务
systemctl restart neutron-linuxbridge-agent
验证当前配额
neutrn quote-show service
3. 通过命令修改配额
在管理端上:每个用户的配额
nova quota-class-update default --instances 5 最多实例
nova quota-class-update default --cores 10 最多cpu
nova quota-class-update default --ram 2045 最多内存
验证当前配额
neutrn quote-show service
控制端 和 计算节点:超额配置
控制端----计算节点
,都要配置
/etc/nova/nova.conf
进行以下配置:
配置虚拟机自启动:
resume_guests_state_on_host_boot=true
配置 CPU 超限使用:尽量不超
默认为 16,即允许开启 16 倍于物理 CPU 的虚拟 CPU 个数。
cpu_allocation_ratio=16
配置内存超限使用:不超
配置允许 1.5 倍于物理内存的虚拟内存
ram_allocation_ratio=1.5
配置硬盘超限使用:
磁盘尽量不要超限
,可能会导致数据出现丢失
disk_allocation_ratio=1.0
配置保留磁盘空间:2G
预留磁盘空间给系统使用
前提是足够大
reserved_host_disk_mb=20480
配置预留内存给系统使用:4G
前提是足够大
reserved_host_memory_mb=4096
重启控制端,和计算节点的nova服务
五. 虚拟机动态调整/迁移
在有些时候,创建完成的虚拟机因业务需求需要变更内存或 CPU 或磁盘
,因此需要配置允许后期类型调整。
数据是通过nova用户操作的
1. 基础环境
所有节点都需要更改
- nova默认不能登陆----改为/bin/bash可以登陆
各计算节点配置 nova 用户: 将 shell 改为/bin/bash
usermod nova -s /bin/bash
- 配置 nova 登录密码:
echo xxxx | passwd --stdin nova
- 切换至 nova 用户获取秘钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
- 所有计算节点免密钥登陆
然后将秘钥 copy 至各个计算节点:
ssh-copy-id -i .ssh/id_dsa.pub nova@x.x.x.x
ssh 10.20.119.25 #必须确认可以正常登录到对对端节点
验证:登陆一下
2. 实例动态调整
就是将在nodeA的实例迁移到其他节点
管理员—实例—迁移实例
allow_resize_to_same_host=true
baremetal_enabled_filters=RetryFilter,AvailabilityZoneFilter, \
ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter, \
ExactRamFilter,ExactDiskFilter,ExactCoreFilter
执行并验证虚拟机类型变更:
选择要调整的虚拟机:
选择好虚拟机之后点击调整大小
调整大小:一定要比当前大
查看同步日志
tail -f /var/log/nova/*.log
验证调整大小后的虚拟机 CPU:虚拟机的top
内存free-h
3. 迁移主机:
把node1的磁盘迁移到其他node中
前提是目标节点内存足够
步骤: 还是上面那一步只不过是迁移实例
查看同步日志
tail -f /var/log/nova/*.log
然后在每个节点上查看:有什么实例
virsh list
六. 更改实例 IP 地址
1.新建两台实例keepalived
要求:都有内外网地址
测试:都可以成功
ping www.baidu.com
2. 修改实例IP:控制端
找出实例对应的 ID:
openstack port list | grep 192.168.10.103
查看实例 ID:
mysql -uneutron -h192.168.10.100 –p
use neutron;
#查看网络端口 ID----opesntack network list
select * from ports where device_id="ID";
#验证虚拟机 IP 地址和 ID 对应:
select * from ipallocations where port_id="ID";
修改数据库实例 IP:
update ipallocations set ip_address="192.168.10.190" where
port_id="ID";
flush privileges;
在实例配置新 IP:
配置完 IP 之后需要重启网络服务或重启实例
。
vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.190
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=202.106.0.20
3. 测试
内网通信:
ping 内网IP
外网通信
ping www.baidu.com