TWaver 3D应用于大型数据中心(续)

在2014年11月份,我们当时发了一篇有关TWaver HTML5 3D应用于大型数据中心的文章,该blog比较详细的描述一些常用的功能的实现方法,比如:动态添加机柜,告警,温度,湿度等相关的功能的具体实现。其实会用这些东西的话基本上可以使用我们的TWaver HTML5 3D来实现相关的应用了,可是在有些客户觉得这还不够“动态”,都是代码一下生成的,少了一些交互,前些天同事说要不再加点功能,让它更加“动”一些,所以今天我抽了个时间再接着来个“续”——动态的添加机柜,主机和告警。

1、动态的添加机柜,输入机柜ID机柜:

基本方法同TWaver HTML5 3D应用于大型数据中心中的机柜创建方法一样(其实是完全一样,我只传了一个机柜id和position):

var loadRack = function(pos,type,isEmp,id){
var empRack = true;
    if(isEmp != undefined && isEmp !=null){
        empRack = isEmp;
    }
    var rackType = "s";
    if(type != null && type != undefined){
        rackType = type;
    }
    var addRack = function(element){
        if(element && pos){
            element.setPosition(pos.clone());
            element.rackType = rackType;
            element.setClient(‘R_ID‘,id); //给创建好的机柜添加了一个id,后面检索的话可以根据这个id来找到相应的机柜
            if(rackType == ‘emptyRack‘){
                element.setClient(‘bycustom‘,true);
            }
            if(!empRack){
                element.loaded = true;
                window.setTimeout(function(){
                    showChart(element);
                },500);
            }
        }
    };
    var  = ‘./emptyRack.json‘;

    mono.Toolkits.loadTemplateUrl(network.getDataBox(), rack, null, null, addRack);
}

由于机柜的也想动态,想摆哪里就摆哪里,为了实现这样功能,我就先这么处理了一下,点你点击“添加”后,给network添加了一个监听,当click时获取一下鼠标所点中的位置,把这个位置作为你想要放机柜的位置(这里主要将这个意思,你也可以通过dblclick,或单独弄个button或什么来管理这个功能):

    var addRack = function(e){
        network.getRootView().removeEventListener(‘click‘,addRack); //当执行后就把这个监听去掉
        var objects = network.getElementsByMouseEvent(e);
        if (objects.length) {
            var first = objects[0];
            var object3d = first.element;
            var point=first.point;
            var rack_id = txtRack.value;
            var position = new mono.Vec3(point.x, Size.rack_y, point.z); //5710,0,2546
            loadRack(position,‘emptyRack‘,true,rack_id);
        }
    }

   //创建时:
    if(type == ‘rack‘){
            network.getRootView().addEventListener(‘click‘,addRack);
//            var position = new mono.Vec3(point.x, Size.rack_y, point.y); //5710,0,2546
//            loadRack(position,‘emptyRack‘,true,rack_id);
   }

效果图:

2、动态的添加交换机,根据路由器的id,路由器的位置动态的添加交换机(这里选择交换机是因为交换机有许多的端口,告警可以直接从交换机的端口发出,主要是因为交换机具有代表性):
下面是在上面(第一步)创建的机柜(机柜ID为“rid”)中的20u的地方(不知道是不是换算错了,呵呵)添加了一个交换机:

代码如下:

var createRouter = function(rack_id,host_id,y){
     var addHost = function(element){
         if(element){
             var rack = findFromClient(‘R_ID‘,rack_id);//根据机柜的id找到机柜
             if(!rack) return;
             rack.addChild(element);//把新的主机加到该机柜中
             if(host_id){
                 element.setClient(‘oid‘,host_id); //设置新增加的交换机的oid(也就是给它贴了个标签),以便于查找
             }
             element.setPositionX(0);
             element.setPositionY(y);//主机在机柜中的位置
             element.setPositionZ(0);
         }
     }
   mono.Toolkits.loadTemplateUrl(network.getDataBox(),"./ciscoroter.json",null,null,addHost);
 }

