热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SAS之SCSIEnclosureServices-3(SES-3)

说明:本人现在从事存储产品的开发,涉及到SAS协议族,对协议的理解还不是很明白。此处只是为了记载便于以后查阅,随着理解的加深,以后会对不对之处进行更改。同时现公司使用的LSI同时提供

 说明:本人现在从事存储产品的开发,涉及到SAS协议族,对协议的理解还不是很明白。此处只是为了记载便于以后查阅,随着理解的加深,以后会对不对之处进行更改。

同时现公司使用的LSI同时提供的芯片,包括SAS 2008 controler ,2*36 port expander。其中跟SES相关的代码处理在expander中实现。

1:什么是SCSI Enclosure Services ?

Enclosures may provide power, cooling, and protection for devices. In addition, enclosures may provide external indicators about the state of the enclosure and devices. The indicators may identify the enclosure,identify proper operation of the devices and enclosure elements, provide indications of the state of RAID devices in the enclosure, and provide failure and maintenance information. Some of the individual elements of an enclosure may be removable and replaceable while the enclosure continues to operate. An enclosure
services process typically manages all these enclosure elements and communicates with the SCSI application client. All those elements managed by the enclosure services process are in the enclosure domainof that process.

The application client has two mechanisms for accessing the enclosure services process, both using the RECEIVE DIAGNOSTIC RESULTS and SEND DIAGNOSTIC commands (see SPC-4):

The application client uses the SEND DIAGNOSTICcommand and the SES control-type diagnostic pages (see 6.1) to set various indicators and states within the enclosure domain, allowing the enclosure to provide the most appropriate environment for the other SCSI devices contained within it. Similarly, the application client requests information from the enclosure services process using theRECEIVE DIAGNOSTIC RESULTScommand and the SES status-type diagnostic pages (see 6.1) to examine various status and warning
information available from the enclosure.

 

An application client uses the SEND DIAGNOSTIC command to transmit control information to the enclosure services process. The control information may include internal and external state indicators as well as instructions to the enclosure to perform certain operations or to modify its operating mode

An application client uses the RECEIVE DIAGNOSTIC RESULTS command with the PCV bit set to one to obtain many kinds of enclosure status information. The information shall indicate the actual state of the enclosure. The actual state is a vendor specific combination of the indications set by the instructions from application clients and the indications established by the enclosure services process.

以上唯一想表明就是:control --->send diagnostic,status --->receive diagnostic。发送控制信息使用send diagnostic,接受状态信息使用receive diagnostic。

主要就是:管理和控制enclosure中所包含的elements或者获取elements的状态信息,方法是通过send diagnostic和receive diagnostic方式来进行,就表明了信息的获取或者控制必须按照SPC4中所定义的命令格式来进行通信。

其中一个enclosure中有哪些elements? 对于elements可以参考SES3中的第7章的介绍。

elements按照类型不同可以有一下几种:

a) control elements in the Enclosure Control diagnostic page (see 6.1.3); 即控制elements 如:cooling
b) status elements in the Enclosure Status diagnostic page (see 6.1.4);即状态elements 如:Temperature Sensor
c) threshold control elements in the Threshold Out diagnostic page (see 6.1.8); and
d) threshold status elements in the Threshold In diagnostic page (see 6.1.9).threshold表示此类elements有一定的门限值,如Voltage Sensor,Current Sensor。

2:SES中所包含的Diagnostic page codes for enclosure service devices

 2.1这些page code都是用在对enclosure中的elements进行control或者status的。

上面的“control or status”一栏说明了此项page code是操作类型,是控制类型还是状态类型,也就决定使用send diagnostic还是receive diagnostic。

2.2:SES之page code Configuration diagnostic page

从上面的page code中可以知道,是状态类型的page code只有receive diagnostic没有send diagnostic即只能接受elements的信息而不能对elements进行控制。

The Configuration diagnostic page returns information about the enclosure, including the list of elements in the enclosure. The element list shall include all elements with defined element status or controls and may list any other elements in the enclosure. The Configuration diagnostic page provides enclosure descriptor information and parameters. The Configuration diagnostic page may provide descriptive text identifying element types in more detail

此page code用来返回有关enclosure的信息,这些信息包括enclosure中所包含的elements,这些elements包括了所有已经定义的status和control 元素。同时提供了enclosure的描述符和参数信息(descriptor information and parameters)

The Configuration diagnostic page is read by the RECEIVE DIAGNOSTIC RESULTS command with a PCV bit set to one and a PAGE CODE field set to 01h.

通过设置RECEIVE DIAGNOSTIC RESULTS command 中的PCV为1,page code为01h来对Configuration diagnostic page 进行读操作。

receive diagnostic命令格式如下:

如果application现在发送send diagnostic,其中pcv=1,page code=01,enclosure management service 需要返回 Configuration diagnostic page 所定义的格式的数据包给application。configuration diagnostic page 数据包格式定义如下:

接下来主要关注就是数据包格式中的:Enclosure descriptor,Type descriptor header list.....即第8个字节之后的数据信息。

Enclosure descriptor的数据包格式如下:

在上面的格式中可以自定用户自己的数据。

其他命令的处理基本类型,认真阅读SCSI Enclosure Services - 3 (SES-3)基本都能明白,个人觉得SES是SAS协议族中最好理解的。

3:SES中的elements

前面已经提到了elements,包括的elements如下:

由于有四种类型的elements,因此就有四种类型的elements数据包格式。

可以参见SES3中的第7章

7.2.2 Control element format

7.2.3 Status element format

7.2.4 Threshold control element format

7.2.5 Threshold status element format

下面以elements中的 Cooling element为例说说,application通过send diagnostic和receive diagnostic对Cooling element的控制和状态信息的获取。

The Cooling element manages a fan, blower, or other cooling mechanism.

数据包中的RQST IDENT:

当RQST IDENT=1时:enclosure需要通过一定的方式来identify自己本身,这里的identify表示通过已经的方式能使cooling elements这个被认为的发现。如:使某个led发光表示已经identify自己本身了。当RQST IDENT=0时:跟等于1执行相反的操作。

RQST FAIL,RQST ON等参数的意思,主要根据值是1还是0,做出相应的操作。如:led的打开或者关闭。

REQUESTED SPEED CODE:根据speed code的值,设置enclosure中的cool的转速。

通过receive diagnostic来获取cooling elements的状态信息,Cooling status element定义如下:

status elements主要就返回此elements本身的状态信息,如上面的cooling的转速。跟control是相反的操作。一个write,一个read,一个set,一个get。

 


推荐阅读
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
  • 利用 Zend Framework 实现高效邮件发送功能 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 如何在MySQL中选择合适的表空间以优化性能和管理效率
    在MySQL中,合理选择表空间对于提升表的管理和访问性能至关重要。表空间作为MySQL中用于组织和管理数据的一种机制,能够显著影响数据库的运行效率和维护便利性。通过科学地配置和使用表空间,可以优化存储结构,提高查询速度,简化数据管理流程,从而全面提升系统的整体性能。 ... [详细]
author-avatar
odoresampey_768
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有