nova-scheduler-bench 复现笔记(一)

nova-scheduler-bench 复现笔记(一)

介绍

url:OpenStack Benchmarking for Scheduling
用途:模拟openstack nova的调度
环境:devstack,在demo项目中使用admin用户进行实例创建

语句记录

查看nova相关状态: sudo systemctl status devstack@n-cpu.service
查看特定的服务日志:sudo journalctl -f --unit devstack@n-cpu.service
可以用n-*来看nova所有的状态或服务日志
sudo journalctl -a --unit devstack@n-cpu.service | grep XXX
XXX一般是ERROR等

网址记录

出现问题

一、source 问题

OpenStack Benchmarking for Scheduling中使用 openrc admin admin,但是实际运用中使用了source demo-openrc.sh,具体的差别以及原理并没有进行研究。

二、keystone 5000端口无法访问

可能是devstack搭建过程中留下的坑。
问题描述:在2-create.sh中,需要向 http://localhost:5000/v3/auth/tokens 访问请求X-Subject-Token,但是无法访问5000端口,使用netstat -ntlp查看端口使用情况时发现5000端口并没有开放。
解决方案:
1、使用openstack catalog list查看,发现devstack的访问keystone的url与kolla 安装的opensatck不同。将url修改成 http://localhost/identity。导致新问题:405 method not allowed。 devstack
kolla docker
2、使用 openstack token issue获得id,id即为X-Subject-Token。获取的应该只是admin的token。
本方法转自《openstack获取token值的两种方式 2019-05-15》
openstack token issue
替换2-create.sh中代码:

//源代码
OS_TOKEN=`curl -i \
  -H "Content-Type: application/json" \
  -d '
{ "auth": {
    "identity": {
      "methods": ["password"],
      "password": {
        "user": {
          "name": "admin",
          "domain": { "id": "default" },
          "password": "123456",
          "tenantName": "admin"
        }
      }
    },
    "scope": {
      "project": {
        "name": "admin",
        "domain": { "id": "default" }
      }
    }
  }
}' \
  http://localhost:5000/v3/auth/tokens | grep X-Subject-Token: | sed -e "s/X-Subject-Token: //"`

//替换后代码
OS_TOKEN=`openstack token issue| grep -w id |sed -e "s/| id         | //" |sed -e "s/ |//"`

三、No valid host was found

1-setup.sh调用了killall.sh,将nova的重要进程全部kill,之后基于输入launch了一个scheduler节点sche1,两个compute节点node1, node2。

在 BENCH-conductor-compute19.log 中报错:

2019-11-20 15:40:59.290 ERROR nova.conductor.manager [req-81fbc73a-1902-436e-a93f-4e1fc185d704 admin demo] 
Failed to schedule instances: NoValidHost_Remote: No valid host was found. There are not enough hosts available.

devstack原先是部署在单服务器compute19上,由于运行了killall.sh文件,kill了compute19上的nova-conductor, nova-compute, nova-scheduler进程,并在launch的节点中重启这些进程。
数据库中没有nova库,感觉应该是把nova的进程删除之后并没有完全的重新启动,特别是nova-conductor。

//killall.sh
#!/bin/bash
sudo killall nova-scheduler
sudo killall nova-api
sudo killall nova-conductor
sudo killall nova-compute
sudo pkill -f "run_bench.py"

在这里插入图片描述
计算节点,即host并没有真正启动,或者没有被加入到主机聚合中。

OpenStack Benchmarking for Scheduling是2016年的,可能适用于较古老版本的openstack,重新安装newton版本的devstack进行尝试,但是并没有搭建成功。后来考虑到N版版本过老,不利于实际的应用,权衡了一下决定使用原来的Train版devstack重新进行实验。但是搭建Train版devstack时出现了很多问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值