STB Suite

用于 SCSI、SATA、SAS、iSCSI 硬盘驱动器、磁带驱动器和库外围设备的专业工程、筛选和测试软件,通过现成的 HBA 提供

示例代码

已创建 STB Suite 示例代码资源,以允许分发我们编写的、您编写的自定义脚本,并创建一个资源池供您使用,以帮助您使用我们的 API 快速开发测试解决方案 、SDK 和 STB Suite模块。

请注意,此处下载的任何脚本均适用于 SCSI Toolbox 产品,包括 开发工具箱, 磁盘 制造与 筛选模块 (DMM)Tape Manufacturing & 筛选模块 (TMM)。 请按照使用特定脚本的任何特定说明进行操作。

要获得 STB Suite 的许可证以使用提供的脚本请在此处购买许可证

磁盘制造模块 (DMM)

序列文件 – 在磁盘制造模块中打开这些文件

分类 文件名 简介
NVMe 增量传输测试
 
NVMePerfTest.zip

增量传输测试。 这每次传输使用 256 个块,并强制队列深度从 1、8、16、32 开始用于读取和写入。

 

预测试配置:
 =======================
 <none>

测试总结。 8 个测试定义:
 =================================
 测试 1(共 8 个):
 Write Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 1
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 2(共 8 个):
 Read Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 1
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 3(共 8 个):
 Write Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 8
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 4(共 8 个):
 Read Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 8
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 5(共 8 个):
 Write Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 16
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 6(共 8 个):
 Read Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 16
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 7(共 8 个):
 Write Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 32
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试 8(共 8 个):
 Read Test; Sequential; for 8,000,000 Blocks
 Fixed-Length Transfers of 256 (0x0100) Blocks
 Start Block: 0 (0x0)
 Data Pattern: Decrementing
 Queue Depth = 32
 FUA = OFF
 Number of Workers = 1
 Timeout Value = 30
 Action on Error: Stop Current Test

测试后配置:
 ========================
 <none>
外部 SATA 自检 DMMSataSelfTest-90410.zip 通过使用 Developers Toolbox (DTB) API,您可以向任何类型的设备发送任何命令。此示例将说明如何将 SATA SMART 自检作为 DMM 测试步骤运行,并将结果记录到 DMM 设备日志文件中。使用 Microsoft Visual Studio C++ 和 STB Suite Developers Toolbox api 我们可以将我们需要的任何命令发送到任何类型的设备。 由于 DMM 通过实现 SAT(SCSI->ATA 转换)的 SAS 控制器与 SATA 设备进行通信,例如 LSI 3800 或 3801,我们必须根据 SAT 标准编写程序来发出嵌入到 SCSI 命令中的 SATA 命令 .我们的示例项目从 DMM 传递的命令行参数中检索驱动器的地址。 此外,DMM 允许您将其他用户定义的命令行参数传递给您的程序。 例如,您可以修改此项目以允许您指定任何不同的 SATA 自检。
磁盘清除文件 DiskPurge-DMMfiles.zip

磁盘制造模块 (DMM) 使用这些文件来清理/清理磁盘。

  • DiskPurge-long.seq – 该测试使用三种不同的数据模式对整个驱动器进行了三遍写入。 在每次写入通过后,将进行一次完整的读取通过,并进行数据比较以验证数据是否覆盖。 注意:这些读取通道不需要满足 DOD 5220-22m 规范
  • DiskPurge-short.seq – 该测试使用三种不同的数据模式对整个驱动器进行三遍写入/验证。 它将在长时间测试的一半时间内运行
  • DiskErase-Speedy.seq – 该测试使用随机数据模式完全覆盖驱动器上的每个块。
数据洗涤器测试 DiskScrub.zip

此测试序列执行以下操作:

  1. 使用交替的 0/1 数据模式写入整个驱动器
  2. 读取整个驱动器进行数据比较
  3. 使用交替的 1/0 数据模式写入整个驱动器
  4. 读取整个驱动器进行数据比较
  5. 使用随机数据模式写入整个驱动器
  6. 读取整个驱动器进行数据比较

