快讯
HOME
快讯
正文内容
ns tx备份nand 车载以太网 TSMaster的DoIP功能操作指南
发布时间 : 2025-02-27
作者 : 小编
访问数量 : 23
扫码分享至微信

车载以太网 TSMaster的DoIP功能操作指南

本文介绍:

车载以太网诊断协议,Diagnostics over Internet Protocol简称为DoIP,可以通过以太网协议进行汽车诊断。DoIP是一种用于在车辆之间或车辆与诊断设备之间进行通信和诊断的标准协议。通过DoIP,诊断工程师可以通过以太网或远程访问和诊断车辆的电子系统,并可以进行以太网控制器的诊断访问和刷写。

DoIP是TSMaster支持的重要功能之一,本文主要介绍TSMaster的DoIP模块中诊断服务功能操作,以及相应的传输层配置,并结合诊断功能常见的使用操作进行展开,本文要点如下:

1. TSMaster DoIP的同星以太网硬件准备

2. TSMaster DoIP模块如何开始使用

3. TSMaster被测仪IP网络接口配置

4. TSMaster DoIP诊断传输层配置

5. TSMaster基础诊断配置

6. TSMaster诊断控制台

7. TSMaster自动诊断流程与注册系统变量

8.诊断典型应用

本文关键词:DoIP,车载以太网诊断,基础诊断,自动诊断流程,以太网

1、TSMaster DoIP的同星以太网硬件准备

TSMaster的DoIP软件功能的实现,是以同星的以太网硬件作为基础。其中应用于DoIP的同星以太网硬件有TE1051、TE1054(规划中)、TE1021。

TE1051 是一路以太网转USB接口的设备,可以将标准以太网100Base-Tx 1000Base-T或车载以太网100/1000Base-T1的数据通过USB接口传输到PC上,并通过TSMaster软件实现以太网数据的仿真、分析、测试,也可以实现DoIP和SOMEIP等功能。同时,TE1051设备小巧且外壳坚固,无需外部供电,适用于各种环境工况下的DoIP诊断刷写。

图1-1 TE1051硬件

TE1021 是一路车载以太网转普通以太网接口(100/1000Base-T1 to 100Base-Tx/1000Base-T)的介质转换工具。用户可以将100Base-T1转换为100Base-Tx或将1000Base-T1转换为1000Base-T。可适用于不同以太网接口的DoIP应用场景,同时TE1021小巧且外壳坚固,携带方便。

图1-2 TE1021硬件

2、TSMaster DoIP模块如何开始使用

TSMaster的DoIP模块的创建与基本使用流程如下:

▲ Step1:DoIP位于主菜单【应用】->【DoIP】,如图2-1。

图2-1 DOIP

▲ Step2:【添加DoIP】模块,可以添加多个DoIP模块,如图2-2。

图2-2 添加DoIP模块

▲ Step3:根据ECU的配置设置车载以太网传输层参数,比如诊断仪类型、通道、被测件IP地址等以太网参数和安全访问算法。具体操作流程在下文第3章节展开。

▲ Step4:当配置好传输层相关参数与安全算法,启动工程后,点击【Connect DUT】连接车载控制器。当连接成功后,基础诊断窗口和系统消息窗口会提示:连接以太网被测件成功,如图2-3。以及在ISO15765-2的地方可以看到连接的服务消息,如图2-4。

图2-3 连接以太网被测件

图2-4 ISO5765-2消息

▲ Step5: 服务以及流程都配置好之后,在【自动诊断流程】处直接打开启动按钮,执行诊断流程。如图2-5所示。

图2-5 执行自动诊断流程

3、TSMaster诊断仪IP网络接口配置

TSMaster的网络接口配置流程如下:

▲ Step1:找到主菜单【硬件】->【TCP/IP Stack】,如图3-1。

图3-1 TCP/IP Stack

▲Step2:【Eth CH1】右键选择【Add Network Card】,如图3-2。

图3-2 添加网络接口

▲ Step3:在【General Setting】中选择【用户自定义Mac】,输入自定义Mac地址。如图3-3。

图3-3 自定义Mac地址

▲ Step4:【使能IPV4】,然后打开【添加】按钮,输入诊断测试仪的IP地址和IP掩码,如图3-4。

图3-4 添加IP地址

4、TSMaster DoIP诊断传输层配置

TSMaster 提供了DoIP的诊断传输层的配置功能,用户可以根据需求配置相应的传输层配置比如诊断仪类型、通道、IP地址、端口和请求和应答ID、以及安全算法等一系列配置。

4.1 诊断传输层

诊断传输层的配置根据诊断仪类型分为两种:TE系列设备和系统TCP/IP

4.1.1 TE系列设备

TE系列设备类型 以TE1051为例,TE1051是一个1路以太网转USB接口的工具,通过USB接口传输到PC上,并通过TSMaster软件实现以太网数据的DoIP功能。

对于DoIP诊断传输层ISO TP,包含被测件和测试仪的以太网参数和诊断ID参数,如图4-1所示。

图4-1 DoIP诊断传输层ISO TP配置

DoIP诊断传输层ISO TP的具体参数如下分类介绍:

▲ 总线类型:诊断传输层类型。

使用同星DoIP功能选择总线类型为【Ethernet】,如图4-2所示。

图4-2 DoIP诊断总线类型

▲ 诊断仪类型:诊断设备类型。

通过USB连接PC,选择的诊断仪类型为【TE系列设备】,若是传统的网线连接PC则选择系统TCP/IP,如图4-3所示。

图4-3 Ethernet 诊断仪类型选择

▲ 通道:诊断模块用到的逻辑通道。

TSMaster 支持多个诊断模块同时在线工作,这里用于选择当前诊断模块的应用逻辑通道,通过下拉列表进行选择,如图4-4所示。

图4-4 Ethernet 通道选择

▲ IP地址掩码:以太网通信使用的IP地址掩码。

▲ 被测件IP:被测件的IP地址。

在DoIP通信中,IP地址掩码和被测件IP地址需要根据具体的网络拓扑结构和通信需求进行设置。

▲ 被测件端口:被测件端口号。

在ISO 13400标准中端口13400被指定为DoIP通信的默认端口号。

▲ 测试仪IP:测试仪的IP地址。

测试仪IP为连接PC的测试设备(如同星的TE051)的IP地址。根据IP地址掩码和被测件IP,将PC的IP地址和被测件IP配置在同一网段内,以此两者可以正常连接和通信。测试仪IP地址的配置在前面的第3章已详细说明。

▲ 测试仪端口:测试仪或PC的端口

注意:对于诊断工具的端口号设置并没有固定的规定,用户可以根据需求自己设置或者使用软件自动分配的端口号。

▲ 请求ID / 应答ID / 功能ID:设置诊断模块PC工具端的诊断请求/应答/功能帧的 ID。

4.1.2 系统TCP/IP

系统TCP/IP类型 以TE1021为例,TE1021是直接通过系统的网口连接PC。

DoIP诊断传输层ISO TP,包含被测件和测试仪的以太网参数和诊断ID参数,如图4-5所示。

图4-5 DoIP诊断传输层ISO TP配置

DoIP诊断传输层ISO TP的具体参数如下分类介绍:

