(十 )openstack 优化:quota配额,超额,动态调整 / 迁移实例

本文介绍如何通过多种方式配置OpenStack的quota配额,并详细说明了如何实现虚拟机的动态调整与迁移,以及更改实例IP地址的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四. openstack 相关优化

优化: quota配额

也就是配置openstack最多能创建多少个虚拟机

查看配额

neutron quota-show admin

在这里插入图片描述
查看 openstack 配置文件是否开启配额限制
在这里插入图片描述

1.通过web 端修改配额

在这里插入图片描述

2. 通过配置文件修改配额

修改 neutron.conf

  1. 控制端:
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
  1. 计算节点
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. 基础环境

所有节点都需要更改

  1. nova默认不能登陆----改为/bin/bash可以登陆
    计算节点配置 nova 用户: 将 shell 改为/bin/bash
 usermod  nova -s /bin/bash
  1. 配置 nova 登录密码:
echo xxxx | passwd --stdin nova
  1. 切换至 nova 用户获取秘钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
  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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值