如果任何 WRITE 或 READ 命令失败,或者任何数据比较失败,则测试将失败。 这与国防部认证测试的过程相同。

Disk Zap Block Zero DiskZapBlockZero.zip 擦除磁盘的第一个块。 有助于清除主引导记录或其他操作系统残余
磁盘写入所有块 DiskWriteAllBlocks.zip 使用块号作为数据模式写入驱动器的所有块
磁盘读取所有块 DiskReadAllBlocks.zip 读取驱动器的所有块——确保驱动器是可读的。
磁盘快速质检 DiskQuickQC.zip
  1. 写入和读取数据比较。 1000000 块开始,100000 和 2000000 块进入驱动器。
  2. 2 分钟随机访问写入/读取数据比较
  3. 在测试开始和结束时将 P 和 G 缺陷记录到日志文件
磁盘快速数据擦除 DiskQuickDataErase.zip 使用带有 LBA 覆盖的随机数据写入所有磁盘块
磁盘 DOD(国防部)擦除 DiskDODErase.zip 符合 DOD 标准的磁盘清除。 使用数据比较写入和读取三个数据模式。 测试将在整个驱动器上执行总共 6 次通过(3 次写入,3 次读取),并且可能需要很长时间才能完成。
磁盘物理压力 DiskPhysicalStress.zip
  1. 2 分钟的随机访问写入/读取数据比较,设置 FUA 以强制访问驱动器物理介质(而不是缓存访问)。
  2. 2 个降速/升速循环
  3. 2 分钟的蝶式访问写入/读取数据比较和 FUA 设置
  4. 2 个降速/升速循环
  5. 2 分钟的随机访问写入/读取,数据比较和 FUA 设置开启所有数据模式使用随机与 LBA 覆盖
磁盘无损 15 分钟压力测试 DiskNonDestructive15MinStressTest.zip
  1. 2分钟随机访问读取,128块/传输,FUA启动
  2. 1 次减速/加速
  3. 2分钟蝶式访问读取,128块/传输,FUA启动
  4. 1 次减速/加速
  5. 4 分钟随机访问读取,同上
  6. 1 次减速/加速
  7. 4 分钟蝶式访问如上所示
磁盘无缓存介质完整性 DiskNoCacheMediaIntegrity.zip 写入和读取驱动器的所有块,带有 LBA 覆盖的随机数据模式,FUA 设置为 ON,数据比较
Disk Confidence 1 DiskConfidenceNum1.zip
  1. 与原STB“Disk Confidence Test 1”功能相同
  2. 1GB 顺序写入,递增数据模式
  3. 1GB 顺序读取和数据比较
  4. 5000 次随机访问搜索(1 块读取)
  5. 4 个减速/加速循环
磁盘验收 DiskAcceptance.zip
  1. 确保块大小为 512 字节/块
  2. 确保生长缺陷不超过 1 个
  3. 启动所有驱动器
  4. 清除驱动器日志页面
  5. 顺序写入 1000000 个块,LBA 数据模式
  6. 顺序读取 1000000 个块并进行数据比较
  7. 5 分钟蝶式读写与数据比较
  8. 将主要缺陷和增长缺陷的数量记录到日志文件中
磁盘块因子性能 DiskQuickQC.zip 顺序写入和读取 8、32、64 和 128 个块 pr 传输 - 查看日志文件以查看每个块因子的 I/O 性能
15 分钟无损蝴蝶阅读 15MinuteNonDestButterflyRead.zip 只读测试 - 15 分钟的蝶式访问读取
15分钟破坏蝴蝶 15MinuteDestructiveButterfly.zip
  1. 11 分钟写入,4 分钟读取
  2. 使用 LBA 叠加增加数据模式
  3. 读取数据比较
15 分钟数据库 15MinuteDatabaseTest.zip
  1. 测试以模拟数据服务器应用程序
  2. 15 分钟随机写入/读取、随机传输长度、数据比较

磁带制造模块 (TMM)

序列文件在磁带制造模块中打开这些文件