总线类型: 诊断传输层类型。

使用同星DoIP功能选择总线类型为【Ethernet】,如图4-6所示。

图4-6 DoIP诊断总线类型

诊断仪类型: 诊断设备类型。

诊断仪通过PC系统的网口连接PC,则选择的诊断仪类型为【系统TCP/IP】,如图4-7所示。

图4-7 Ethernet 诊断仪类型选择

通道: 诊断模块用到的逻辑通道。

用于选择当前诊断模块的应用逻辑通道,这里默认是【System Ethernet Interface】,如图4-8所示。

图4-8 Ethernet 通道选择

IP地址掩码: 以太网通信使用的IP地址掩码。

被测件IP: 被测件的IP地址。

在DoIP通信中,IP地址掩码和被测件IP地址需要根据具体的网络拓扑结构和通信需求进行设置。

被测件端口: 被测件端口号。

在ISO 13400标准中端口13400被指定为DoIP通信的默认端口号。

测试仪IP: PC的系统的网口的IP地址。

根据IP地址掩码和被测件IP,将PC的IP地址和被测件IP配置在同一网段内,使得两者可以正常连接和通信。找到电脑的【设置】->【网络和Internet】,找到网口所连接的以太网,选择【属性】,在【IP分配】选择【编辑】按钮。选择手动,打开IPv4,填写IP地址以及子网掩码。如图4-9所示。

图4-9 PC端以太网IP地址设置

测试仪端口: 测试仪或PC的端口

注意:对于诊断工具的端口号设置并没有固定的规定,用户可以根据需求自己设置或者使用软件自动分配的端口号。

请求ID / 应答ID / 功能ID: 设置诊断模块PC工具端的诊断请求/应答/功能帧的 ID。

4.2 诊断服务层

诊断服务层参数主要包含路由激活,S3,P2 时间参数,以及加载 SeedKey 的 安全访问。如图4-10所示。

图4-10 诊断服务层参数

4.2.1 路由激活

【连接DUT之后自动执行路由激活命令】:勾选后,当测试仪或PC与被测件建立网络连接后,软件自动执行路由激活命令。

【TCP初始化激活超时时间】:这个参数描述了从TCP_Data连接建立过后到失效的最大超时时间。如果在设定时间范围内都不执行激活路由的指令,DoIP模块会主动关闭TCP_Data套接字。规范定义时间为2000ms。

【激活类型】,共有5种类型:

1. 【Default】:默认激活模式(Default Activation Mode),这是最基本的路由激活类型,通常用于建立标准的DoIP通信会话。在默认激活模式下,设备之间会进行基本的身份验证和参数交换,以建立通信连接。

2. 【WWH-OBD】:全球调和车载诊断系统要求的诊断通信激活,在这种模式下,设备之间可能需要进行额外的身份验证和安全验证,以确保通信的合规性和安全性。

3. 【ISO/SAE Reserved】:为未来的标准或特定应用保留的路由激活模式。

4. 【Central Security】:Central Security(中央安全)路由激活模式,它涉及到车辆网络安全的核心管理和认证机制。这种模式通常用于确保只有经过授权和验证的设备才能与车辆的网络系统进行通信。

5. 【Additional OEM-Specific Use】:为原始设备制造商(OEM)提供的特定用途而保留的额外路由激活模式。不同的OEM可以根据自己的需求和车辆网络架构,定义和使用特定的路由激活模式,以满足其独特的诊断、通信或安全要求。

4.2.2 P2时间参数

【P2超时时间】:表示 ECU 收到诊断请求帧过后,最短回复的时间间隔。对于诊断工具端,该参数可以作为发送请求过后,等待回复的超时判断参数。比如诊断工具发送了一个诊断报文,P2超时时间段内都没有收到回复,则认为请求失败,超时退出。

【P2扩展时间】:当诊断工具发出诊断报文过后,被测 ECU 来不及在 P2 超时时间段内做出应答,则回复一帧 7F XX 78 报文,告诉诊断工具端自己来不及响应,需要延长等待时间再回复。ECU 发送了延迟等待报文后,则把等待时间参数切换为 P2扩展时间。诊断工具端的超时判断参数在收到延迟等待报文后,需要切换到 P2扩展时间。

上述两个参数可以点开【详情】按钮,查看图示说明,如图4-11所示。

图4-11 P2时间参数设置

4.2.3 诊断仪在线

诊断仪在线包括S3服务器时间和S3客户端时间参数。

【S3服务器时间】:表示该ECU从Default会话被切换到其他会话过后,经过多长时间会自动切换回默认会话的超时时间。

【S3客户端时间】:表示作为诊断Tester端,发送TesterPresent帧的时间间隔。

上述两个参数的示意图,可以点开【详情】按钮,查看图示说明,如图4-12所示。

图4-12 S3时间参数设置

【诊断仪在线】:TSMaster 断模块中,可以选择配置并使能诊断仪在线命令,如图4-13所示。

图4-13 诊断仪在线设置

当使能【诊断仪在线】,在诊断模块上方会出现启动【诊断仪在线】的开关。设置诊断仪在线为【打开】状态,则按照设定的S3客户端时间间隔发送该报文。

诊断仪在线的发送字节是可选的。支持三种类型:

【默认诊断仪在线服务】:为最常用的0x3E 0x80。

【从基础配置中选择】:从基本诊断配置中选择配置好的3E命令。

【用户自定义】:用于自定义的字节。

4.2.4 种子密钥

TSMaster 中提供了两种SeedKey种子密钥的处理方法。第一种就是常用的加载主流的种子密匙的DLL动态链接库;第二种是提供了内置的种子密钥的解释器,可以直接编写SeedKey源代码,并可以保存生成DLL动态链接库。

—4.2.4.1载入动态链接库

TSMaster不仅支持了C/C++,Delphi等语言封装的DLL文件,也新增支持基于DotNet平台如C#,VB.Net等语言编写的DLL动态链接库,可以高效兼容不同平台生成的安全访问DLL,为工程师带来更便捷的使用体验。

载入动态链接库加载界面,如图4-14所示。

图4-14 载入动态链接库

图标从左往右依次为:

【1】 加载DLL

【2】 删除DLL

【3】 打开DLL校验器,通过DLL校验器,用户可以判断加载的 DLL 接口是否正确,算法是否符合设计要求。比如,用户选择Seed的Level过后,输入Seed值,点击GenKey 进行判断。如果该DLL接口跟模板定义接口统一,则会输出提示信息:Generate Key Success,然后用户根据Key值跟目标值对比,进一步确认DLL中的算法是否符合设计要求。如图4-15。

图4-15 SeedKey校验器

【4】 可打开TSMaster安装目录下Seed&Key接口工程所在的文件路径。

在TSMaster安装目录中,提供了封装Seed&Key 算法的模板工程。如GenerateKeyEx,GenerateKeyExOpt, ASAP1A_CCP_ComputeKeyFromSeed,基于此模板工程开发即可得到能够直接加载的DLL函数。TSMaster默认支持SeedKey函数接口具体为如下:

函数接口1:

unsigned int GenerateKeyEx(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned int iSeedArraySize, /* Length of the array for the seed [in] */

const unsigned int iSecurityLevel,/* Security level [in] */

const char* ipVariant, /* Name of the active variant [in] */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned int& oActualKeyArraySize); /* Length of the key [out] */

