摘要:
本文档介绍 StorADE 的总体环境,包括守护程序和计时程序的使用、用于监视设备的探测技术 、通知提供程序和事件发生结构。本文档适合于系统管理员,并要求使用者了解 Unix (Solaris) 的相关知识。本文档可与“用户指南”一起使用,后者详细介绍了图形用户界面的功能。涉及 Sun 存储器产品时,本文档使用缩写代替。附录 A 中的缩写列表提供了更加正确的产品列表。
什么是 StorADE:
StorADE 是一种用于监视和诊断 Sun 存储器产品、Sun 支持的交换机和 Sun Virtualization 产品的分布式应用程序。 StorADE 的主要功能包括设备监视、事件生成、拓扑的发现和表示、诊断、修订检查、设备/FRU 报告和配置(系统版本)。 StorADE 依靠带内(在数据路径上)和带外(通过以太网)安装的代理实现其监视功能。 在服务器上安装 StorADE 软件包以后,将在该服务器上添加一个计时程序 条目,并在由相同服务器上的 inetd 管理的服务列表中添加一个 StorADE 特定的 http 服务。计时程序将定期(时间可调)“唤醒” StorADE 代理,使其检测设备和监视日志文件。 StorADE 图形用户界面 (GUI) 中维护的配置文件用于维护代理应监视的设备的列表。这些代理中将有一个作为主代理,所有从属代理都将它们的发现(警告和事件)报告给主代理,以供进一步处理。生成的事件带有“服务顾问”内容如“可能原因”和“推荐操作”,可用于将事件进一步隔离到单个 FRU。
主代理的主要功能是通过 GUI 显示监视数据库(包括配置、使用报告、事件、运行状况和拓扑等),并将所有消息发送给诸如 SRS 等事件用户(在 GUI 中称为“通知提供程序”)。主 GUI 为主代理和从属代理集中所有配置功能。配置从属代理时无需将浏览器指向从属服务器。事件可以作为本地电子邮件发送给站点的管理员,或是作为警告和事件发送回 SRS、NetConnect 和 Sun Network Storage Command Center (NSCC)。NSCC 是一个统计数据库,Sun 工程使用它来发现 Sun 存储器产品的趋势和问题。还可使用 StorADE GUI 配置电子邮件和提供程序,并将结果保存在配置文件中。
下图是一个配置示例,其中一个主代理和一个从代理共同监视 2 个 Sun T3 合作伙伴小组、1 台交换机和 3 台 Sun A5000:
StorADE 有两个版本,“设备版”提供所有 StorADE 功能(几种 Sun 解决方案特定的功能除外),“Sun 解决方案版”在 3900/6900/6320 产品上使用服务处理器。 “设备版”(软件包名 SUNWstade)是名副其实的“San”版本,因为它包含 StorADE 的所有拓扑和 SAN 聚集功能。 “Sun 解决方案版”(软件包名 SUNWstads)预先安装在解决方案产品的服务处理器上,提供与“设备版”不同的功能;它还包括专用的管理功能,如“3900/6900 配置”功能。这两个软件包创建自同一个代码库。
StorADE 安装生命周期:
典型的 StorADE 安装分以下几步:
在一组服务器上安装 StorADE,选择其中之一作为主代理,通常选择已经作为管理站的服务器,或者是可以访问电子邮件并向名称服务器注册过的容易访问的服务器。主代理提供用户界面,即使没有从属代理,它也称为“主代理”。代理的每个实例(无论是主代理还是从属代理)都可以监视设备。可以以带内方式(通常通过安装在相应服务器上的从属代理)监视设备,也可以以带外方式(任何代理均可)监视设备。当日志文件可用时(如 t3/t4 和 3310 minnow 的情况),通常最好的方法是将代理安装在复制日志文件的服务器上,并通过此代理以带外方式监视设备。此配置允许同一代理查看日志信息、检测设备和建立找到的信息间的关联。在运行 pkgadd 之后,运行 /opt/SUNWstade/bin/ras_install 以设置 inetd 服务和计时程序。 ras_install 将询问一些基本问题,如“这是主代理还是从属代理”、“主代理的位置”、“是否打开 SSL 安全”等。
初始化配置。通过将浏览器指向包含正确端口号的主机来访问 StorADE。StorADE 端口号为 7654(非安全)和 7443(安全)。 注意: 通常初始登录的用户名为 ras,口令为 agent,初始登录之后可以对其进行修改。还可以创建拥有不同权限、语言环境和浏览器参数的其他用户。初始配置由以下部分组成:输入站点信息、发现设备、手动向 StorADE 配置中添加存储器设备、添加用于事件接收的本地电子邮件地址、添加用于将事件传输给 SRS、SSRR、NetConnect 等的通知提供程序。为方便起见和自动处理的需要,大部分功能都可通过 cli 命令实现。可以通过 GUI 执行“查看配置”报告,以对该配置做出正确的检查。
发现设备。StorADE 监控其配置文件(/opt/SUNWstade/DATA/rasagent.conf)内所包括的设备。通过“添加设备”、“发现设备”或 CLI 命令“ras_admin”将设备添加到这个文件中。“添加设备”是最直接的办法,通常需要输入要增加的设备的 IP。在 StorADE 可以将设备添加到其配置中前,它必须能够访问并识别该设备。识别意味着可以找到设备的 WWN 端口以及附设 ID。通过/etc/deviceIP.conf 文件可以自动发现设备。该文件的句法与 /etc/hosts 相近,并由系统管理员进行维护。它包含有 StorADE 所监测的所有设备的列表。请参考附录 D 以获得该文件的实例。在 /etc/deviceIP.conf 文件的基础上,CLI (ras_admin discover_deviceIP) 和 GUI 都可以用来发现设备。
发现拓扑。尽管这只是配置过程中的一个步骤,但要稍微复杂一些。要完成一个完整的 StorADE 拓扑发现,每个代理(主代理和从属代理)都必须发现它们在 San 中的部分(包括带内和带外)的信息,将这些信息合并为一个拓扑,并将该拓扑发送给主代理以供进一步聚集。主代理将收到的所有拓扑与它自己的拓扑合并,从而创建一个 StorADE “主”拓扑。StorADE 创建的拓扑主要是物理拓扑,它包括附件信息、合作伙伴小组信息、带内路径信息和 WWN 等。该拓扑将保存为当前 San“拓扑快照”,并在所有 San 相关操作中使用,直到用户创建新的 San 拓扑快照。可通过“管理”->“拓扑维护”->“拓扑快照”完成此功能。
启动代理。安装 StorADE 并完成 ras_install 以后,可能并没有运行每台设备的代理。通常在设备发现和通知提供程序初始化之后从 GUI 启动代理。启动代理才真正意味着 StorADE 计时程序在所有代理(主代理和从属代理)上都处于激活状态。可通过“管理”->“常规维护”->“启动代理”完成此功能(参考 site_map, 图 1)。 有关设备和提供程序初始化的详细信息,请参阅“StorADE 用户指南”。
设备警告发生时,StorADE 将通过电子邮件(如果已配置)通知站点管理员,并使用最初配置的远程服务(SRS、SSRR 等)向 Sun 发送通知。发送给管理员的电子邮件通常足以隔离问题,因为这些电子邮件将包含可能的原因和推荐的操作。为更全面地了解问题,站点管理员或 Sun 的工作人员可能希望访问 StorADE GUI(或 CLI),查看电子邮件信息上下文。可通过查看设备本身(“监视”->“设备”),查看拓扑(“监视”->“拓扑”)或查看完整的 StorADE 事件日志(“监视”->“事件日志”)完成此项功能。有关这些功能的示例,请参考图 2、3、4。图 5 显示一个电子邮件样例。 查看这些信息之后,可执行诊断以进一步隔离引起问题的原因。
隔离问题。可通过 CLI 或 GUI 执行诊断程序。StorADE GUI 允许用户使用从属代理远程执行测试。这个特性使用户即使在实际的诊断测试正在从属服务器上进行时,也能够在主服务器的中央 GUI 上启动和控制测试。
问题解决后,用户可以清除 StorADE GUI 中设备的运行状况,如果添加了新的存储器设备,则重新创建一个拓扑并返回步骤 5。
监视策略:
监视由安装在一组服务器上的主代理和从属代理完成。选择这些服务器基于以下原因:
服务器可以访问带内存储器设备(如 Sun StorEdge A5K)。
服务器可访问日志文件(如 /var/adm/messages) 或存储器设备日志文件(如 /var/adm/messages.t3)。
服务器对能以带外方式进行监视的存储器设备(如 Sun T3 和 Sun 交换机)进行带外访问。
使用多个服务器可以分担监视负载。 例如,不是所有 Sun StorEdge T3 阵列都需要由同一代理监视。Sun StorEdge T3 常常分组安装,并将它们的日志文件 (messages.t3) 复制到多台服务器。这种情况下,最好在每台服务器上都安装从属代理,以便通过同一代理访问日志文件和相应的 t3。 有关 StorADE 配置的详细信息,请参阅“安装和配置规划指南”。
监视周期:
代理的执行由每台服务器上的计时守护程序控制。监视周期的主要步骤是:
验证该代理是否独立运行,如果代理的上一次运行还没有结束:则允许它完成。一次仅允许运行监视代理的一个实例 (./opt/SUNWstade/bin/rasagent) 。
装载并执行所有相应的设备模块,生成使用报告和与运行状况相关的事件。通过检测设备获取所有相关信息并将信息保存到存储于 /var/opt/SUNWstade/DATA 的报告中便生成了使用报告。代理的一次运行和下一次运行将对报告进行比较,以生成与运行状况相关的事件。通过中继日志文件中找到的信息也可以创建事件。例如,在 /var/adm/messages.t3 中找到的所有错误和警告都将转换为“日志事件”事件,而不做进一步分析。大部分事件的生成是由于 StorADE 中的某个规则或策略判定存在问题,但如果 T3 指出系统日志文件中存在问题,则立刻生成一个事件。有关用于监视设备的命令的详细信息,请参考附录 C;
将事件发送给主代理,如果这些事件通过从属代理生成的。或者,如果该代理为主代理,则将这些事件发送给感兴趣的各方。 主代理负责生成自身的事件并收集来自从属代理的事件。在分发以前,事件也可以在主代理上聚集。
在 DATA 目录中存储器使用报告。注意: 事件日志可从 GUI 的“监视”->“日志”(/opt/SUNWstade/DATA/Events.log) 访问。然后 StorADE 使用必要的统计信息更新状态数据库。某些事件要求在生成事件前要达到一定的阈值。例如,由于某种阈值要求的存在,使交换机端口的 CRC 计数增加 1 不足以触发一个事件。另一个示例是电子邮件。StorADE 支持电子邮件阈值,用于防止为同一设备的同一组件生成多封电子邮件。通过跟踪指定时间段内发送的事件的数量,可以防止多余的电子邮件警告。注意: 其它提供程序(非电子邮件提供程序)不支持此项功能,因为跟踪发送的所有信息可能很重要。大多数事件不存在此问题,因为它们仅在初始状态发生改变时被发送。例如,如果电池供给丢失(如电源故障),则针对这一状态变化发送一个警告,但在该状态变为正常(如电源恢复)或进入另一个状态(如电源被移除)以前,不会发送更多事件。
将相应的事件发送给感兴趣的各方。无需将所有的事件发送给每个人。例如,本地管理员可以选择他们需要的事件。管理员可以选择他感兴趣的设备类型和事件种类(如 通信丢失),此外管理员还可以选择要接收的警告的级别(如 只接收警告和错误)。 注意:Sun SRS 提供程序只接收可操作事件(请参阅“事件结构”)而 Sun Network Storage Command Center(使用 NetConnect 的 NSCC)则接收所有事件。
事件生命周期:
大多数 StorADE 事件都是基于运行状况的转变而生成的。 例如,当某一设备的状态由“联机”变为“脱机”时,便会发生运行状况的转变。生成事件的真正原因是“脱机”到“联机”状态的转变,而不是实际值“脱机”。如果使用单独的状态来生成事件,将不断生成相同的事件。监视日志文件时不能使用转换,因此日志事件的重复率非常高。可以通过为日志文件中的条目设置阈值将该问题最小化。阈值确保在生成事件前的一定时间内仅产生最小数量的日志文件条目。StorADE 还包含一个“事件最大数量”数据库,用于跟踪在相同的 8 小时内生成的关于同一主题的事件的数量。该数据库用于在没有其他方法时,停止重复事件的生成。 例如,如果一台交换机的端口每几分钟就在“脱机”和“联机”之间切换一次,则事件最大数量数据库将确保此切换每 8 小时报告一次,而不是每 5 分钟就报告一次。
通常使用下列规则生成事件:
第一次监视某个设备时,生成一个发现事件。该事件不可操作,用于设置监视基线,主要适用于 NSCC。该事件详细描述存储器设备的组件。发现之后的每一周,都会生成一个审核事件。它的内容与发现事件的内容相同。
当在主机或存储器日志文件中发现感兴趣的信息时,便可能生成一个日志事件。如果可能,该信息通常绑定在正确的存储器设备上,并发送给所有的用户。可根据阈值将这些事件变为可操作事件,并发送给 SRS、SSRR、NetConnect 等。
当通过检测设备而生成的使用报告的内容与上次(通常是 x 分钟之前的)使用报告相比发现改变时,将会有事件生成。生成的大部分 StorADE 事件有: 状态变化事件、拓扑事件、报警事件等。有关设备事件的完整列表,请参考附录 B。在 StorADE GUI 中,使用“报告”->“服务顾问”->“事件顾问”可获得有关事件的更多信息。
如果可能,StorADE 主代理会将相关事件合并以生成集合事件。注意:缺省情况下并不启用事件聚集,但可用于在单个电子邮件中自动聚集多个事件,该电子邮件中显示集合事件和用于生成集合事件的原始事件。
所有事件都包括以下字段:
事件类型,描述事件的种类,即: 发现、日志事件、状态变化事件等。
设备类别,对应于一个 Storade 设备类别: a5k、t3,、a3500fc、交换机、brocade 等。
事件严重程度: StorADE2 中的严重程度为:0=通知/正常,1=警告,2=错误, 3=错误/紧急。
严重程度在 GUI 中用以下图标显示:
可操作标记:如果事件生成后需要一定的操作,则称该事件是可操作的。例如,这些事件需要转到 Sun SRS。 错误事件和错误/紧急事件也是可操作的,有些警告事件是可操作,但大部分警告事件都不可操作。通知事件是不可操作的。
事件主题:主题是特定于设备的。例如,在交换机上,事件类型可以是状态变化事件,主题可以为“端口 1”:例如,此事件/主题可用于发出警告:某个交换机端口已由“联机”变为“脱机”。
事件代码: 此代码由以句点分隔的三个数字组成。代码用于标识事件,等效于“设备类别.事件类型.事件主题”,但长度更短。有关代码的完整列表,请参考“事件顾问”。事件代码在 GUI 中通常是可见的,并允许对服务顾问数据库进行方便的访问,该数据库中存放了产生事件的原因和推荐的操作。
备用主要主机:
StorADE 支持备用主要主机的概念。备用主要主机是一台从属主机,每次运行计时程序时它都会检验实际主要主机是否处于活动状态,如果实际主要主机没有响应,备用主要主机就会接管实际主要主机的某些职能。包括备用主要主机在内的所有从属主机都持有 StorADE 配置的一个完整的副本。 该配置描述所有代理的位置(IP 地址等)。这些信息允许备用主要主机调用从属主机,并将事件流从实际主要主机暂时重定位到备用主要主机。
因为实际主要主机负责发送事件和电子邮件,备用主要主机的一个主要功能就是向管理员发出警告:主服务器无法继续运行,否则将永远无法发送该事件。 备用主要主机不会成为实际主要主机,但它会记住哪个代理是实际主要主机,并且一旦重新获得与实际主要主机的通信,备用主要主机就不再充当临时主要主机的角色。这样的体系结构可用于处理主代理的暂时丢失: 从站点上删除了主代理,应将另一个服务器作为永久性主代理(再次运行 ras_install)。
产品残留程序:
StorADE 设计包含一个很小的残留程序,StorADE 在不使用时处于不可见状态。残留程序包括一个计时程序和一个根据请求用于 browser/slave/master 通信的 http 服务。
StorADE 包含一个计时程序,该程序每 5 分钟运行一次。每次启动计时程序时,它都会检验 StorADE 配置文件以确定是否应执行代理。 各个代理的实际代理频率可以不同,此设置可以通过 GUI 完成。 例如,如果代理频率改为 30 分钟,则计时程序在 6 次运行中将中止 5 次。此计时程序代理 (/opt/SUNWstade/bin/rasagent) 在主代理和从属代理上运行,是一个能增大到约 15 兆字节内存的 Perl 程序。 StorADE 中不包含 Perl,因此服务器上必须装有 Perl(Perl 5.005 或更高版本),StorADE 才能工作。运行时,计时代理将设备特定的信息存储在 /opt/SUNWstade/DATA 目录中,被监视的设备数量不影响它的进程的大小。完成对某设备的监视以后,设备数据将保存到磁盘并从内存中擦除。
计时代理仅用于检测设备和生成事件,不提供对 StorADE GUI 的访问,该访问由通常安装在端口 7654 和 7443(安全的)上的 http 服务提供。该程序(称为 /opt/SUNWstade/rashttp)在 inetd 中启动,并且只要用户需要 GUI,它就会一直保留在内存中。 Rashttp 具有超时设置(缺省为 30 秒),这段时间之后该程序将退出。此功能是为了尽量减少服务器中运行的进程数量。该 http 服务也是 Perl 程序,其残留程序与计时代理相似。它用于应答来自浏览器或从属主机的 http 请求。主要主机和从属主机都使用 http 共享配置信息、拓扑信息、新事件等。
安全选项:
安装 StorADE 时执行 ras_install 并对安全问题回答“是”,即可打开安全选项。这意味着将使用 SSL(安全套接字层)在主代理与浏览器之间及主代理与从属代理之间传输信息。StorADE 软件包包含一个 2008 年到期的缺省许可证(位于 /opt/SUNWstade/System/certificate.pem),该许可证使用最高级别的加密方式(使用 128 位私钥的 RC4 ) 。使用安全模式时,用于访问主代理的 URL 为 https://hostname:7443。 非安全 URL 为 http://hostname:7654。 可以使用 openssl 公用程序(公共域 OpenSSL 产品的一部分)来创建站点特定的许可证。使用与以下命令相似的命令: /usr/local/ssl/bin/openssl req -days 200 -new -nodes -x509 -out new_certificate.pem -keyout new_certificate.pem2. 有关许可证的详细资料,请参考附录 C。
为获得更高的安全性,StorADE 支持多个登录。这些登录可以由 “root”登录(登录名“ras”,缺省口令“agent”)添加,还可添加特定的功能 (guest, admin, expert, test)。这就允许用户使用他们自己的登录名/口令登录,并且拥有 GUI 中可用的限定的功能集。
Sun 解决方案:
Sun StorEdge 解决方案产品包括 Sun 3900/6900 (Indy) 和 Sun 6320 (Maserati midrange),是通过 Sun 交换机、Sun T3/6120、Sun Virtualization 引擎和 Service Processor 创建的逻辑存储器设备。 这些组件预安装在单个产品中,该产品包括服务器处理器上的 StorADE (StorADE 系统版)。 解决方案磁盘架中的 StorADE 和任何其他 StorADE 主代理一样,可以通过将浏览器指向服务处理器的 IP 地址进行访问。 注意: 对外界(包括 StorADE 的外部实例)而言,该解决方案磁盘架将作为单个设备对待。
在以前的版本中,可以将 Sun Solution 磁盘架上的代理配置为从属代理,但是出于伸缩性和方便维护的考虑,StorADE 2.2 版中删除了此项功能。 当安装在磁盘架以外的 StorADE 代理需要监视该磁盘架时,该代理将 Sun Solution 磁盘架作为拥有唯一图标的单个设备进行发现。 下图中,Sun solution 磁盘架的 2 个交换机当前都存在错误(以红色表示)。这些错误在磁盘架图标中用 2 个红色小框表示,每个小框代表一个交换机插槽。要查看磁盘架内部的详细拓扑,用户必须查看 3900 的服务处理器上的 StorADE 版本,或使用主代理上的“链接与启动”工具(位于磁盘架以外)。 有关将 Sun 解决方案作为单个图标的拓扑的示例,请参考图 3。
通知提供程序:
StorADE 支持各种通知提供程序,包括本地电子邮件、SRS、NetConnect、Trap 和 SSRR。这些提供程序必须手动激活,可使用 GUI 或 ras_admin cli 完成。每次完成代理周期时都会将信息发送给提供程序。注意:从属代理将事件发送给“主代理”,“主代理”将事件发送给提供程序。
本地电子邮件:本地电子邮件主要用于将事件信息发送给本地管理员。 可在 GUI 中输入多个电子邮件地址,每个地址使用不同的过滤器。当生成电子邮件时,将根据事件严重程度和电子邮件地址进行聚集。 这意味着一封电子邮件可以包含多个事件,但是这些事件都具有相同的严重程度级别。永远不会将一个错误和一个警告合并到同一电子邮件中。除了主要事件信息,电子邮件还将包含服务顾问信息(信息、可能的原因和推荐的操作)。事件还包含一个事件代码,事件代码可用作事件顾问数据库中的查找键值(也可从 StorADE GUI 获得)。
SRS 提供程序: 该 StorADE 模块将基本监视拓扑和所有可操作事件发送给安装在客户站点的 SRS 控制台。SRS 仅接收可操作事件,不能接收某些提供程序(如本地电子邮件)可以接收的所有事件信息:只发送事件源、事件说明和事件代码。SRS 控制台对 StorADE 主代理必须是可见的,该提供程序才能工作。 与控制台的通信是通过 http 实现的。
SSRR 提供程序依赖 Unix 进行通信。如果事件可用,则可以使用包含这些事件作为变量的文件来执行 sendToSupport 程序 (/va/remote.support/scripts/sendtosupport)。可操作事件和不可操作事件都将发送到 SSRR,可操作事件单独发送并标记为“beep”(与此相对的其他事件标记为“no-beep”)。
NetConnect 模块依赖于 SHUTTLE 文件 (/opt/SUNWstade/DATA/SHUTTLE) 与 NetConnect 产品进行通信。有 2 个 SHUTTLE 文件(SHUTTLE.1 和 SHUTTLE.3)用于分离可操作事件和不可操作事件。在可行的情况下,ncsend 程序(package_base/SUNWnc/bin/ncsend)也被执行 。 所有事件都发送到 NetConnect。 NSCC 使用 NetConnect 利用来自客户端的事件总装其数据库。
SunMC。激活 SunMC 模块使 StorADE 将拓扑和警报信息发送到 SunMC 代理。 可以在 SunM 主控台看到这些警报。一个特殊的 “rasagent” 模块必须安装在 SunMC 代理上以接收这些警报。这些模块包含在 StorADE (/opt/SUNWstade/System/SunMC/SUNWesraa.tar.gz)中。
SNMP 陷阱。 可为可操作事件发送 SNMP 陷阱,并通过可以接收陷阱的任何管理应用程序接收这些陷阱。
图
图 1: 站点地图:
本页显示所有可用功能。本页以动态方式生成,可根据 StorADE 的版本和登录到应用程序的用户的权限进行更改(例如,没有运行诊断测试权限的用户将看不到有关诊断的帮助信息。)
图 2:监视设备:
当使用 3 个框架时,本页显示 StorADE 的内容。顶部框架用于导航。左边的框架显示被监视的设备的列表以及它们各自的运行状况(“Sev”表示严重程度)。右边的框架可以显示 5 个页面([ 汇总 | 运行状况 | 日志 | 报告 | 图表 ])。“图表”页面显示选定设备(此例中为交换机)的图标以及该设备在 San(png 图形文件)中直接相邻的对象。 此图表中还带有此交换机的当前运行状况问题的列表。
图 3: 拓扑图:
本页将显示每个从属主机和主要主机单独生成的拓扑,或合并后的拓扑(称为“主拓扑”)。 可以对拓扑进行过滤和分组以便于访问。可以移动拓扑的图标并将它们保存在新的位置,以生成更具可读性的布局。右击一个图标可显示能对该图标进行操作的功能的菜单(例如, 使用鼠标右键可显示设备报告或运行诊断程序)。右击任意图标以外区域可以更改图的缩放程度。 按住 shift 键不放可以同时突出显示多个图标,适用于移动图标的情况。在本图中,设备和链接都可以进行标记和单击。同设备一样,选定(右击)链接可以查看有关链接状态的详细资料。该拓扑图由一个 Applet 生成,但通过 [打印] 功能可以生成 png(类似 gif 的图象格式)表示方式以方便打印。
图 3a: Sun Solution 内部:
本拓扑在 Sun 解决方案的 Service Processor 中是可见的,其中显示了 SP 本身、外部交换机、Virtualization 引擎、内部交换机和存储器阵列(本例中为 3 个 T3)。它还显示了磁盘架组件之间的 San 连接。在本图中,Sun 解决方案称为“wst31”,在上一个图中为另一个磁盘架“sp87”。 Sun 解决方案包括各种模型,因此组件的类型和数量可能不同。
图 4: 监视日志:
该“事件日志”页面可用于显示存储在 DATA/Events.log 中的事件日志的子集。显示的事件带有指向“服务顾问”的链接,从该处可以获得有关特定事件的详细信息。
图 6: 本地电子邮件通知:
电子邮件由主代理生成,发送至使用 GUI 在 StorADE 配置中输入的电子邮件地址。每个电子邮件地址可能使用不同的事件过滤器。电子邮件信息可能包括“说明”、“信息”、“可能的原因”和“推荐的操作”,本示例中没有“可能的原因”部分。
附录 A: 缩写列表:
附录 B: 用于监视的命令:
这一部分介绍监视 StorADE 所支持的存储器设备时使用的命令和技术。
3310 (Minnow): 此代理使用 cli 命令 “/opt/SUNWstade/bin/sccli show
A3500FC: 此代理使用 rm6 软件包的命令(healthck、lad、rdacutil 等)。这些命令以带内方式运行。
A5000:luxadm 命令用于监视 A5K。 一定要确保已经安装了最新的 luxadm 修补程序,然后再安装 StorADE 来监视 A5000,这一点很重要。
Brocade: StorADE 使用 snmp 库 (snmpget、snmpwalk) 以带外方式从 Brocade 交换机提取信息。
D2: Luxadm 和其他带内 cli 命令(disk_inquiry、rdbuf、identify 和 vpd)都可用于监视 D2。
Host:Host 代理也使用 luxadm 来读取 lun 和 hba 的状态。它还使用 unix 命令 (df、showrev、pkginfo) 提取主机信息。
MCData: StorADE 对 McData 交换机也使用 snmp。
Sun 交换机: 对于 1 gig 交换机,StorADE 使用 sanbox cli 命令。对于更新的 2Gig 交换机,则使用 snmp。
T3: StorADE 使用 http 查询从 T3 阵列提取特性(也称为令牌)。Sun StorEdge T3 阵列带有 web 服务器,可用于监视阵列的状态。T3 令牌的内容与“fru stat”、“fru list”、“vol stat”等 telnet 命令的输出结果相似。还使用 messages.t3/messages.6120 日志文件的内容:警告 (W: )、错误 (E: ) 和重要通知都由 StorADE 监视。
6120 (T4): 使用与 T3 相同的技术。
FC 磁带机:Luxadm 也用于监视光纤通道磁带机。
V880 磁盘: StorADE 使用 luxadm display 以带内方式监视 V880 磁盘。
消息文件:一个单独的模块监视 /var/adm/message 文件。此模块保存文件末尾的“seek”值,并读取文件中的新条目。 如果从存储器的角度来看这些新条目很重要,则生成日志事件。Hba 驱动程序向该日志文件写入。
Sun Virtualization (VE)。使用 VE 特定的命令 (showmap、slicview、svstat、mpdrive) 以带外方式监视 Sun Virtualization 设备(以前为 Vicom)。Sun Solutions 6900 系列中包含 Virtualization 设备。
Sun StorEdge 39xx/69xx 解决方案磁盘架。 StorADE 通过与磁盘架的服务处理器上的 StorADE 代理进行通信来监视解决方案磁盘架。此通信通过 HTTP 进行。
附录 C:许可证详细资料
附录 D:/etc/deviceIP.conf
该文件仅可用于可以 IP 编号带外访问的设备。通常支持交换机、Sun T3、Sun 6120、Sun 3510 以及 Sun Solution。
#IPNO 名称 类型(任选)
10.10.10.1 t3-b1
10.10.10.2 t3-b2
10.10.10.3 switch-s1
10.10.10.4 switch-s2
10.10.10.5 minnow1 3510
10.10.10.6 indy-1 rack
10.10.10.7 6120-1
10.10.10.8
附录 E:事件列表
############################ 3310.grid: Sun 3310/3510 ############################ 3310 AlarmEvent Revision 3310 AlarmEvent channel 3310 AlarmEvent enclosure 3310 AlarmEvent fan 3310 AlarmEvent firmware_version 3310 AlarmEvent part 3310 AlarmEvent power 3310 AlarmEvent raid_level 3310 AlarmEvent size 3310 AlarmEvent temperature 3310 AlarmEvent volume 3310 CommunicationEstablishedEvent ib 3310 CommunicationEstablishedEvent oob 3310 CommunicationLostEvent e 3310 CommunicationLostEvent ib 3310 ComponentInsertEvent disk 3310 ComponentInsertEvent power 3310 ComponentRemoveEvent disk 3310 DeviceLostEvent aggregate 3310 DiscoveryEvent enclosure 3310 LocationChangeEvent enclosure 3310 LogEvent cpu 3310 QuiesceEndEvent enclosure 3310 QuiesceStartEvent enclosure 3310 StateChangeEvent+ disk 3310 StateChangeEvent+ volume 3310 StateChangeEvent- disk 3310 StateChangeEvent- volume ############################ 6120.grid: StorEdge 6120 ############################ 6120 AlarmEvent+ power.temp 6120 AlarmEvent- disk.pathstat 6120 AlarmEvent- disk.port 6120 AlarmEvent- disk.temperature 6120 AlarmEvent- interface.loopcard.cable 6120 AlarmEvent- power.battery 6120 AlarmEvent- power.fan 6120 AlarmEvent- power.output 6120 AlarmEvent- power.temp 6120 AlarmEvent cacheMode 6120 AlarmEvent cacheModeBehind 6120 AlarmEvent initiators 6120 AlarmEvent log 6120 AlarmEvent lunPermission 6120 AlarmEvent revision 6120 AlarmEvent system_reboot 6120 AlarmEvent sysvolslice 6120 AlarmEvent time_diff 6120 AlarmEvent volCount 6120 AlarmEvent volOwner 6120 AuditEvent enclosure 6120 CommunicationEstablishedEvent ib 6120 CommunicationEstablishedEvent oob 6120 CommunicationLostEvent ib 6120 CommunicationLostEvent oob 6120 ComponentInsertEvent controller 6120 ComponentInsertEvent disk 6120 ComponentInsertEvent interface.loopcard 6120 ComponentInsertEvent power 6120 ComponentRemoveEvent controller 6120 ComponentRemoveEvent disk 6120 ComponentRemoveEvent interface.loopcard 6120 ComponentRemoveEvent power 6120 DeviceLostEvent aggregate 6120 DiagnosticTest- 6120ofdg 6120 DiagnosticTest- 6120test 6120 DiagnosticTest- 6120volverify 6120 DiscoveryEvent enclosure 6120 LocationChangeEvent enclosure 6120 LogEvent array_error 6120 LogEvent array_warning 6120 LogEvent controller.port 6120 LogEvent disk 6120 LogEvent disk.log 6120 LogEvent disk.senseKey 6120 LogEvent driver.SSD_WARN 6120 LogEvent power 6120 LogEvent power.refreshBattery 6120 LogEvent power.replaceBattery 6120 LogEvent temp_threshold 6120 QuiesceEndEvent enclosure 6120 QuiesceStartEvent enclosure 6120 StateChangeEvent+ controller 6120 StateChangeEvent+ disk 6120 StateChangeEvent+ interface.loopcard 6120 StateChangeEvent+ power 6120 StateChangeEvent+ volume 6120 StateChangeEvent- controller 6120 StateChangeEvent- disk 6120 StateChangeEvent- interface.loopcard 6120 StateChangeEvent- power 6120 StateChangeEvent- volume 6120 Statistics enclosure ############################ a3500fc.grid: Sun A3500FC ############################ a3500fc AlarmEvent- battery a3500fc AuditEvent enclosure a3500fc CommunicationEstablishedEvent ib a3500fc CommunicationLostEvent ib a3500fc ComponentInsertEvent controller a3500fc ComponentInsertEvent disk a3500fc ComponentRemoveEvent controller a3500fc ComponentRemoveEvent disk a3500fc DeviceLostEvent aggregate a3500fc DiagnosticTest- a3500fctest a3500fc DiscoveryEvent enclosure a3500fc LocationChangeEvent enclosure a3500fc StateChangeEvent+ disk a3500fc StateChangeEvent- controller a3500fc StateChangeEvent- disk ############################ a5k.grid: Sun A5000 ############################ a5k AlarmEvent- backplane a5k AlarmEvent- backplane.fan a5k AlarmEvent- disk a5k AlarmEvent- interface.gbic a5k AlarmEvent- interface.iboard a5k AuditEvent enclosure a5k CommunicationEstablishedEvent ib a5k CommunicationLostEvent ib a5k ComponentInsertEvent disk a5k ComponentRemoveEvent disk a5k DeviceLostEvent aggregate a5k DiagnosticTest- a5ksestest a5k DiagnosticTest- a5ktest a5k DiscoveryEvent enclosure a5k LocationChangeEvent enclosure a5k StateChangeEvent+ disk a5k StateChangeEvent+ interface.iboard a5k StateChangeEvent+ power a5k StateChangeEvent- disk a5k StateChangeEvent- interface.iboard a5k StateChangeEvent- power a5k logEvent driver ############################ agent.grid: ############################ agent AgentDeinstallEvent enclosure agent AgentInstallEvent enclosure agent AlarmEvent system_errors agent AlternateMaster+ enclosure agent AlternateMaster- enclosure agent CommunicationEstablishedEvent oob agent CommunicationLostEvent ntc agent CommunicationLostEvent oob agent HeartbeatEvent enclosure ############################ brocade.grid: Brocade switch ############################ brocade AlarmEvent sensor.fan brocade AlarmEvent sensor.power brocade AlarmEvent sensor.temperature brocade AlarmEvent system_reboot brocade AuditEvent enclosure brocade CommunicationEstablishedEvent oob brocade CommunicationLostEvent oob brocade ConnectivityLostEvent aggregate brocade DeviceLostEvent aggregate brocade DiagnosticTest- switchtest brocade DiscoveryEvent enclosure brocade LocationChangeEvent enclosure brocade LogEvent PhysState brocade LogEvent port.statistics brocade StateChangeEvent+ port brocade StateChangeEvent- port brocade Statistics enclosure ############################ d2.grid: Sun D2 ############################ d2 AlarmEvent- fan d2 AlarmEvent- power d2 AlarmEvent esm.revision d2 AlarmEvent midplane.revision d2 AlarmEvent slot_count d2 AlarmEvent temperature d2 AuditEvent enclosure d2 CommunicationEstablishedEvent ib d2 CommunicationLostEvent ib d2 ComponentRemoveEvent esm d2 ComponentRemoveEvent midplane d2 DeviceLostEvent aggregate d2 DiagnosticTest- d2test d2 DiscoveryEvent enclosure d2 LocationChangeEvent enclosure d2 StateChangeEvent+ disk d2 StateChangeEvent- disk ############################ host.grid: Host ############################ host AlarmEvent+ hba host AlarmEvent- hba host AlarmEvent- lun.T300 host AlarmEvent- lun.VE host AlarmEvent disk_capacity host AlarmEvent disk_capacity_okay host DiagnosticTest- ifptest host DiagnosticTest- qlctest host DiagnosticTest- socaltest host LogEvent array_error host LogEvent array_warning host LogEvent driver.ELS_RETRY host LogEvent driver.Fabric_Warning host LogEvent driver.Firmware_Change host LogEvent driver.LOOP_OFFLINE host LogEvent driver.LOOP_ONLINE host LogEvent driver.MPXIO host LogEvent driver.MPXIO_offline host LogEvent driver.PFA host LogEvent driver.QLC_LOOP_OFFLINE host LogEvent driver.QLC_LOOP_ONLINE host LogEvent driver.SCSI_ASC host LogEvent driver.SCSI_TRAN_FAILED host LogEvent driver.SCSI_TR_READ host LogEvent driver.SCSI_TR_WRITE host LogEvent driver.SFOFFTOWARN host LogEvent driver.SF_CRC_ALERT host LogEvent driver.SF_CRC_WARN host LogEvent driver.SF_DMA_WARN host LogEvent driver.SF_OFFLALERT host LogEvent driver.SF_OFFLINE host LogEvent driver.SF_RESET host LogEvent driver.SF_RETRY host LogEvent driver.SSD_ALERT host LogEvent driver.SSD_WARN host LogEvent error host LogEvent warning host PatchInfo enclosure host backup enclosure host patchInfo enclosure ############################ internal.grid: ############################ internal AuditEvent enclosure internal CommunicationEstablishedEvent ib internal CommunicationLostEvent ib internal ComponentInsertEvent disk internal ComponentRemoveEvent disk internal DiagnosticTest- fcdisktest internal DiscoveryEvent enclosure ############################ mcdata.grid: McData switch ############################ mcdata AlarmEvent fan mcdata AlarmEvent power mcdata AlarmEvent system_reboot mcdata AuditEvent enclosure mcdata CommunicationEstablishedEvent oob mcdata CommunicationLostEvent oob mcdata ConnectivityLostEvent aggregate mcdata DeviceLostEvent aggregate mcdata DiscoveryEvent enclosure mcdata LocationChangeEvent enclosure mcdata LogEvent PhysState mcdata LogEvent port.statistics mcdata StateChangeEvent+ port mcdata StateChangeEvent- port mcdata Statistics enclosure ############################ san.grid: ############################ san LinkEvent_CRC Any|Any san LinkEvent_CRC host|storage san LinkEvent_CRC host|switch san LinkEvent_CRC switch|a3500fc san LinkEvent_CRC switch|a5k san LinkEvent_CRC switch|storage san LinkEvent_CRC switch|switch san LinkEvent_CRC switch|t3 san LinkEvent_CRC ve|switch san LinkEvent_ITW Any|Any san LinkEvent_ITW host|storage san LinkEvent_ITW host|switch san LinkEvent_ITW switch|a3500fc san LinkEvent_ITW switch|a5k san LinkEvent_ITW switch|storage san LinkEvent_ITW switch|switch san LinkEvent_ITW switch|t3 san LinkEvent_ITW ve|switch san LinkEvent_SIG Any|Any san LinkEvent_SIG host|storage san LinkEvent_SIG host|switch san LinkEvent_SIG switch|a3500fc san LinkEvent_SIG switch|a5k san LinkEvent_SIG switch|storage san LinkEvent_SIG switch|switch san LinkEvent_SIG switch|t3 san LinkEvent_SIG ve|switch ############################ se.grid: Sun 3900/6900 ############################ se AggregatedEvent POWERSEQ1 se AlarmEvent- lun se AlarmEvent- remove_lun se CommunicationLostEvent oob se ComponentInsertEvent lun se ComponentRemoveEvent lun se ComponentRemoveEvent slot se DeviceLostEvent aggregate se StateChangeEvent links se StateChangeEvent port se StateChangeEvent slot se StateChangeEvent sp ############################ se2.grid: Sun 6320 ############################ se2 AggregatedEvent POWERSEQ1 se2 AlarmEvent- lun se2 AlarmEvent- power_sequencer se2 ComponentInsertEvent lun se2 ComponentRemoveEvent lun se2 DeviceLostEvent aggregate ############################ switch.grid: Sun Switch ############################ switch AlarmEvent chassis.fan switch AlarmEvent chassis.power switch AlarmEvent chassis.temperature switch AlarmEvent port.statistics switch AlarmEvent system_reboot switch AlarmEvent zone_change switch AuditEvent enclosure switch CommunicationEstablishedEvent oob switch CommunicationLostEvent oob switch ConnectivityLostEvent aggregate switch DeviceLostEvent aggregate switch DeviceLostEvent ib switch DiagnosticTest- switchtest switch DiscoveryEvent enclosure switch LocationChangeEvent enclosure switch LogEvent port.statistics switch StateChangeEvent+ port switch StateChangeEvent- port switch Statistics enclosure ############################ switch2.grid: Sun Switch2 ############################ switch2 AlarmEvent- chassis.board switch2 AlarmEvent- chassis.fan switch2 AlarmEvent chassis.power switch2 AlarmEvent port.statistics switch2 AlarmEvent system_reboot switch2 AuditEvent enclosure switch2 CommunicationEstablishedEvent oob switch2 CommunicationLostEvent fsa switch2 CommunicationLostEvent oob switch2 ConnectivityLostEvent aggregate switch2 DeviceLostEvent aggregate switch2 DiagnosticTest- switch2test switch2 DiscoveryEvent enclosure switch2 LocationChangeEvent enclosure switch2 StateChangeEvent+ port switch2 StateChangeEvent- port switch2 Statistics enclosure ############################ t3.grid: Sun T3 ############################ t3 AlarmEvent+ power.temp t3 AlarmEvent- disk.pathstat t3 AlarmEvent- disk.port t3 AlarmEvent- disk.temperature t3 AlarmEvent- interface.loopcard.cable t3 AlarmEvent- power.battery t3 AlarmEvent- power.fan t3 AlarmEvent- power.output t3 AlarmEvent- power.temp t3 AlarmEvent add_initiators t3 AlarmEvent backend_loop t3 AlarmEvent cacheMode t3 AlarmEvent cacheModeBehind t3 AlarmEvent device_path t3 AlarmEvent initiators t3 AlarmEvent log t3 AlarmEvent loop.statistics t3 AlarmEvent lunPermission t3 AlarmEvent remove_initiators t3 AlarmEvent revision t3 AlarmEvent system_reboot t3 AlarmEvent sysvolslice t3 AlarmEvent time_diff t3 AlarmEvent volCount t3 AlarmEvent volOwner t3 AuditEvent enclosure t3 CommunicationEstablishedEvent ib t3 CommunicationEstablishedEvent oob t3 CommunicationLostEvent ib t3 CommunicationLostEvent oob t3 ComponentInsertEvent controller t3 ComponentInsertEvent disk t3 ComponentInsertEvent interface.loopcard t3 ComponentInsertEvent power t3 ComponentRemoveEvent controller t3 ComponentRemoveEvent disk t3 ComponentRemoveEvent interface.loopcard t3 ComponentRemoveEvent power t3 DeviceLostEvent aggregate t3 DiagnosticTest- t3ofdg t3 DiagnosticTest- t3test t3 DiagnosticTest- t3volverify t3 DiscoveryEvent enclosure t3 LocationChangeEvent enclosure t3 LogEvent array_error t3 LogEvent array_warning t3 LogEvent controller.port t3 LogEvent disk t3 LogEvent disk.error t3 LogEvent disk.log t3 LogEvent disk.senseKey t3 LogEvent power.battery t3 LogEvent power.battery.refresh t3 LogEvent power.battery.replace t3 LogEvent temp_threshold t3 QuiesceEndEvent enclosure t3 QuiesceStartEvent enclosure t3 RemovalEvent enclosure t3 StateChangeEvent+ controller t3 StateChangeEvent+ disk t3 StateChangeEvent+ interface.loopcard t3 StateChangeEvent+ power t3 StateChangeEvent+ volume t3 StateChangeEvent- controller t3 StateChangeEvent- disk t3 StateChangeEvent- interface.loopcard t3 StateChangeEvent- power t3 StateChangeEvent- volume t3 Statistics enclosure ############################ tape.grid: FC-Tape ############################ tape AuditEvent enclosure tape CommunicationEstablishedEvent ib tape CommunicationLostEvent ib tape DeviceLostEvent aggregate tape DiagnosticTest- fctapetest tape DiscoveryEvent enclosure tape LocationChangeEvent enclosure tape StateChangeEvent+ port tape StateChangeEvent- port ############################ v880disk.grid: Sun V880 Disk ############################ v880disk AlarmEvent- backplane v880disk AlarmEvent- loop v880disk AlarmEvent- temperature v880disk AuditEvent enclosure v880disk CommunicationEstablishedEvent ib v880disk CommunicationLostEvent ib v880disk ComponentInsertEvent disk v880disk ComponentRemoveEvent disk v880disk DeviceLostEvent aggregate v880disk DiagnosticTest- daktest v880disk DiscoveryEvent enclosure v880disk LocationChangeEvent enclosure ############################ ve.grid: Vicom VE ############################ ve AlarmEvent log ve AlarmEvent volume ve AlarmEvent volume_add ve AlarmEvent volume_delete ve AuditEvent enclosure ve CommunicationEstablishedEvent oob ve CommunicationLostEvent oob.command ve CommunicationLostEvent oob.ping ve CommunicationLostEvent oob.slicd ve DeviceLostEvent aggregate ve DiagnosticTest- ve_diag ve DiagnosticTest- veluntest ve DiscoveryEvent enclosure ve LocationChangeEvent enclosure