3、动态的添加告警,可以给路由器中指定的端口添加告警,如下图:

添加方法基本和上次差不多,在之前的基础上做的简单的改进:

var createAlarm = function(alarmid,rid,soid,poid,st){
    var rack = findFromClient(‘R_ID‘,rid);
    var alarm;
    var s;
    if(rack) {
        s = findOidfromChildren(rack, soid);
    }else { //当Router没有放到机柜中时,单独再找一下
        s = findFromClient(‘H_ID‘,soid);
        if(!s){
            s = findFromClient(‘oid‘,soid);
        }
    }
    if (s) {
        var p = findOidfromChildren(s, poid);
        if (p) {
            alarm = new mono.Alarm(alarmid, p.getId(), st);
        } else {
            alarm = new mono.Alarm(alarmid, s.getId(), st);
        }
    }else if(rack){
       alarm = new mono.Alarm(alarmid, rack.getId(), st);
    }
    if(alarm){
        network.getDataBox().getAlarmBox().add(alarm);
    }
}

 var addAlarm = function(rack_id,host_id,port_id,severity_id){
        var severities = mono.AlarmSeverity.severities;
        var severity = severities.get(severity_id);
        createAlarm(‘c‘,rack_id,host_id,port_id,severity);
    }

再给这个路由器和机柜添加东西:

时间: 2024-11-12 02:26:46

TWaver 3D应用于大型数据中心(续)的相关文章

软件定义存储在大型数据中心的应用分析

历史经验一再表明,由技术进步推动的变革往往以超乎人们想象的速度和烈度发生.SDS软件定义存储作为新兴的技术,即使穷尽你所有想象,也难以预测其发展的速度有多快,影响的程度有多深远.面对新的变革和潮流,在追逐变化的同时,还需冷静思考可能带来的问题.SDS在数据中心的应用一定能提高性能和降低成本,并可控风险么?SDS会隐藏什么样的问题? 问题一.不能充分利用现有的基础架构 数据中心是非常繁忙的,IT部门要同时接受从多个不同的应用系统发来的需求和数据任务并及时响应和处理.另外,IT专业人员的日常工作还需

如何做好大型数据中心的运维

什么叫数据中心?维基百科给出的定义是"数据中心是一整套复杂的设施.它不仅仅包括计算机系统和其它与之配套的设备(例如通信和存储系统),还包含冗余的数据通信连接.环境控制设备.监控设备以及各种安全装置".在云大行其道的今天,随着数据中心建设规模的不断扩大,新技术的层出不穷,数据中心变得越来越复杂.大型数据中心往往是由很多规模庞大的集群系统组成,其运维工作需要具备方方面面的知识,包括硬件.网络.服务器.存储.安全以及业务上的东西,需要上下打通地去做运维工作. 当一个数据中心的规模非常大,面临

大型数据中心内部路由选择:为何选择BGP而不是OSPF

大型数据中心fabric往往把BGP作为内部路由协议的原因:1.BGP比IGP具有更简单的状态机和数据库:2.BGP交换的是路由,直接命令,不需要运行算法(比如SPF)来计算路径:3.BGP支持逐跳流量工程:4.路由传播来说,BGP范围更小(对等体传播,OSPF需要链路状态泛洪),因此更稳定. IBGP和EBGP的选择:1.EBGP会话一般建立在BGP对等体的链路上,IBGP一般建立在BGP对等体的环回接口上:2.EBGP使用AS-path防止环路,IBGP在同一AS内,使用水平分割原则:默认从

3D可视化平台助力数据中心IT运维!