函数接口2:

unsigned int GenerateKeyExOpt(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned int iSeedArraySize, /* Length of the array for the seed [in] */

const unsigned int iSecurityLevel, /* Security level [in] */

const char* ipVariant, /* Name of the active variant [in] */

const char* iPara, /* */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned int& oActualKeyArraySize) /* Length of the key [out] */

函数接口3:

bool ASAP1A_CCP_ComputeKeyFromSeed(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned short iSeedArraySize, /* Length of the array for the seed [in] */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned short iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned short* opSizeKey) /* Length of the key [out] */

如何兼容其他函数接口

在日常使用中经常出现用户已经开发好了SeedKey DLL,同时该 DLL 的接口不是上述三种中的任何一种,则无法直接加载到TSMaster的诊断模块中。对此,可以通过二次封装的形式将存在的SeedKey算法库进行包装,生成可以直接加载到TSMaster诊断模块中的 DLL 。

以一个实际的实例来讲解如何兼容其他接口函数的DLL文件,二次封装流程的示意图,如图4-16。

图4-16 二次封装流程

▲第一步:查看当前的DLL,名称为UserSeedKey.DLL。该函数内部的API函数有:

●Seed 等级为1的时候,调用函数void GetKeyFromSeed01(byte* ASeed, byte* AKey);

●Seed等级为3的时候,调用函数void GetKeyFromSeed03(byte* ASeed, byte* AKey);

●Seed等级为11的时候,调用函数 void GetKeyFromSeed11(byte* ASeed, byte* AKey);

进而得知当前DLL不支持上述三种函数接口,需要进行二次封装。

▲第二步:选择 TSMaster 安装目录中提供的 GenerateKeyEx 的模板工程,在该工程中用上述DLL的函数接口。基本思路是:

1. 采用 Loadlibrary 动态用户现有的 DLL。

2. 根据传入的Level参数,采用GetProcAddress函数动态获取实际的用于计算Key的函数指针。

3. 如果获取函数指针成功,则使用该函数指针传输Seed值,并计算对应的Key值。GenerateKeyEx工程二次封装示例,如图4-17。

图4-17 GenerateKeyEx工程二次封装示例

▲ 第三步:该GenerateKeyEx工程开发结束后,TSMaster 直接加载GenerateKeyEx所在的DLL。需要注意的是,用户需要把现有的UserSeedKey.DLL拷贝到TSMaster根目录或者GenerateKeyEx.DLL所在的目录。如果不拷贝过去,GenerateKeyEx.DLL执行的时候会出现找不到对应依赖DLL的情况,解锁失败。

—4.2.4.2 编写SeedKey代码

在TSMaster的内置算法编辑器里的操作流程,示意如图4-18所示。

图4-18 内置算法编辑器

【1】选择SeedKey算法的函数;

【2】打开算法校验器,可以于检查算法结果是否正确;

【3】打开编写代码的窗口;

【4】可用于导出所编写代码的为DLL文件;

【5】选择一个需要的SeedKey函数接口,并支持扩展自定义函数接口;

【6】SeedKey源代码编辑工作区,用于解密算法代码的输入与编辑。

值得注意的是,TSMaster 目前提供了最常用的算法函数的接口形式,如果使用自己特殊的函数接口形式,可以联系上海同星支持,可将相应接口增加到选项中。

另外,所有的接口函数都定义了返回值类型为s32。增加此约束,主要是增加函数的严谨性。其中,返回值为0表示成功,返回值为其他值则有对应的错误码。因此,在编辑代码的时候,最后一行需要加上return返回值,如图4-19所示,否则系统执行函数过后会认为算法执行失败,不予往后面执行。

图4-19 函数return返回值

5、TSMaster 基础诊断配置

基础诊断模块包含基本诊断服务和组合服务。对于诊断过程中独立执行的命令,在基本诊断服务中;用于文件下载的$34、$36和$37放入组合服务中。如图5-1所示。

图5-1 基础诊断配置

5.1 添加删除服务命令

把鼠标放到需要添加和删除的服务命令上方,右键展开,选择是否需要添加和删除该服务,如图5-2所示。

图5-2 添加和删除的服务命令

5.2 配置基本诊断参数

以诊断会话控制为例,主要包含如下参数的配置,如图5-3所示。

图5-3 配置基本诊断参数

【1】 配置服务名称:用户可以配置一个易于理解和管理的服务名称。

【2】 是否功能标识符:本诊断服务是否采用功能标识符发送诊断请求。

【3】 是否有回复:用户可配置是否检查此服务的回复内容。

【4】 选择子服务类型:比如 Session Control 中的 DiagnosticSessionType 就包含如上图所示的 Session 类型。

【5】 参数列表的字节序:支持Motorola 和 Intel 字节序。

【6】 参数列表:诊断服务除了诊断 ID 和子服务类型 ID,还可以带着参数发送给被测 ECU。参数列表包含请求和应答帧的参数列表,可以选择增加/删除多种类型的参数。如图5-4。

图5-4 新增与删除参数

其中,根据不同服务指令,可以设置不同的ID参数。比如诊断请求会话里的诊断会话类型参数是必选设置,而参数列表是可选的。在修改配置后,界面上方会实时显示实际诊断报文的示例报文,如请求协议数据包是:【10 01 xx xx】:xx 表示该参数是可变的,根据用户实际填入的数据确定;诊断仪将要收到的应答协议数据包为【50 01 xx】。

图5-5 请求与应答参数设置

5.3 诊断服务参数

诊断模块参数支持 7 种数据类型。包括:UInt,Int,Single,Double,HexArray,Ascii和 SystemVar。如图5-6。

图5-6 诊断模块参数类型

【1】 UInt:无符号整型,其数据长度必须小于32bits,并且为8的倍数,可以为8,16,24,32bits。

【2】 Int:有符号整形,其数据长度必须小于32bits,并且为8的倍数,可以为8,16,24,32bits

【3】 Single:单精度浮点数,数据长度为固定的32bits。用户直接输入输出浮点数据。

【4】 Double:单精度浮点数,数据长度为固定的64bits。用户直接输入输出浮点数据。

【5】 Hex Array:十六进制数组,数据长度为8的倍数。输入数据满足16禁止数据类型。

【6】 ASCII:ASCII字符串,数据长度为8的倍数。输入数据为ASCII字符数组,转化为16进制后进行发送。

【7】 SystemVar:系统变量,数据长度为8的倍数。TSMaster 系统变量可支持 Uint,Int,Single,Double,UintArray,DoubleArray,HexArray,String 等各种数据类型。其具体的数据类型由系统变量自身定义所决定。

5.4 配置组合服务

诊断组合服务($343637下载文件)共包含通用配置、擦除Flash配置、请求和传输数据配置、传输退出配置、扩展和辅助的配置。如下详细介绍每个配置。

5.4.1 通用配置

通用配置中支持加载下载文件格式为hex/bin/s19/mot/srec/vdf等等。可以对起始地址和数据长度的字节数修改,调调整校验和字节序和自定义CRC校验算法导入和修改,并可通过下载文件查看器下载文件内容。如图5-7。

