资源隔离调度算法测试(isolated_scheduler)及openstack集群开发环境搭建

本文主要是介绍资源隔离调度算法测试(isolated_scheduler)及openstack集群开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!

如有转载,请保留源作者博客信息。

Better Me的博客:blog.csdn.net/tantexian

如需交流,欢迎大家博客留言。


1、环境:
centos6.5
openstack icehouse

2、集群
nova-manage service list

3、测试虚拟机生成:

一切正常。(原生默认的虚拟机调度策略为:生成到逻辑剩余内存最大的计算节点。)


4、安装samba环境,请参考相应博文。



将源码重定向到samba文件中(ln -s)

5、windows中共享samba中的代码



6、访问页面:


解决,出现下面错误:

开发环境搭建完成:

7、无密码scp、rsync:
在主节点node31:
ssh-keygen -t rsa

scp .ssh/id_rsa.pub root@192.168.10.31:/root/.ssh/authorized_keys(分别复制到node32/33/34/35节点)

8、安装同步工具:(同步的所有节点都需要安装)比scp效率高
yum install rsync -y
rsync -avzP /home/samba/nova-2014-1-1/nova/  root@192.168.10.32 :/usr/lib/python2.6/site-packages/nova/
第一次同步时间比较长,后续则是差分同步

node31同步脚本:
vi rsyncNova.sh

rsync -avzP --exclude ".pyc" /home/samba/nova-2014-1-1/nova/ root@192.168.10.32:/usr/lib/python2.6/site-packages/nova/ 
rsync -avzP --exclude ".pyc" /home/samba/nova-2014-1-1/nova/ root@192.168.10.33:/usr/lib/python2.6/site-packages/nova/ 
rsync -avzP --exclude ".pyc" /home/samba/nova-2014-1-1/nova/ root@192.168.10.34:/usr/lib/python2.6/site-packages/nova/ 
rsync -avzP --exclude ".pyc" /home/samba/nova-2014-1-1/nova/ root@192.168.10.35:/usr/lib/python2.6/site-packages/nova/


9、远程重启compute服务脚本:
ssh 192.168.10.32 "service openstack-nova-compute restart"

编写脚本:
vi allcompute-restart.sh

service openstack-nova-compute restart
ssh 192.168.10.32 "service openstack-nova-compute restart"
ssh 192.168.10.33 "service openstack-nova-compute restart"
ssh 192.168.10.34 "service openstack-nova-compute restart"
ssh 192.168.10.35 "service openstack-nova-compute restart"



每次同步完代码,执行此脚本重启所有节点的compute服务,使代码生效。



10、接下来使用pycharm在windows上同步linux开发:





11、重启服务,访问页面
将计算节点分区域和主机集合:




12、nova数据库中增加数据库计算资源隔离数据库表:(详情参考博文: http://blog.csdn.net/tantexian/article/details/39156803



数据库字段注释:
user_id:用于扩展、暂且保留
tenant_id #租户id,表示该租户只能使用某些zone、aggregate、host的计算节点生成虚拟机
isolated_type = Column(String(36))##0==host, 1 ==aggregate,2==zone
isolated_name = Column(String(255))#zone or aggregate or host name
isolated_id = Column(Integer)#zone or aggregate or service tables'id
status = Column(Integer) #0 == down 1==active,用于扩展、暂且保留

13、验证增删字段到isolated_schedule数据库表中:
获取token值,加入到环境变量:

vi .bashrc
添加内容:

环境变量生效:
source .bashrc
验证TOKEN变量是否生效:


发布操作隔离资源的api:


查看下keystone的租户信息表:
查看所有可用zone:

查看所有可用aggregate:



查看所有可用host:



添加一个host到数据库:
(其中第一个值2a4fe5e733e44982b1d576c5a0fe4bfd为当前用户属于的tenant_id主要用来做权限认证,
   第二个值2a4fe5e733e44982b1d576c5a0fe4bfd为所操作计算资源隔离的对象,本次环境为admin租户)
curl -i ' http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/ os-isolation-hosts/ 2a4fe5e733e44982b1d576c5a0fe4bfd /action' -X POST -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"add_host": {"isolated_name": "node31","tenant_name":"admin"}}'


api测试成功。



删除一个host从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/action' -X POST -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"remove_host": {"isolated_name": "node32","tenant_name":"admin"}}'


添加一个aggregate从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/action' -X POST -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"add_aggregate": {"isolated_name": "ag1","tenant_name":"admin"}}'


删除一个aggregate从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/action' -X POST -H client" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"remove_aggregate": {"isolated_name": "ag1","tenant_name":"admin"}}'



添加一个zone从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/action' -X POST -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"add_zone": {"isolated_name": "zone1","tenant_name":"admin"}}'


删除一个zone从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/action' -X POST -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"remove_zone": {"isolated_name": "zone1","tenant_name":"admin"}}'



根据tenant_id获取数据库表isolated_schedule host、aggregate、zone:
获取host从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/get_isolated_scheduler_host_list' -X GET "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN"




获取aggregate从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/get_isolated_scheduler_aggregate_list' -X GET "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN"



获取zone从数据库:

curl -i 'http://192.168.10.31:8774/v2/2a4fe5e733e44982b1d576c5a0fe4bfd/os-isolation-hosts/2a4fe5e733e44982b1d576c5a0fe4bfd/get_isolated_scheduler_zone_list' -X GET "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN"


所有API测试通过

14、测试计算资源过滤调度算法:
scheduler.filter增加过滤算法:

要使用该算法,则应该在/etc/nova.conf增加配置项:
scheduler_default_filters配置项修改为:
scheduler_default_filters=IsolatedscheduleFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter

重启服务生效。

调度算法具体分析,更多详情请参考博文:http://blog.csdn.net/tantexian/article/details/39156829


15、测试限制admin 租户只能将虚拟机生成到node31、node35上:
数据库增加两条记录:


开启远程debug,更多详情请参考之前博文。



根据调试结果,与预期一致。(注,由于遵循opentack原生的调度过滤算法架构,此处有个明显的问题就是,每判断一次host都要走一次数据库,因此比较耗性能,后续考虑优化)


如果修改配置提示_member_不存在则修改:
vim /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py


在页面生成虚拟机:
由上述结果可以知道,生成的8个虚拟机能够生成到指定的node31、node35上。



16、测试限制admin 租户只能将虚拟机生成到ag1和ag3上:
数据库信息:

与预期结果一致。
有上述结果可以知道,生成的8个虚拟机能够生成到指定的ag1、ag3上。


17、测试限制admin 租户只能将虚拟机生成到zone2上:

与预期一致:
有上述结果可以知道,生成的8个虚拟机能够生成到指定的zone2上。


18、测试限制admin 租户只能将虚拟机生成到ag2和node31及zone2上:



调度算法验证完毕。

这篇关于资源隔离调度算法测试(isolated_scheduler)及openstack集群开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815238

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个