分类 文件名称 简介
TapeQuickQC TapeQuickQC.zip 验证数据写入/读取和定位的快速测试
TapePositioning TapePositioningTest.zip 写入文件集和文件标记,然后使用各种空间命令在文件集之间移动的测试。
TapeMotionDataStress TapeMotionDataStress.zip 各种数据模式与压缩打开和关闭,加上定位。
TapeLTOMediaGoodness TapeLTOMediaGoodness.zip 使用 LOG Pages 和 Cartridge MAM 数据来确定媒体健康状况
TapeCompressionPerformance TapeCompressionPerformance.zip 使用 2:1 可压缩数据模式进行测试,在打开和关闭压缩的情况下进行写入和读取。 日志驱动 LOG 页面用于压缩计算
TapeAcceptance TapeAcceptance.zip 一个简短的测试,检查驱动器是否在总线上响应并可以完成基本命令
Tape2G-2to1CompressOnOff Tape2G-2to1CompressOnOff.zip 在打开和关闭压缩设置的情况下写入和读取 2G 的 2:1 可压缩数据。 每次测试前清除 LOG 页面,每次测试后记录 LOG 页面
Tape 2GB – 2to1 Comp-badtape Tape2G-2to1Comp-badtape.zip
  1. 在打开和关闭压缩设置的情况下写入和读取 2GB 的 2:1 可压缩数据。 每次测试前清除 LOG 页面,每次测试后记录 LOG 页面。
  2. 在磁带开头写入 3 个文件标记,并在测试期间跳过它们 - 以帮助使用在磁带开头磨损的磁带进行测试。
磁带 2 对 1 压缩 2to1Compression.zip 使用 2:1 可压缩数据模式的简单写入/读取测试。 检查日志以查看写入和读取速度的传输性能。

ScriptWriter Pro (SWP)