图5-7 通用配置

【1】服务名称:配置该服务的名称

【2】文件名称:加载可执行文件,支持hex\bin\s19\mot\srec\vdf...

【3】hex viewer:TSMaster 内置了可执行文件查看编辑器 TSHexViewer,用户可以用该工具,查看载入Hex 文件的详细信息,如图5-8所示。

图5-8 查看载入的下载文件

【4】地址和长度标识符。可修改起始地址和数据长度的字节。

【5】校验和相关配置。校验和字节序支持英特尔和摩托罗拉。在程序下载过程中,为了保证数据的完整性,需要引入 Checksum 算法对数据的完整性和有效性进行校验。TSMaster 诊断模块的符合服务中,引入了主流的CRC 算法进行校验。其选择框如下图所示,同时可实现自定义CRC校验算法导入和修改,此处自定义算法只能是DLL文件的形式,如图到5-9。

图5-9 支持自定义CRC算法导入与修改

当加载好下载文件后,选择指定的算法过,诊断模块会对可执行文件计算其检验和值,包括该可执行文件每一个数据块的检验和值以及文件整体的检验和值,如图5-10所示。

图5-10 文件与数据块检验和值

TSMaster的诊断模块能够直接把系统变量作为参数,在计算好每一个数据块与文件的检验和值过后,会进一步自动转化成系统变量,如图5-11。

图5-11 检验和系统变量

生成好的检验和系统变量,可以通过系统变量的类型添加到服务参数中。以常用的校验可执行文件的有效性为例,配置如下的 $31例程控制服务命令,就可以实现对文件有效性的检查,如图5-12。

图5-12 检验和系统变量添加到服务参数

5.4.2 擦除Flash配置

擦除Flash配置,可以配置无自动擦除、擦除Hex地址范围、下载每一个数据块之前擦除对应块。期望回复值以实际ECU的响应进行填写输入。如图5-13。

图5-13 擦除Flash配置

5.4.3 请求和传输数据配置

请求传输数据命令的数据格式可以修改,比如从00修改为AA。可以自定义最大传输数据块的长度,默认为0x202,实际传输层数据包为514字节。如图5-14。

图5-14 请求和传输数据配置

5.4.4 传输退出配置

传输退出配置,可以设置如下配置,如图5-15:

● 无校验

● 在ECU端校验($37+块校验和)

● 用户自定义

● 在PC端校验($37+块校验和)

校验和类型选择无校验或校验每一个数据块

图5-15 传输退出配置

5.4.5 扩展

扩展配置可以添加签名文件、特殊的CRC算法,与通用配置-校验和相关配置里的自定义CRC算法导入相比,此处更灵活可支持任意格式的文件,如图5-16。

图5-16 扩展配置

5.4.6 辅助

辅助中可对下载文件按连续地址的大小分割,比如将数据块按0x1000进行分割。如图5-17。

图5-17 下载文件分割设置

6、诊断控制台

诊断控制台作为诊断命令调试器,可以让用户选择每一条单独的服务命令,编辑发送服务报文和接收服务报文,进行测试验证。主要包含四块工作区域,分别为服务命令选择区,手动命令输入区,诊断命令发送/应答区和诊断信息区,如图6-1所示。

图6-1 控制台工作分区

6.1 服务命令选择区

服务命令选择区中是根据基础配或者加载ODX/PDX诊断数库生成的可执行服务列表。用户可以双击执行选中的服务或者右键选择执行该服务,如图6-2所示。

图6-2 服务命令选择区

6.2 手动命令输入区

测试过程中,如果用户想发送任意的诊断命令,则可以在手动命令输入区中输入自己想要发送的任意报文。在输入诊断报文过后,点击右边的Execute 按钮,就可以完成诊断报文的发送。为了增加测试灵活性,还可以通过选择框选择采用物理地址发送还是功能 ID 发送诊断请求报文。如图6-3。

图6-3 手动命令输入区

6.3 诊断命令发送/应答区

在本区域中,用户可以编辑发送数据段以及期望接收数据段,启动执行来验证被测ECU 的诊断响应是否符合实际要求,以及是否同步诊断系统变量,如图6-4。

图6-4 诊断命令发送/应答区

6.4 诊断信息区

该区域分为服务层信息和ISO15765-2数据流区,其中服务层信息显示当前在诊断模块中的操作步骤流程与响应信息。如图6-5。

图6-5 服务层信息

当诊断服务没有得到肯定响应或者无响应时,报错提示信息等。如图6-6。

图6-6 服务层信息负响应提示

ISO15765-2数据流区,用于显示诊断模块详细的服务层报文信息。结合前面配置的诊断数据库,还可以把原始的报文数据解析成物理信号等呈现。以22服务为例,可以查看到诊断服务层解析后的参数数据,如图6-7。

图6-7 ISO15765-2数据流区

7、TSMaster自动诊断流程与注册系统变量

7.1 诊断流程创建与管理

TSMaster的自动化诊断流程不仅仅是针对某一个具体的应用,而是针对整个项目的诊断流程进行管理。用户可以根据完整项目的需求,配置测试诊断流程组,每个组里面可以包含多个不同的诊断流程,在一个诊断流程中包含具体的诊断步骤。

在UDS流程管理栏右键鼠标,展开流程用例管理的操作菜单,如图7-1。

图7-1 流程用例管理的操作菜单

操作菜单从上到下分别包含如下操作:

【1】切换UDS流程:切换到当前UDS流程节点。双击该节点,也可以达到切换到该流程节点的效果。切换到该节点过后,节点图标和背景色为蓝色,同时右边的节点流程中展开显示该UDS流程包含的详细诊断步骤,如图7-2。

图7-2 切换UDS流程

【2】启动UDS流程:启动该节点的诊断流程。点击该选项后,诊断模块按照右边的配置,从上往下自动执行诊断步骤。

【3】中断UDS流程:点击该节点后,中断正在执行的诊断流程步骤。

【4】添加流程组:新增诊断流程组。比如新增Test Group1。诊断组下面可以再增加诊断流程用例,其本身不包含诊断步骤。

【5】添加新的测试流程:新增一个诊断流程用例,在诊断流程用例下面可以增加详细的诊断步骤。

【6】编程名称:选中一个流程组或者流程用例,右键选中Edit name编辑该节点的名称。

【7】注册系统变量:选择一个诊断流程用例,注册为系统变量。

【8】反注册系统变量:选中已注册为系统变量的诊断流程用例,取消注册系统变量。

【9】删除所选:删除选中的节点。

【10】删除所有:清楚所有的节点。

7.2 配置自动诊断流程

TSMaster自动诊断流程,可以快速配置多组诊断流程并可以设置循环运行和注册系统变量用于外部调用等,如下进行详细介绍。

7.2.1 自动诊断工具栏介绍

诊断流程配置工具栏如图7-3所示。

图7-3 诊断流程配置工具栏

图标依次从左往右为:

【1】新增诊断流程组。

【2】新增诊断流程用例。

【3】删除选中的诊断流程组/用例。

【4】启动配置好的诊断流程。

【5】终端正在运行的诊断流程。

【6】锁定/解锁流程配置区域。如果锁定该区域,在诊断流程区域变得不可编辑。

