在OpenStack中,修改调度器规则为会将VM放置到load最低的节点上的调度器。 实现步骤
时间: 2024-02-27 07:58:40 浏览: 257
好的,下面是修改OpenStack调度器规则将VM放置到load最低的节点上的实现步骤:
1. 登录到OpenStack的控制节点。
2. 打开OpenStack Nova配置文件`/etc/nova/nova.conf`。
3. 确认当前使用的调度器类型。如果使用的是FilterScheduler,则你需要修改`scheduler_default_filters`配置项。如果使用的是WeightedScheduler,则你需要修改`scheduler_weight_classes`配置项。
4. 找到调度器相关的配置项。例如,对于FilterScheduler,可以找到以下配置项:
```
scheduler_default_filters=AllHostsFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
```
对于WeightedScheduler,可以找到以下配置项:
```
scheduler_weight_classes=nova.scheduler.weights.all_weighers
```
5. 修改配置项的值。
对于FilterScheduler,你可以将`RamFilter`和`ComputeFilter`的权重调整为更高,以便更倾向于将VM放置到load最低的节点上。例如:
```
scheduler_default_filters=AllHostsFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
ram_weight_multiplier=-1.0
cpu_weight_multiplier=0.0
```
对于WeightedScheduler,你可以使用`CPUWeigher`和`RamWeigher`,并将它们的权重调整为更高,以便更倾向于将VM放置到load最低的节点上。例如:
```
scheduler_weight_classes=nova.scheduler.weights.all_weighers
cpu_weight_multiplier=-1.0
ram_weight_multiplier=-1.0
```
6. 保存配置文件并重启Nova服务。
在Ubuntu系统中,可以使用以下命令重启Nova服务:
```
sudo service nova-compute restart
```
在CentOS系统中,可以使用以下命令重启Nova服务:
```
sudo systemctl restart openstack-nova-compute.service
```
7. 验证规则是否生效。
在创建VM实例时,确认VM会被放置到load最低的节点上。你可以使用`nova hypervisor-stats`命令查看各个节点的load情况。例如:
```
+----------------------+-------+
| Property | Value |
+----------------------+-------+
| count | 1 |
| current_workload | 0 |
| disk_available_least | 0 |
| free_disk_gb | 93 |
| free_ram_mb | 3725 |
| local_gb | 100 |
| local_gb_used | 7 |
| memory_mb | 4096 |
| memory_mb_used | 371 |
| running_vms | 1 |
| vcpus | 2 |
| vcpus_used | 1 |
+----------------------+-------+
```
如果VM实例被放置到了load最低的节点上,那么该节点的`current_workload`应该会比其他节点低。
阅读全文