首页 文章 精选 留言 我的

精选列表

搜索[V模型],共10000篇文章
优秀的个人博客,低调大师

跨平台物联网通讯框架 ServerSuperIO v1.1(SSIO)

SSIO的更新 在SSIO上增加了UDP通讯方式,可以到Git上 下载源代码。在原来的项目中,远端的设备与中心站的数据交互并没有使用过UDP方式。这种短连接的通讯链路,不容易维护,主要体现在:(1)持续的数据交 互能力。(2)对现场设备进行长时间的维护和校准。(3)SSIO要协调设备、IO和控制方式之间的运作关系,无法即时反应设备的IO状态。等等。 但是,对于一个平台来讲,UDP的通讯方式是应该具有的,根据现场情况选择是否应用。例如:远端的设备定时发送设备状态信息等,可以使用UDP的通讯方式,在SSIO里单独建立一个状态服务实例。 SIO和SSIO应用方案 SIO和SSIO的设计思想是相似的,但是还是有一定的区别,请参见《C#跨平台物联网通讯框架ServerSuperIO(SSIO)》。 根据应用场景,SIO和SSIO可以相互配合部署到不同的地方。SIO可以部署在工业现场或工作站点,采集区域范围的硬件设备或传感器的数据,然后打包上传数据;SSIO可以部署在服务器端,接收上传的数据,并与现场进行数据或命令交互。结合图如下: SIO本身就是一个WinForm应用程序,只需要继承MainForm就能够很快的构建自己的图形化的通讯平台,把开发好的设备驱动、图形显示、服务等 以插件的方式挂载到平台,就可以运行了,可以参见二次开发手册。一般现场工控机都是Windows操作系统,尽管SIO不支持跨平台(开发SIO的时候, 还没有Mono呢),但是支持Windows XP sp3所有以上版本的操作系统。 SSIO本身是一个支持多服务实例的命令行程序,更适合部署在服务器端,负责与SIO或现场设备、传感器进行数据交互。并且SSIO的各方面的性能更优于SIO,以及支持4种控制模式的应用场景,轮询模式、自控模式、并发模式和单例模式。 使用SIO和SSIO二次形式发时不需要关心对设备、IO和控制方式的调度,只需要继承接口开发设备驱动和设置相应的参数就可以了。另外,SIO和SSIO可以作为组态软件的核心通讯组件。 嵌入式智能设备 SSIO可以支持跨平台运行,如果智能设备内嵌裁剪后的Linux操作系统,SSIO可以跑在智能设备中,唯一的缺点就是缺少强大的Web监控服务,现在ASP.NET Core支持跨平台部署了,到是一个发展的方向。 SSIO也可以作为嵌入式智能网关服务,对采集的数据进行协议转换、打包、转发。 其他说明 SIO和SSIO的设备驱动,当网络通讯时,都支持Tcp Client工作模式。因为现场环境比较复杂,又是防火墙、路由之类的。有时候做项目,找个熟悉环境的人都困难,所以当前找了一个最简单的解决方法,就是反向连接,也一直延续至今。 ====================================分割线================================文章转载自 开源中国社区[http://www.oschina.net]

优秀的个人博客,低调大师

IBM V3500存储更换控制器一例