【7】全选/全不选诊断流程。

【8】使能设置的循环运行次数。

【9】实际运行次数显示。

7.2.2 自动化诊断流程配置步骤

在UDS测试流程区里,右键创建新创建一个UDS流程,双击该流程进入后,解锁逻辑器,并可以设置本流程可以循环运行的次数,默认不使能循环运行。如图7-4。

图7-4 创建新的UDS流程

然后在逻辑区右键添加步骤或者删除步骤,并进一步解析管理栏中功能。如图7-5。

图7-5 诊断步骤添加与管理

【1】在左边的管理栏中选中一个诊断流程节点。

【2】在右边的编辑区域,添加、删除、编辑诊断步骤。

【3】添加步骤后,选择该步骤类型。

【4】编辑步骤名称。

【5】选择该步骤地址类型,物理地址还是功能地址。

【6】配置详细的诊断请求数据包。

【7】配置详细的诊断应答数据包。

【8】配置本步骤结束后步骤之间的等待时间。

【9】配置本步骤发生错误的错误处理方法。

7.2.3 诊断步骤类型

测试步骤中,为了增加诊断配置的灵活性,设计了4种类型可供选择,主要包含:普通步骤,选择已有配置,种子和密钥,测试仪在线。通过这4种类型,基本上涵盖了市面上所有主流的诊断流程需求,下面详细介绍每种类型的特点。如图7-6。

图7-6 诊断步骤类型

【1】普通步骤:主要用于一些简单的请求数据和应答数据都很直接的场合。直接在请求服务中填入想要发送的请求数据,在应答服务中填入期望的应答报文,比如服务请求数据为【10 01】,服务应答数据为【50 01 12 34】。如图7-7。如果有些服务不需要响应,则可以不设置有回复。

图7-7 普通步骤类型

【2】选择已有配置:该配置设计的目的,就是让用户选择在基础诊断设置中已经配置好的诊断服务,这种方式是TSMaster最推荐的配置方式。选择已有配置过程,如图7-8所示。

图7-8 选择已有配置

【3】种子和密钥:种子和密钥只需要选择种子等级和密钥等级参数即可,解密的DLL直接关联到传输层参数配置载入的种子和密钥DLL中,如图7-9所示:

图7-9 种子和密钥

对此,无论是在诊断控制台模块中,还是自动诊断流程模块,都是需要先配置好传输层的参数配置。

【4】测试仪在线:为了支持更加灵活的测试需求,在自动化流程步骤中,提供了打开和关闭测试仪在线的命令选择,以及配置该命令数据以及周期间隔:

▲ 是否启动(start)/停止(stop)该命令,如图7-10:

图7-10 启动/停止测试仪在线命令

▲ 配置测试仪在线的命令的数据以及周期间隔,如7-10:

图7-11 配置测试仪在线的命令

7.2.4 步骤间隔时间

诊断流程模块步骤跟步骤之间的延时是可以设置的,单位为ms,如图7-12:

图7-12 配置测试仪在线的命令

7.2.5 属性

在属性中,可以设置响应出错后的以及本指令是停止还是继续运行,如图7-13所示:

图7-13 属性

在TSMaster后续产品规划中,响应出错后允许跳转到指定的流程中(比如跳转到擦除流程中),进一步增加自动运行流程模块的灵活性。

7.2.6 使能步骤/位置调整

对于已经完成配置的诊断流程步骤,用户根据左边的选择框来勾选想要执行的诊断步骤。如图7-14。

关于执行顺序调整:无论是测试用例组,测试用例还是测试用例中的具体步骤,用户想调整相互之间执行顺序的时候,直接拖拽对应的测试用例到相应位置即可。

图7-14 诊断流程步骤使能

7.3诊断模块的内生系统变量

在TSMaster新添加基础诊断模块后,系统变量管理器会自动生成所有者为诊断模块Diagnostic的系统变量,通过修改系统变量可以配置对应的参数。如图7-15。

图7-15 诊断模块系统变量

7.3.1 诊断服务通用系统变量

诊断内生的通用系统变量包含:

● 导出工程ExportProject:用于导出诊断工程。

● 导入工程ImportProject:用于导入已有的诊断工程。

● 诊断仪在线TesterIsPresent:是否启动诊断仪在线命令。

● DLC:FD帧的最大DLC值,该参数只有在FD模式下才有效。

● 接收连续帧最小帧间隔STMin(R):用户自定义接收端STMin参数,单位ms。如设置为0,表示支持以最短的事件间隔接收,。

● 发送连续帧最小帧间隔STMin(T):用户定义发送端STMin参数,单位ms。

● 用户自定义连续帧最小帧间隔User Define STMin:是否手动定义连续帧最小帧间隔,单位ms。

● 填充字节FiledByte:发送诊断帧填充字节。

● 功能ID类型FunctionalIDType:传输层功能ID的类型,0是标准帧,1是扩展帧。

● 功能ID (FunctionalID):传输层功能ID。

● 应答ID类型ResIDType:传输层应答ID的类型,0是标准帧,1是扩展帧。

● 应答ID (ResID):传输层应答ID。

● 请求ID类型ReqIDType:传输层请求ID的类型,0是标准帧,1是扩展帧。

● 请求ID (ReqID):传输层请求ID。

● 总线类型BusType:设置总线类型:0代表CAN总线;1代表CANFD总线;2代表LIN总线;3代表DOIP(基于以太网的诊断)。

● 通道Chn:设置诊断模块的通道参数,比如0代表通道1,1代表通道2。

● 自动化流程进度UDSProgress:自动诊断流程的实时进度,该变量用来获取自动诊断流程的运行状态。

● 安全访问种子和密钥SeedAndKeyDLL:设置种子&密钥DLL的绝对路径,使用时注意转义字符。

● P2扩展时间P2Extended:设置P2扩展时间。

● P2扩展时间P2TimeOut:设置P2超时时间。

● S3服务端时间S3ServerTime:设置S3服务端时间。

● S3服务端时间S3ClientTime:设置S3客户端时间。

7.3.2 诊断服务特定系统变量

在基础诊断配置的复合诊断服务添加新的服务后,系统变量管理器同样会生成对应的系统变量:服务名_DataFile,此变量为下载文件的绝对路径,修改此变量可控制下载文件的载入与切换。如图7-16。

图7-16 下载文件路径系统变量

此外,当载入下载文件后,系统变量控制器会根据选择的校验和算法生成每块校验和,及总校验和,下载文件的首地址和长度,如果已经添加了符合诊断服务,载入了下载文件,并且在基本诊断服务中关联了下载文件相关变量,那么在替换下载文件的同时,这些关联的变量也会随之改变,最小的工程修改实现文件的灵活切换。

7.3.3 自动诊断流程的注册系统变量

在诊断控制台中可以根据需要灵活配置诊断服务,这些诊断服务配置好后,用户需要在诊断控制台中双击启动该诊断服务。

如果用户希望在Panel界面中或者程序中启动诊断流程命令,步骤如下:

【1】首先在诊断Basic Diagnostic Config窗体中,选中目标服务,然后右键菜单把该诊断服务注册为系统变量,如图7-17所示。

图7-17 诊断服务注册为系统变量