IT运维部门核心价值是保障业务系统的正常运行,而支撑业务系统的IT环境又非常复杂,涉及人力.网络.服务器.IDC.机柜.各类应用等等资源.任何一个环节出现问题,都将"牵一发而动全身".可见,IT系统资源监控与管理非常重要. 因此,我们需要将影响应用系统稳定运行的几个要素数据3D可视化.比如:基础设施资源使用情况:应用性能指标及系统整体运行情况,如这个系统是否可用.整体健康度等.总体来说,可以用到的常用可视化手段有数据统计.拟物化关系.流程关系.各种图表展现以及3D动画技术等. 在当下大

数据中心基础设施管理(DCIM)解决方案能为管理者带来什么?

忙到无法节省时间 数据中心的管理效率可以通过浪费的时间和金钱来衡量.在最近的一项调查中,分别来自美国和英国的200位数据中心管理者表示,运用数据中心基础设施管理(DCIM)解决方案这类工具可以使他们的工作"更容易.更快捷.更节省成本". 如果应用DCIM解决方案真的能节省时间并有效降低运营费用,那为什么调查发现仍有43%的数据中心管理者还在依靠人工方法替代DCIM呢?到底是什么原因阻碍了DCIM的应用呢? 没有时间或预算实施DCIM 英特尔委托Redshift调研机构深入探寻当下数据中

德国罗森伯格被授予“数据中心优秀产品解决方案”

大会现场 第五届中国数据中心产业发展大会于2015年3月25日在北京召开,大会聚焦大数据产业转型.市场战略机遇与挑战.云计算技术架构及企业应用等重点议题等.众多行业嘉宾关注数据中心产业的热门应用.最新发展趋势以及大数据产业动态,共谋中国数据中心产业的可持续发展之道. 罗森伯格获得"数据中心优秀产品解决方案"奖项 罗森伯格作为全球可信赖的通讯网络供应商参加本次会议,被大会评选为"数据中心优秀产品解决方案"企业.提供的高品质产品系统解决方案广泛地应用于各个行业中,如银行

为全球数据中心提供创新存储方案

为全球数据中心提供创新存储方案 -PMC公司副总裁兼存储事业部总经理Travis Karr于CCCC演讲实录- 本次演讲涉及几个方面的内容.首先是中国数据中心存储增长的源动力,另外就是全球其他地区的数据中心看到的共同发展趋势.依据这些趋势,进一步针对具体案例做出详细分析与阐述.最后就PMC在全球数据中心创新技术研发方面的概况做一个简短介绍. 凭借巨大的人口受众和极其强有力的经济发展,加上互联网领域的创新,中国其实已经在大数据时代占据了独领风骚的地位.在存储领域,中国的存储销售量甚至已经逐渐超越美

开启数据中心主机运维的上帝视角

常常有这么一句话在激励每一位运维人员,"不以故障多为耻,而以恢复快为荣."运维人员就是要快速定位问题,分析问题,排除故障,快速恢复来保障生产业务不受中断.然而,现代大型数据中心,运维人员要管理的系统节点比以前繁多,为了掌控数据中心的实时运行情况与定位问题,需要花的时间成本已经长得无法接受. 极好的可视化手段,能够让运维人员在纷乱的监控资源群中快速定位故障.我们用以下几点来了解这些功能. 一.全面观察,实时监控 我们抽象的把每一个监控的主机都当成一个圆圈,有多少监控的主机,就出现多少个圈

超大规模数据中心:给我一个用整机柜的理由先

乐高玩具是一款老少咸宜的玩具,只要你有丰富的想像力,就可以将那些标准的模块拼装成任意你想要的东西:小到一朵花,大到一座宏伟的城市.标准化.模块化就是这么神奇,它不仅可以在玩具的世界里化普通为神奇,而且在数据中心领域也可以变不可能为可能. 标准化.模块化深入人心 举例来说,Facebook全球的数据中心.腾讯天津数据中心都借鉴了乐高玩具的设计经验,将数据中心的建筑模块像乐高玩具一样堆叠在一起,让超大型的数据中心成为可以重复利用的可快速部署的数据中心. 在数据中心物理基础设施领域,模块化的设计和部署