今天一早接到客户电话,说单位内部分用户不能访问网络,我登录检查之后发现存储的一个控制器损坏导致,主要原因概述如下。 当前客户核心业务运行在vSphere虚拟化平台,该单位有3台HP服务器+1台IBM 3524存储,服务器与存储之间采用SAS接口连接,其中2台HP服务器使用SAS线连接到A控制器,另1台HP服务器使用SAS线连接到B控制器,服务器与存储之间无冗余连接。3台HP服务器安装ESXi 6.0配置成HA,所有虚拟机都保存在IBM 3524存储中,当A控制器损坏之后,前2台HP服务器丢失到存储的连接导致部分虚拟机不能启动,因为HA中损坏了2台服务器,HA失效。知道原因之后,让客户将其中1台HP服务器的SAS线连接到B控制器的空闲端口(当前IBM 3524有两个控制器,每个控制器有2个SAS接口,所以B控制器当前有一个端口空闲),将这台服务器重新启动,此时会有2台服务器可以正常工作,之后将业务虚拟机启动,此时单位应用暂时恢复。 在业务恢复之后,因为当前的存储已经过保,所以申请购买新的同型号的控制器,控制器到货之后更换损坏的A控制器,在更换的过程中又发现Slot 8的磁盘即将失效,在更换控制器后同时替换了即将失效的磁盘,下面介绍一下主要的过程与步骤。 (1)进入IBM DS Storage Manager管理软件,可以看到A控制器已经离线,同时有两块盘有×××的五星符号,如图1-1所示。 图1-1 已经离线 【说明】当前示意图中Slot 3与Slot 8都有×××的五星符号,其中Slot 3里面有一块磁盘,因为最初该盘位有点故障帮此盘位未分配到陈列中,故当前磁盘未分配未使用,但此磁盘是一块可用的磁盘,可以将其从盘位取出,放到其他需要的位置;而Slot 8分配为Array-2逻辑磁盘,该磁盘有数据丢失的风险。 (2)在"Recovery Guru"的进一步检查中,看到第8盘位的磁盘即将失效,有数据丢失的风险,如图1-2所示。 图1-2 slot 8磁盘 (3)将损坏的A控制器从存储中拆下,更换上新购置的控制器。 (4)在存储管理中,右击A控制器,在弹出的快捷菜单中选择"Advanced→ Place→ Online"将其置于在线状态,如图1-3所示。 图1-3 将控制器置于在线 (5)控制器处于在线状态,如图1-4所示。 图1-4 控制器在线 但控制器在线后,连接A控制器的服务器没有发现LUN,近一步检查发现A控制器的flash状态不对,如图1-5所示。 图1-5 A控制器的flash状态不对 估计控制器在快递过来的过程中,可能有颠簸或其他原因导致控制器中的SD卡(是一个8GB的高速缓存卡)松动,或者有问题。将新安装上的控制器设置为"离线状态",打开控制器,将原来损坏的控制器的SD卡插到新购置的控制器中。 (6)右击A控制器,在弹出的快捷菜单中选择"Advanced→ Place→ Offline"将其置于离线状态,如图1-6所示。 图1-6 将控制器置于离线状态 (7)在弹出的"Confirm Place Offline"对话框中单击"yes"按钮确认,如图1-7所示。 图1-7 确认设置为离线 (8)当控制器A处于离线之后,拆下控制器,如图1-8所示。然后换上原来损坏控制器的SD卡,重新插上控制器。 图1-8 控制器处于离线状态 (9)再次将控制器设置为在线状态,此时看到SD卡状态正常,如图1-9所示。 图1-9 控制器正常 此时连接到A控制器的服务器应该能发现存储分配的LUN,如果不能发现LUN,则可以在"Storage & Copy Services",右击LUN在弹出的快捷菜单中选择"Change→ Ownership/Preferred Path"选择"Controller in Slot A",如图1-10所示。 图1-10 更换LUN到A控制器 对于盘位8即将失效的磁盘,可以将其置于"Fail"然后用热备磁盘代替,然后在盘位8换上新的磁盘即可,主要步骤如下。 (1)右击Slot 8的磁盘在弹出的快捷菜单中选择"Advanced→ Fail",如图1-11所示。 图1-11 将磁盘设置为失败 (2)在弹出的"Confirm Fail Drive"对话框中输入yes然后单击"OK"按钮,如图1-12所示。 图1-12 确认设置 (3)右击Slot 6(这个盘位的磁盘是热备磁盘),在弹出的快捷菜单中选择"Hot Spare Converage",如图1-13所示。 图1-13 热备磁盘转换 (4)在弹出的"Hot Spare Drive Options"对话框中选择"Automatically assign drives",然后单击"OK"按钮,如图1-16所示。 图1-16 自动分配驱动器 (5)在"Replace Drives"对话框中将显示将Slot 8的失效的磁盘替换到Slot 6,如图1-17所示。 图1-17 替换驱动器 (6)返回到"Storage & Copy services"对话框,浏览LUN可以看到涉及到逻辑磁盘会重建,如图1-18所示。当时的时间是10点02。 图1-18 磁盘重建 (7)此时可以将盘位8的磁盘拆下,换上新的同容量的磁盘。等图1-18重构完成之后,盘位8的磁盘会被替换回来,如图1-19所示。此时盘位8的磁盘有个×××的五星标志,而盘位6的有个红色的十字标志。 图1-19 替换磁盘 (8)在"Storage & Copy services"对话框浏览涉及到的LUN,可以看到状态变为"Copyback Progress data unavailable",当前时间是22:23分,复制过程进行了大约60%,如图1-20所示。因为在替换Slot 8的时间大约是上午10点,时间到现在大约过了12小时,以此计算,整个更换、替换磁盘所需要时间大约15小时。 图1-20 复制过程 (9)第二天早晨7点33分检查,复制进度已经完成,如图1-21所示。 图1-21 复制完成 (10)在"Hardware"选项卡中单击Slot 8,可以看到当前磁盘已经分配到Array-2,原来Slot 6仍然变为热备磁盘,如图1-22所示。至此整个维护完成。 图1-22 系统状态正常