注册完成后,该流程的图标多出3个小彩圆,表示成为一个注册系统变量的服务,未注册的流程为蓝色圆,如图7-18所示:

图7-18 注册为系统变量的图标变化

【2】注册完成后,在系统变量管理器中,就可以看到生成系统变量_Start和_Result如图7-19。

图7-19 注册为系统变量的变量

其中_Start的数值赋值为:

● 0是空闲状态。

● 1是正在执行状态。

● 2是执行成功。

● 3是执行失败。

_Result的数值结果为:

● >0表示启动诊断流程

● =0表示中断停止诊断流程

● <0为非法参数。

【3】在面板Panel中添加按钮button控件,并关联生成好的系统变量流程名_Start,将将按钮按下事件设置为1,如图7-20。

图7-20 面板按钮控件关联系统变量

【4】运行程序,点击Panel的测试按钮,将值1赋给流程名_Start,诊断模块执行相应的诊断流程,实现自动运行诊断流程。

8、DoIP诊断典型应用

本文设计了一个简单的 BootLoader 流程来说明如何基于 TSMaster DoIP模块配置一个Flash BootLoader 流程。

8.1 配置刷写例程

【1】首先创建UDS流程:注意切换编辑器为解锁状态,否则无法添加新的流程步骤。如图8-1。

图8-1 解锁编辑器

【2】切换默认会话,切换扩展会话,然后切换整车制造商自定义会话,在基础诊断配置先提前配置好,如图8-2。然后在自动诊断流程中使用选择已有配置进行添加,如图8-3。

图8-2 基础诊断配置会话服务

图8-3 切换默认会话、扩展会话、整车制造商自定义会话

【3】添加种子和密钥步骤,解锁ECU,如图8-4。

图8-4 种子和密钥步骤

【4】基于读取ID:F080位置处的数据。

方式1:使用普通步骤配置形式,如图8-5。

图8-5 普通步骤读取DID F188零件号

方式2:在基础诊断配置中配置好,然后在流程中使用选择已有配置,如图8-6。

图8-6 选择已有配置读取DID F080

【5】接着在IDF086处写入数据20 11 20 00 00 00 00 00 00,如图8-7。

图8-7 IDF186处写入字符串

【6】检查刷写前提条件,如图8-8。

图8-8 检查刷写前提条件

【7】添加FlashDriver/应用程序文件流程。首先在基础诊断配置添加FlashDriver和应用程序文件,如图8-9。

图8-9 基础诊断配置添加刷写文件

然后在自动诊断流程中选择相应的已有配置,选择创建好的组合下载服务。如图8-10。

图8-10 选择已有的组合下载服务

【8】采用例程控制擦除Flash。通过诊断基础设置配置好后擦除指令,将起始地址和数据长度的系统变量,通过系统变量的方式添加请求参数,如图8-11。

图8-11 诊断基础配置擦除指令

然后通过选择已有配置加入到流程中。如图8-12。

图8-12 例程控制擦除Flash

8.2 DoIP诊断流程一键运行

在完成配置后,总的配置流程如图8-13所示。

图8-13 完成Flash BootLoader配置流程

连接以太网被测件之后,通过按钮一键执行自动诊断流程,当每个步骤都是正响应时,会显示为绿色,如图8-14。

图8-14 一键执行自动诊断流程

在Ethernet报文消息中可以查看完整的DoIP BootLoader刷写流程,也可以使用总线记录将过程报文记录成blf文件保存。

图8-15 Ethernet诊断流程报文

以上,基于TSMaster的DoIP模块,实现零代码方式,可以非常简单快速地开发基于以太网的DoIP诊断流程应用。

未雨绸缪,数据保护之NBU介质备份

​​​​​​​​​​​​​​​​​​​​​摘要:华为GaussDB目前已支持NBU介质的备份与恢复,本文主要描述了华为GaussDB数据库和NetBackup对接进行备份、恢复的配置方法与性能调优方法。

一、简介

企业要想避开自然灾难和站点中断的影响,必须将数据副本远程备份至异地机器中。 这样当生产站点发生重大灾难事故时候,本地的生存存储与备份存储数据可能都会丢失,此时需要从异地备份存储上恢复数据,从而保证数据不丢失。Netbackup 是目前金融行业使用最广的备份软件之一(简称NBU),是Veritas(赛门铁克)主要产品 。华为GaussDB目前已支持NBU介质的备份与恢复,本文主要描述了华为GaussDB数据库和NetBackup对接进行备份、恢复的配置方法与性能调优方法。

二、NBU部署方式

当前GaussDB NBU备份方案支持两种部署架构,分别为侵入式部署于非侵入式部署。

NBU侵入式部署

当GaussDB所在集群支持NBU系列软件安装时,部署方式采用NBU侵入式部署,部署结构如下图:

NBU侵入式部署方案可以借阅 【GaussDB对接NBU备份环境配置指南】

具体使用方法如下:

注意:

--media-destination: 该参数为NBU policy名称--metadata-destination: 元数据目录(本地路径)--prior-backup-key: 该参数为增量备份依赖的备份集--backup-key: 该参数指定恢复备份集

1、全量备份:

python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --parallel-process 3

2、增量备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/roachbackup/metadata --parallel-process 3 --prior-backup-key 20200912_083324

3、全量/增量恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --backup-key 20200912_083324

4、单表备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990

5、单表恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990 --backup-key 20190826_151600

6、多表备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 9500 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/omm/table.list

7、多表恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 9500 --media-destination $GAUSSHOME/roachbackup/mediadata --media-type nbu_policy --metadata-destination $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/apdba/table_list.txt --backup-key 20190511_183652 -

8、数据库级备份

python $GPHOME/script/GaussRoach.py -t backup --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU

9、数据库级恢复

python $GPHOME/script/GaussRoach.py -t restore --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU --backup-key key 20190511_193122

NBU非侵入式部署

当前NBU系列软件只支持x86机器,NBU非侵入式部署则支撑NBU系列软件无法在ARM、欧拉系统安装的场景。如下图所示,假如已有3节点GaussDB集群,Roach备份工具将本节点的集群数据通过TCP发送到远端NBU Media Server机器。每台NBU Media Server上面同时安装NBU Client,并部署Roach client组件,后者接收集群内Roach进程发来的备份数据,不落盘方式通过XBSA接口转发给本机的NBU Client,完成NBU备份。恢复流程也类似,只是数据流相反。

Roach client插件安装:

从DWS管控面的连接管理界面下载Roach client组件包到集群本地,然后拷贝出来。如下:

注意:/roach_client -p ip:8888 -H 0/0 -D -l roach_client.log

其中ip为当前部署roach_client机器, 8888为roach_client开放端口,用于沙箱内集群各节点和NBU Media Server之间TCP通信传输备份文件 ; -l 为指定日志路径

备份方式:

注意:

--media-destination: 该参数为NBU policy名称--metadata-destination: 元数据目录(本地路径)--nbu-on-remote:该参数指定部署方式为NBU非侵入式部署--nbu-media-list: 该参数指定NBU Media Server的ip清单,按行输入ip地址--client-port: 该参数指定Roach client插件的对外开放通信端口--prior-backup-key: 该参数为增量备份依赖的备份集--backup-key: 该参数指定恢复备份集