分类 文件名称 简介
磁盘测试 diskread.zip 此示例说明使用 SCSIDiskRead 函数从磁盘驱动器读取连续块。 如果读取命令失败,则使用 SCSIViewSense 函数检索和显示描述失败的感知数据。
disktest.zip 这是一个使用 “dlgdsn.exe” 生成的图形界面的复杂示例。 程序。GUI 允许用户输入主机总线适配器编号和 SCSI 目标编号。 当‘扫描目标’ 如果设备在该地址做出响应,则按下按钮会发出 INQUIRY 并显示查询数据。一旦选择了设备,就可以在驱动器上执行各种测试。
DiskGetECCSpan.zip 从磁盘驱动器检索 ECC 长度
DiskStartStop.zip 向上或向下旋转磁盘
DiskUnload.zip 从可移动类型的磁盘或 CD 中弹出媒体
DiskWriteRead.zip 写入& 阅读& 显示数据
GetDeviceType.zip 检索& 解释设备类型
GetReadLongSize.zip
DiskReadFUA.zip 设置了强制单元访问位的磁盘读取
Sony AIT aitlog.zip 此示例说明使用 SCSILogSense 函数从磁带驱动器检索、解析和显示日志页数据。以下是输出文件 ‘aitlogs.txt’:12/22/2003 12:59:18 的内容 PMVendor = SONY Product = SDZ-100 Version = 0100Host adapter = 5 Target = 0 LUN = 0Tape Log Page (30h) = 当前写入组数 = 000 当前 RAW 重试次数 = 405 当前读取组数 = 003 当前组数 ECC-3 重试 = 00 之前写入的组数 = 500 之前的 RAW 重试次数 = 540 之前读取的组数 = 000 之前的 ECC-3 重试次数 = 00 写入的组总数 = 40500 RAW 重试总数 = 8405 读取的组总数 = 00940 ECC-3 重试总数 = 41450 加载计数 = 00
确认缓冲区大小 BufferSize.zip 确认 DTB 缓冲区的大小
比较缓冲区 CompareBuffers.zip 比较两个 DTB 缓冲区之间的数据
十进制转换为十六进制 DEC2HEX.zip 将十进制整数转换为四字节数组以供 LBA 使用
READLONG命令 GetLongReadSize.zip 检索 READLONG CDB 的正确大小
获取磁带容量 GetTapeCapacity.zip 检索并显示磁带容量
读取容量 ReadCapacity.zip 检索并显示 Highblock 编号和 Blocksize
传输率 TransferRate.zip 计算并显示磁盘读取传输率
读取元素状态 ReadElStatus.zip 读取元素状态
用户定义的命令 userdefined.zip 此示例说明使用 SCSIUserCdb 函数发出用户定义的 SCSI CDB。定义 cdb 数组并填充 SCSI INQUIRY 命令的值。 发出此命令并显示数据。
询问 loggerinq.zip 此示例说明如何使用 SCSIInquiry、SCSIVendor、SCSIProduct 和 SCSIVersion 命令。它还显示了如何使用 ‘looger.exe’ 对象以在非模态文本框中显示数据。
Inquiry.zip 此示例向 ha、target 和 & 指定的设备发出 INQUIRY 命令。 伦 来自 INQUIRY 命令的数据存储在数组 ‘inqdata’ 中。函数 SCSIGetVendor、SCSIGetProduct 和 SCSIGetVersion 也用于用各自的数据填充字符串。
NewINQUIRY.zip 显示 INQUIRY 数据的另一个示例
Developer Toolbox (DTB)
Visual C++
分类 文件名 简介
重新审视 SCSI 合规性( SCSICompliance-120625.zip SCSI 命令合规实用程序的目的是向目标设备发出 CDB,并记录发送 CDB 的结果。 (阅读全文
使用块数和队列深度 BC_QD_Testing.zip 调用我们的 VCSCSISetQueueDepth 和 VCSCSISetTransferMode API 函数的 VCPSSL 项目。 在项目名称中,BC 代表“Block Count”,QD 代表“Queue Depth”
发现 discover.zip 此示例项目创建一个命令行程序,该程序使用 VCSCSIHostAdapterCount() 函数返回系统中存在多少主机适配器。使用 VCSCSITargetCount() 函数执行循环以遍历每个 HBA 上所有支持的地址,发出 INQUIRY 命令与 VCSCSIInquiry() 函数。如果设备响应 INQUIRY 命令,则函数 VCSCSIGetVendor() 和 VCSCSIGetProduct() 函数用于检索此数据。要运行程序,请打开命令提示符窗口并运行可执行文件。
CDB的时间 TimingOfCDB.zip Visual Studio 6 项目,展示如何对 I/O 进行计时。 每个 I/O 都是 1 块读取(块 0)。 在主屏幕上输入 HBA:Target:Lun 和要发布的 I/O 数量。 测试完成后,它会显示每个 I/O 的平均时间(以毫秒为单位)。
.NET C#
分类 文件名称 简介
示例 UsingDTBFromCSharp.zip 这是一个示例项目,它只调用 VB.PSSL 中的一个 API 并显示 DLL 的版本。
Visual Basic
分类 文件名称 简介
将缓冲区写入文件 Buffer2File.zip 将数据从 DTB 缓冲区写入文件
检查随机块 CheckRandomBlock.zip 检查随机块
比较缓冲区 CompareBuffers.zip 比较两个 DTB 缓冲区之间的数据
倒带 Rewind.zip 倒带、写入数据、写入文件标记、倒带、读取磁带测试
供应商信息 Vendor.zip 检索& 显示 INQUIRY VENDOR 数据
版本信息 Version.zip 检索& 显示查询版本数据
AND AND.zip 使用 DTB 逻辑与功能
磁盘获取 ECC 跨度 DiskGetECCSpan.zip 从磁盘驱动器检索 ECC 长度
磁盘启动或停止 DiskStartStop.zip 向上或向下旋转磁盘
磁盘卸载 DiskUnload.zip 从可移动类型的磁盘或 CD 中弹出媒体
磁盘写入、读取、显示 DiskWriteRead.zip 写入& 阅读& 显示数据
获取设备类型 GetDeviceType.zip 检索& 解释设备类型
读取长尺寸 GetReadLongSize.zip 检索 READLONG CDB 的正确大小
磁盘读取 FUA DiskReadFUA.zip 设置了强制单元访问位的磁盘读取
获取磁带容量 GetTapeCapacity.zip 检索并显示磁带容量