优秀的个人博客,低调大师

Hadoop2.7实战v1.0之JVM参数调优

Hadoop正式上线之前,首先要调整的是各个进程的JVM参数设置,特别是对于HDFS Namenode来说。 HDFS的JVM参数配置文件: hadoop-env.sh Namenode进程的JVM配置: HADOOP_NAMENODE_OPTS Datanode进程的JVM配置: HADOOP_DATANODE_OPTS client命令行的JVM配置: HADOOP_CLIENT_OPTS对于Namenode而言, 由于元数据存储\操作都在内存中,所以Namenode JVM要根据集群规模设置,通常情况下换算公式为: 在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有1000 0000个小文件,每个文件占用一个block,则namenode需要2G空间。如果存储1亿个文件,则namenode需要20G空间。这样namenode内存容量严重制约了集群的扩展。 Apache Hadoop JVM配置($HADOOP_HOME/etc/hadoop/hadoop-env.sh): export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS -Xmx2048M" export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS -Xmx2048M" -Xmx标识进程使用最大的内存大小 CDH4/5 JVM配置(通过web http://172.168.1.136:7180/):进入CDH4/5--》hdfs1/hdfs--》配置tab--》搜索"堆栈"关键字,修改 namenode,datanode,journalnode,failover controller的java进程堆栈最大大小,保存,再重启集群生效.namenode:8Gdatanode:7Gjournalnode:512Mfailover controller:512M

优秀的个人博客,低调大师

半日破 iOS 8.1.2 太极越狱v1.2.0发布

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 今天凌晨,苹果正式向用户发布了 iOS8.1.2 升级更新,本次更新与 iOS8.1.1 类似,也是一个小幅升级,主要修复之前版本的漏洞,此版更新修复了之前存在的 iTunes 购买铃声莫名消失的问题。此次更新文件大小约为 28MB。用户可通过 OTA 完成升级。 而在不到十二小时之后,十天前发布 iOS8.1.1 ***越狱的中国越狱团队太极就正式对外发布了适用于苹果 iOS8.1.2 系统的***越狱工具。基于该系统的 iPad、iPhone 及 iPodtouch 等设备均可通过该工具完成越狱。 此次发布的太极越狱工具与 iOS8.1.1 的越狱操作过程类似,关闭苹果手机的「锁屏密码」和「查找我的 iPhone」功能,连接 PC 并且打开太极越狱工具,一分钟即可完成越狱。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册