1、全量备份:

python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888

2、增量备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/roachbackup/metadata --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888 --prior-backup-key 20200912_083324

3、全量/增量恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --backup-key 20200912_083324 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888

4、单表备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990 --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

5、单表恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990 --backup-key 20190826_151600 --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

6、多表备份

python $GPHOME/script/GaussRoach.py -t backup --master-port 9500 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/omm/table.list --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

7、多表恢复

python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 9500 --media-destination $GAUSSHOME/roachbackup/mediadata --media-type nbu_policy --metadata-destination $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/apdba/table_list.txt --backup-key 20190511_183652 --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

8、数据库级备份

python $GPHOME/script/GaussRoach.py -t backup --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

9、数据库级恢复

python $GPHOME/script/GaussRoach.py -t restore --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU --backup-key key 20190511_193122 --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000

三、NBU流程概述

备份数据流

NBU 一般涉及NBU Master Server、NBU Media Server、NBU client,属于一个three-trie结构。

本章节主要介绍NBU进程工作原理,方便使用者、开发者了解NBU备份流程,排查问题。

下图中为通过备份所涉及的数据流向

基本备份过程:

1、启动备份方式:

当 nbpem 服务检测到某项作业到了启动时间时,将开始进行预定的备份操作。nbpem会检查到了启动时间的预定客户机备份的策略配置。如果管理员在 NetBackup 管理控制台中选择了手动备份选项,将开始进行即时手动备份。这会使 bprd 联系 nbpem,然后 nbpem 将处理管理员所选择的策略、客户机和日程表。当客户机上的用户通过该客户机上的用户界面(或者通过 bpbackup 或xbsa系列接口)启动备份或回复时,将开始进行用户控制的备份或回复操作。这将调用该客户机的 XBSA程序,该程序向主服务器上的请求后台驻留程序 bprd发送请求。当前Roach NBU介质备份采用这种启动方式。

2、接收备份任务:响应进程(bprd)接收到客户端的备份请求

bprd: requestmanager请求管理器:

bprd是Master Server的守护进程,bprd进程主要负责对客户机请求作出响应,并将并向nbjm发出 job请求,用于提交备份并获取job ID。

3、将请求转发个策略执行管理器nbpm

nbpem: policyexecution manager策略执行管理器

策略执行管理器服务 (nbpem) 执行以下操作:

a. 通过nbproxy从 bpdbm 中获取策略列表, 查询到有效的备份policy的是否存在;

b、向 nbjm 提交当前已到预定启动时间的所有作业(按照schedule执行时间的策略)。

4、为备份job分配资源

a、nbjm(job manager作业管理器)接收到任务后,nbjm首先会与bpjobd通信,将此job添加至job列表中,此时在Activity Monitor中该job以queue 状态可见。b、nbjm通过nbrb 请求资源,nbrb负责分配资源以响应来自 nbjm 的请求。并从 nbemm (企业介质管理器服务)获取物理资源,并管理逻辑资源,如多路复用组、每个客户机的最多作业数、每个策略的最多作业数。 当nbrb进程从nbemm获取到所需资源时,会返回通知nbjm资源已分配。

b、当nbrm资源分配完成后,nbjm会调用 image database 创建临时快照文件,此时该job会在Activity Monitor中该job以active 状态可见。

5、开始备份

a、当job处于active状态后,nbjm通过bpcompatd与NBU Media Server上的客户端服务(bpcd)进行连接,其中bpcompatd服务通过专用小交换机(PBX)和NetBackup旧式网络服务(vnetd)创建连接。b、bpcd进程是NBU Media Server上的守护进程,允许Master Server或NBU Client启动程序。bpcd接收到连接后会启动Netbackup 备份恢复管理器(bpbrm)。

b、bpbrm进程服务通过PBX与vnetd与NBU client机器上的bpcd进程建立连接,启动NBU client机器上的bpbkar,其中bpbkar负责生成备份image,并将image数据发送至NBU Media Server上的bpdrm,对于每个备份或恢复job,都会在NBU Media Server上启动一个bpbrm实例用于传输image数据。bpdrm进程会启动磁带/磁盘管理进程bptm,对于磁盘介质,bptm直接与磁盘通信。对于磁带介质,bptm保留驱动器并向逻辑磁带接口守护程序(ltid)发出安装请求。 ltid服务调用机械手驱动器守护程序(txxd,其中xx根据所使用的机械手的类型而异)。 txxd守护程序将安装请求传达给机械手控制守护程序(txxcd),后者将安装介质。

6、结束备份

bpbkar服务通过bptm发送备份数据,以将其写入介质存储或磁盘存储。 备份完成后,将通知nbjm并将消息发送到bpjobd。此时job在“Activity Monitor”中显示为“done”。 nbjm服务还会将作业退出状态报告给nbpem,nbpem将重新计算作业的下一个到期时间。

四、XBSA相关接口

NBU软件提供的libxbsa64.so动态库(实现了标准的XBSA系列接口),将本地数据传送到NBU服务器,然后由NBU服务器负责落盘到磁带介质上。 GaussDB的专用备份工具Roach,负责调用libxbsa64.so库将本地数据库文件备份到远端NBU服务器。 本章节则主要针对开发者,介绍XBSA系列接口。

备份相关接口

备份过程中涉及的XBSA相关接口主要如下:

BSAQueryApiVersion :该接口用于确定Netbackup XBSA接口的当前版本。BSAInit :该接口用于对XBSA应用程序进行身份验证,与NetBackup XBSA接口建立session会话,并为调用者的后续API调用建立环境。注意,BSAInit不支持嵌套创建session会话。BSABeginTxn

该接口用于创建一个事物,这里的事物和数据库事物概念相似,BSABeginTxn()调用向NetBackup XBSA接口指示作为原子单位执行的一个或多个操作的开始,即所有操作将成功或没有成功。可以将一个动作假定为为特定目的而进行的单个函数调用或一系列函数调用。

例如,一个BSACreateObject()调用后跟多个BSASendData()调用并以BSAEndData()调用终止可以被视为单个操作。 在正常使用中,BSABeginTxn()调用总是与随后的BSAEndTxn()调用耦合。如果在事务期间调用BSATerminate(),则事务中止。

注意,BSABeginTxn 不支持嵌套创建事物。

BSACreateObject

BSACreateObject调用在NetBackup中创建一个XBSA对象。 该调用将启动NetBackup XBSA接口与NetBackup服务器之间的通信。然后可以将XBSA对象数据传递到内存缓冲区中。BSACreateObject调用中的dataBlockPtr参数允许调用者获取有关NetBackup XBSA接口所需的缓冲区结构的信息。

BSASendData

BSASendData()将字节数据流发送到缓冲区中的NetBackup XBSA接口。如果要发送的字节数据流很大,则可以多次调用BSASendData()。此调用只能在BSACreateObject()或另一个BSASendData()调用之后使用。

BSAEndData

调用方在调用BSACreateObject之后调用零次或多次BSASendData,当前备份文件传输完毕后调用BSAEndData,用于通知Netbackup服务器当前文件传输结束

BSAEndTxn

BSAEndTxn与BSABeginTxn耦合使用,以标识将被视为事务的API调用或一组API调用。。

BSATerminate

BSATerminate调用终止与NetBackup XBSA接口的会话,该接口由BSAInit调用对应,释放当前session会话获取的所有资源。如果在事务内调用BSATerminate(),则事务中止。

恢复相关接口

恢复过程中涉及的XBSA相关接口主要如下:

BSAQueryObject

​ BSAQueryObject调用从NetBackup XBSA界面启动有关NetBackup XBSA对象文件的信息请求。查询结果由查询描述符中指定的搜索条件确定。在BSA_ObjectDescriptor(由objectDescriptorPtr参数引用)中返回满足查询搜索条件的第一个XBSA对象的XBSA对象描述符。

BSAGetData

BSAGetData从NetBackup XBSA接口请求XBSA对象文件数据。在BSAGetObject()调用之后或在其他BSAGetData调用之后使用此调用。

五、问题定位

使用Roach工具NBU备份发生故障时,可通过以下思路进行问题定位

NBU管理控制界面activity monitor可显示相关的备份、恢复job。 job类型分为三类:

蓝色站立人性:表示该次备份/恢复操作已成功执行完毕;绿色跑步人形:表示该次备份/恢复操作正在执行;红色x形:表示该次备份/恢复操作失败,可根据Status查询NBU官方文档获取错误相关原因;

例如上图中失败job返回码为13,则可根据文档信息定位排查原因

若NBU界面无失败job,则一般问题出现在了Roach侧,可根据Roach日志进行定位。

六、参数调优

Roach工具目前支持两种NBU部署结构,分别为NBU侵入式部署于NBU非侵入式部署,两种部署方式的参数调优分别如下:

1、通用参数调优

Maximum concurrent jobs

此值指定了对应存储单元上最大作业数量,取值范围为1-256,

例如准备将三个备份作业发送到存储单元,并将“最大并发作业数”设置为两个。前两个作业开始,而第三个作业等待。

Maximum vault jobs

此属性指定在master server上允许活动的最大活跃job数量。如果达到了允许活动的job限制,则将后续的kob排队,并且它们状态在“活动监视器”中显示为“已排队”。此属性设置范围为1~200, 当备份过程并发job数大大超过200,则master server会出现瓶颈,造成任务排队耗时。此时应考虑部署多Master Server模式。

设置NET_BUFFER_SZ :在应用Netbackup备份数据到带库时,有一个NET_BUFFER_SZ参数,决定media server与client之间数据传输的缓冲池大小,该参数值默认为32032 bytes,以文件形式保存于%Install_Path/netbackup/目录下。通常默认值都较小,如果希望修改该参数值,则直接修改%Install_Path/netbackup/NET_BUFFER_SZ即可,例如:

host-192-168-241-40:/usr/openv/netbackup # echo 65536 >

/usr/openv/netbackup/NET_BUFFER_SZ

host-192-168-241-40:/usr/openv/netbackup # more

/usr/openv/netbackup/NET_BUFFER_SZ65536

设置一个足够大的NET_BUFFER_SZ某些情况下能够有效提高备份的速度,推荐在server/client端都设置该参数。

2、NBU侵入式部署调优

Maximum jobs per client:

此值设定每个NBU client发送的并行处理任务数,通常Roach与并行参数相对性,一般设置为DN数+CN数为最佳。

3、NBU非侵入式部署调优

Maximum jobs per client

此值设定每个NBU client发送的并行处理任务数,通常Roach与并行参数相对性,一般设置为

(DN数+CN数)*(Roach client 服务的Roach agent)个数为最佳。

4、超时设置

超时属性适用于选定的Master server、Media Server以及NBU client

Client connect timeout

此选项指定服务器连接客户端时等待的秒数。默认值为300s。一般Roach备份业务中,建议此值设置为3600s 或者更高。此选项适用于NBU Master Server、NBU Media Server、NBU Client。

Client read timeout:

此选项指定用于客户端读取超时的秒数。此选项适用于NBU Master Server、NBU Media Server。默认值为300s,如果服务器在客户端在此超时时间内没有从客户端得到响应,则备份/恢复任务失败,报错误码13。特别是针对于NBU Job复用场景,文件间隔传输时间超过此值,则备份/恢复任务失败。建议此值设置为3600s 或者更高。

Media server connecttimeout

此选项用于指定Master Server连接Media Server的等待超时描述,默认值为300s。建议此值设置为3600s 。此选项适用于NBU Master Server、NBU Media Server。

点击关注,第一时间了解华为云新鲜技术~

相关问答

tx备份 要多久?

这个备份时间的长短主要是与存储容量的多少和网络的速度有关,从五分钟到三十分钟都是正常的,如果直接备份到电脑里的话,时间是很快的。补充内容:苹果手机怎样...

泰拉瑞亚怎么用es浏览器导入存档?

答:泰拉瑞亚用es浏览器导入存档的方法。1.下载ES文件浏览器并打开它。2.点击屏幕左上角的“内部存储”。3.进去后,交叉下去找到“tx”,点进去。就可以导...

switch硬破 tx 转大气层之前的存档还有么?

如果您的Switch已经硬破解并且已经转移到大气层之后,那么您的存档应该是可以继续使用的。但是,如果您想要使用之前的存档,需要先备份存档文件,然后将其转移到...

360手机卫士 备份 的手机通讯录节点不小心删除了怎么恢复 - 18...

你是指备份删除了吗?备份删除了手机里联系人还在的话可以再备份一次不久可以拉?如果你手机里的来纳西人删除了而备份也删除了先看看回收站里有没...

力学的3个基本单位怎么导出其他公式?只给出米,千克,秒其他的...

[回答]比如v=x/tx的单位是m.t的单位是s.v的单位就是m/s.把公式里的字母单位带进去就行了.单位都根据公式这样导出的.比如v=x/tx的单位是m.t的...

离子色谱如何输出txt或者excel格式的数据?-盖德问答-化工人...

class-vp??不知道你了解不这个能输出原始数据吗...岛津的仪器了。这个工作站够老了,现在岛津已经不用了。离子色谱的classvp没用过,只用过凝胶色...

我电脑里的杀毒软件删除去了,那么我 备份 的系统文件里的杀毒...

不用吧,一个小小的杀软备份也占不了多大的空间。你如果用好的备份软件的话,在下一次你备份时它会自动清除没用的东西的。没有必要吧。有免费的。如...

苹果的qq同步助手肿么不能 备份 信息-ZOL问答

tx5人讨论7745次围观关注问题写回答讨论回答(5)zzz1111234您好,亲爱的管家用户由于苹果公司的接口限制,目前appstore版本无法实现短信的同步。我们现已...

tx 硬破怎么升级系统?

因为破解手机系统可能会存在一定的风险和不稳定性,因此升级系统前建议备份重要数据。如果您的Tencent(TX)硬破机器想要升级系统,您可以尝试以下步骤:1.确...

在土建计量GTJ中,如何使用天正绑定外部参照图纸?-答疑解惑-...

[回答]"="">参照图纸绑定方法:"=""> 用天正打开图纸----点击【插入】---外部参照(或者在命令行输入XR命令),鼠标点到参...

 杨罡  卫斯理罗嘉良版 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部