Spectra Logic RioBroker Certification Test Plan

Introduction

The document describes the certification tests for Spectra Logic RioBroker integration.  In order to receive certification from Spectra Logic, this completed document must be submitted to your Spectra Logic Certification and Testing Manager for review. Before submitting this document, you must have submitted and received acceptance from Spectra Logic for the Spectra Logic RioBroker Certification Program Questionnaire. For additional information, see the Spectra Logic Developer Program website at https://developer.spectralogic.com.

Testing must be done with a real RioBroker installation using the BlackPearl simulator or a real BlackPearl.

All tests are required to be performed unless stated otherwise.

The remainder of this document assumes that the user is familiar with details of the RioBroker API, the BlackPearl product, and information contained on the Spectra Logic Developer Program website.

Test Setup, Installation of the Host Client Software, Connection to RioBroker and BlackPearl and Configuration

Once you are ready to begin testing, your Spectra Logic Certification and Testing Manager will work with you to determine the appropriate test setup, test equipment requirements, test time, installation of host software and client, and other testing program details.  Review the installation of your product, RioBroker, and BlackPearl connection and configuration to verify that everything is working properly prior to commencing the testing.

Testing can be done at your site or at the Spectra Logic Testing and Certification Lab in Boulder, Colorado.

Logging, Result Capture, and Live Demo Requirements for Certification

  • Log files: Please pull a log set from RioBroker when directed in the test plan steps below. These log files are used to assist with confirming proper Interface behavior and debugging any failures that may occur.  RioBroker logs can be found in C:\ProgramData\SpectraLogic\SpectraRioBroker\logs.
  • Screen Captures: Screen captures will be required for the tests to enable Spectra Logic to verify test results and certify your product.  Please ensure that the person performing the test understands how to capture screen images and paste them into this document.
  • Live Demo: Once this test plan, along with test results, has been submitted and accepted by Spectra Logic, Spectra Logic will contact you to schedule a live demonstration of archive and restore operations by your RioBroker integration. This live demonstration can be done at Spectra Logic headquarters or remotely via WebEx or similar screen sharing technology. You will not receive certification until Spectra Logic concludes that you have passed all tests and that this live demonstration is successful.

You must complete the following information in order to receive certification.

Organization/Tester Information
Organization Name:
Tester Name:
Tester Contact Information (email and phone):
Product and Configuration Information
Your Application’s Name:
Application Software Version:
Application’s RioBroker Client Software Version (if different than above):
Spectra Logic RioBroker Version:
RioBroker .NET SDK Version (if used):
BlackPearl Version:
 

Testing the RioBroker Integration

To get started with testing, set up the RioBroker system as needed: Install RioBroker, set up a cluster, initialize a Spectra device, create a broker with default agent of the Spectra device, and make sure at least one primary storage target is installed with valid credentials on the RioBroker server.

Test #1: Test for error reporting and handling of invalid/missing bucket.

Goal: To ensure application properly reports and handles unexpected error conditions on archive, displaying the RioBroker error description.

  • Attempt to archive files using RioBroker after BlackPearl bucket has been deleted.
    • Using your application and RioBroker, create Spectra device, then create associated broker and agent.
    • Attempt to archive some files, confirm successful transfer.
    • Delete BlackPearl bucket. In the BlackPearl web management interface, go to Configuration -> Buckets. Single click on the bucket being used by RioBroker, then go to Action -> Delete.
    • Restart the “Spectra Rio Broker Server” service.
    • Attempt to archive files again. Capture a screen image that clearly shows your application’s error (this should include the RioBroker error message).  Paste the screenshot below:


Test #2: Test for error reporting and handling of a restore when the file does not exist.

Goal: To ensure that the client properly reports and handles unexpected error conditions on restore, displaying the RioBroker error description.

  • Attempt to restore a file from RioBroker that does not exist
  • Archive one or more files to RioBroker using your application.
  • Delete one of these files using a BlackPearl client such as the Eon Browser (https://developer.spectralogic.com/clients) or delete the file via RioBroker using an HTTP/REST command.
  • Attempt to restore the deleted file through your application.
  • Capture a screen image that shows your application’s error (this should include the RioBroker error message).  Paste the screenshot below:


Test #3: Test archive of 100 files.

Goal: To ensure that your application can perform an archive of multiple files at once. This test verifies that the archive process keeps RioBroker data movers working efficiently, and reasonable throughputs can be achieved.

  • Archive 100 files to RioBroker
    • If testing in the Spectra lab, ingest 100 files from \\10.85.41.34\TestFiles\250x1GB (or another location provided to you by Spectra Logic). If your application does not need to ingest files, they can be archived directly from the above location.
    • Issue a command to archive the 100 files to RioBroker simultaneously
      • Note:
        • The 100 files should be either in a single command (100 files in one archive command) or multiple separate commands (one or more files per archive command).
        • If the 100 files are sent to RioBroker in separate commands, some level of concurrency must be demonstrated. Please describe how many jobs can be run in parallel and, if changeable, show where the concurrency setting is configured within your application.
    • Wait until the file transfers have completed before continuing.
    • Capture a screen image that shows your application indicating that the transfer of the 100 files has been completed.  Paste the screenshot below:
    • Save a copy of the RioBroker log file (rio-main.log), renamed as Archive100.log.
      Include this and all other log files with your test results.
      • Note: Rio logs are located on the RioBroker server at C:\ProgramData\SpectraLogic\SpectraRioBroker\logs\


Test #4: Test restore of 100 files.

Goal: To ensure that your application can perform a restore of multiple files at once. This test verifies that the restore process keeps RioBroker data movers working efficiently, and reasonable throughputs can be achieved.

  • Restore 100 files from RioBroker
  • Issue a command in your application to restore the 100 files archived in Test #3 from RioBroker.
    • Note:
      • The 100 files should be either in a single command (100 files in one restore command) or multiple separate commands (one or more files per restore command).
      • If the restore is sent in separate commands, some level of concurrency must be demonstrated. Please describe how many jobs can be run in parallel and, if changeable, show where the concurrency setting is configured within your application.
  • Wait until the file transfers have completed before continuing.
  • Capture a screen image that shows your application indicating that the restore of the 100 files has been completed.  Paste the screenshot below
  • Save a copy of the RioBroker log file (rio-main.log), renamed as Restore100.log.
    Include this and all other log files with your test results.
    • Note: Rio logs are located on the RioBroker server at C:\ProgramData\SpectraLogic\SpectraRioBroker\logs\


The following test is required if your application supports archiving and restoring of files into multiple brokers/buckets via RioBroker

Test #5: Test support of multiple brokers/buckets.

Goal: To ensure that the application provides the user the ability to archive to multiple independent brokers/buckets. Note that each RioBroker broker has a default agent which represents a single BlackPearl bucket.

  • The application supports multiple brokers/buckets
    • Create two brokers/buckets (if the client supports broker/bucket creation)
      • Capture a screen image that shows how to create the additional buckets.  Paste the screen image into below:
    • Archive data to both buckets
      • Capture screen images that show the application completed with files in both buckets.  Paste the screen images below: OK to use Eon Browser and show the two buckets/files via direct BlackPearl connection.
    • GET data from both buckets
      • Capture screen images that show the application completed with files restored from both buckets.  Paste the screen images below:


The following test is required if your application supports time-based partial file recovery via RioBroker

Test #6: Test Partial File Recovery archive/index and restore/PFR.

Goal: To ensure that your application supports the RioBroker PFR system and provides reasonable and clearly understandable messaging to the end user in the case of error conditions.

  • If the application supports restore of partial files from BlackPearl/RioBroker
    • Archive file using RioBroker
      • Capture a screen image that shows in your application that the file archived to RioBroker and was indexed for PFR.  Paste the screen image into below:
      • Use an unsupported file (e.g. .txt) and alter the file extension to a format that the indexer will look at (.mxf ,.mov, etc.) and attempt to archive the file with PFR. Show error message below.
    • Retrieve partial file
      • Capture a screen image that shows successful retrieval of partial file that was successfully indexed.  Paste the screen image below:

      • Capture a screen image that shows end user messaging if a PFR restore cannot be performed as well as options provided to the end user (e.g., recover entire file):


The following test is required if your application supports importing foreign LTFS tapes via RioBroker and BlackPearl.

Test #7: Test support of importing external files from RioBroker into your application (such as LTFS Foreign Tape imported into BlackPearl).

Goal: To ensure that your application can allow import of new files via RioBroker from foreign sources such as LTFS tapes. RioBroker can index the files on these tapes, but your application must then add these files to its database (if media asset management or similar application). Since any foreign LTFS tapes will be imported as read only, the suggested process is to import them into a new bucket, add a read only agent pointing to that bucket and let RioBroker scan the tape. More can be added later but if the agent already exists, then RioBroker must be given a re-index command and your application must then scan for differences. Whatever the method the application supports, this process is intended to test that imports work, that your application issues the proper commands to add the agent or index the agent and that your database is then updated so the files can be used by the client.

  • Your application must support some form of foreign file import functionality
    • Import single tape
      • Import a single foreign tape containing files into a bucket using the BlackPearl web management interface (Status > Tape Management, then Action > Import all Foreign LTFS Tapes.
      • Verify the tape’s State changes from “Foreign” to “Managed” on BlackPearl web management interface
      • Verify that the application can be commanded to re-index the agent/bucket and that the number and size of recovered files/files matches expected contents of the tape. Capture screen images that show before and after status of files in application.  Paste the screen image into below:

This test is required if your application supports the displaying/listing of files that are in RioBroker

Test #8: Test application ability to list files in a bucket/agent and optionally perform search.

Goal: To ensure that the application can perform basic list operations with reasonable pagination and can perform directed and generic search across agents.

  • If application can list files in a bucket, show that it can handle (paginate) a large list
    • Archive 500 or more files to RioBroker (can use files from prior tests above)
    • Capture a screen image from the application showing user interface with files displayed on the first page.  Paste the screen image below:
  • Display the second page of files in the application.
    • Capture a screen image from the application showing user interface with files displayed on a second page.  Paste the screen image below:


  • If application supports file search:
    • Put an assortment of files in various buckets/agents
    • Verify that the application can direct search to a specific bucket/agent and paste the screen image below:
  • Verify that the application can search across buckets and display the results to the user allowing actions on the results and paste the screen image below:



Revision History

VersionDateAuthorChanges
0.11/22/19DFInitial format and content.
0.25/23/19BSUpdated test case 1 to show the correct procedure for changing BlackPearl credentials.
0.36/4/19BSUpdated test cases 3 – 6 to make transfer speeds recommended rather than required.
0.411/6/19  ELCombined test cases 1 – 7 into four simplified tests, focused on demonstrating error handling and job creation performance for both archive and restore operations. Optional tests are now numbered 5 – 8.
0.53/31/2020ELUpdated tests 3 and 4 (archive and restore of 100 files) to require some level of concurrency if files are in separate jobs.
0.67/15/2020ZGUpdated test 1 to require deleting a bucket on BlackPearl rather than changing S3 credentials.

BlackPearl 5.4.2 Released – Attack Hardened software feature and the next generation of BlackPearl Hardware

Spectra BlackPearl platform is flexible, scalable architecture that can manage disk, tape and cloud storage.

In the latest release of the BlackPearl’s software version 5.4.2, Spectra have release their Attack Hardened software feature. This coincides with the released of the next generation of the BlackPearl hardware platform.

Spectra’s attack hardened software feature adds a range of different software features that help mitigate the risk of data loss and accelerates ransomware response. The attack hardening features include immutable snapshots, the automatic triggering of snapshots, Multi-Factor Authentication (MFA), snapshot change percentage detection along with others to help protect against an attack.

The next generation of BlackPearl hardware is a complete technology refresh of the BlackPearl hardware. It builds on the success of the current hardware platform, but it now offers customers more density, flexibility and speed. In the new hardware customers can to install up to 10 NVMe’s and 60 HDDs (8TB, 16TB or 20TB options available) directly the head unit. Spectra have also chosen to use AMD’s Epic family of chips to power the new generation of hardware.

Contact your local Spectra sales representative to know more.


Getting Started with BlackPearl Partial File Restore Integration

In ​the Media & Entertainment world​, data files have reached very large sizes,​ particularly in cases of high resolution video ​that can exceed the one terabyte in size. In order to efficiently work with very large files, the media file processing is done in sections, with​ the end-user requesting content “snippets” based on timecodes. Object storage devices​​ that are used to store very large files are typically not aware of the timecode-to-byte relationship, and have no content awareness that’s necessary to extract and create partial media files.  In order to bridge the gap between time and bytes, BlackPearl has added a Partial File Restore (PFR) feature to enable the media processing application to efficiently retrieve a complete media file based on timecode offsets.

In​​ a typical Media Asset Management (MAM)/BlackPearl environment, the architecture would involve the following elements:

--        MAM – provides end user interface

--        BlackPearl MAM Plugin – handles all interactions between BlackPearl and MAM

--        BlackPearl – object storage

--        PFR Server – provides PFR processing services

--        NAS – network storage – permanent storage location for index files, temporary storage location for file processing

 

In the BlackPearl environment, there are two parts to the PFR processing of media files. The first part involves creating the media-aware index file for timecode/byte-offset information during file storage (writing) process. The second part of the process involves recalling a range of bytes that are based on a specified timecode, and creating complete, a self-contained media file that contains only the requested frames. In order to make this integration efficient, the PFR Server has a defined set of services that can be called by the media application using a REST interface (in this architecture – via the BlackPearl plugin).

The interface supports three basic request calls and two status calls to monitor the progress of the requested execution:

--        Request File Indexing
--        Request File Indexing Status
--        Request File Byte Offsets
--        Request Partial File Creation
--        Request Partial File Creation Status

For storing the file, the typical flow of execution would be:

  1. Copy media file to NAS storage
  2. Request creation of media index file
  3. Monitor status for completion
  4. Write file to BlackPearl Storage

For retrieving the partial file, the flow of execution would be:

  1. Request File Byte Offsets based on timecode
  2. Read specified byte range from BlackPearl to NAS
  3. Request partial file creation
  4. Monitor file creation status
  5. Supply partial file to Media Application

Spectra’s development team has created an C# and Java SDKs to support the rapid development and integration of the PFR with BlackPearl Storage into existing M&E environments. The SDKs provide “wrapper” calls for the REST API calls. The C# and Java client documentation and code samples can be found at:

https://github.com/SpectraLogic/tpfr_client

https://github.com/SpectraLogic/tpfr_java_client

PFR Users Guide provides the list of supported video file formats.

Quick Start Guide is a required reading to understand the services and locations that have to be setup in order to start PFR development.

PFR REST API definition is available for direct HTML development.

If you are considering creating a PFR integration with a BlackPearl environment, please contact the Spectra Logic Developer Program Team.


BlackPearl and Checksums

Spectra Logic’s highest priority is protecting our customers’ data. BlackPearl and the tape libraries that sit behind it have a number of features to ensure that your data stays protected. We start data integrity as soon as data is ingested by BlackPearl. Client applications sending data to BlackPearl can pass in a checksum to ensure that the data arrives safely. A checksum acts as a fingerprint for the file and can be used to make sure that the file received by BlackPearl is the same file that the client thought it sent. BlackPearl accepts MD-5, CRC-32, CRC-32C, SHA-256, or SHA-512 checksums. The client provides the checksum type and value in the header of the API PUT operation:

Content-MD5: 37r//gvw/aB3GmilbcUJpg==

A checksum can also be performed using our C, C#/.NET, and Java Software Development Kits.

BlackPearl uses the checksum provided for each file to ensure that the file it received is the same as the file the client sent. If the checksum does not match correctly with the file that was received, BlackPearl will return an error (400 – bad digest) to the client. If the client does not pass in a checksum with the file, BlackPearl will automatically create a checksum for the file. By default this checksum type will be MD-5, though the checksum type can be changed on the data policy settings on the bucket (a bucket is a top-level container for objects/files in BlackPearl). BlackPearl then stores the checksum, whether generated by the client or BlackPearl itself, both in its object database and with the file on tape.

Once stored by BlackPearl, the checksum can be used internally to make sure the file is still valid when it is recalled back from tape. BlackPearl will automatically do a checksum if the file is requested by a client (GET) and the file must come from tape. The checksum is done both as the file is coming from tape and after it has landed on the BlackPearl cache. BlackPearl will also provide the checksum value to the client so that the client can verify that it successfully received the file as well.

In some cases, when using the Bulk PUT operations, the client may be required to break the object into multiple “blobs” to upload it to BlackPearl. In this case, a checksum will be used for each blob uploaded to BlackPearl. The same is true when using Multi-Part Upload – each part of the file will have its own checksum. BlackPearl also supports Partial-File Restore, which is the ability to restore (GET) part of a file. With Partial-File Restore, a client can specify, for example, that it wants to retrieve the first 2GB of a 10GB file. In order to perform a checksum in this case, BlackPearl must first retrieve the entire file (or chunk) from tape. Once BlackPearl has completed the checksum on the file or chunk, it can send the partial file to the client.

Because BlackPearl may not always calculate the checksum for an entire file (because it may be broken up into multiple pieces), developers may want to have their clients calculate the entire file checksum itself. This value could then be stored in the file’s metadata when uploaded to BlackPearl. When the file is later retrieved, the client could calculate the checksum again and compare the values.


Inaugural BlackPearl Developer Summit

Tuesday, October 20, 2015 9:00 AM Mountain Time (15:00 UTC), WebEx
Join us for Spectra Logic’s inaugural BlackPearl Developer Summit, a virtual conference for current and potential Spectra Logic developers. You’ll get product updates from our CEO and BlackPearl product manager, and you will learn how these new features will help customers and developers. You will learn how to build a Spectra S3 client for BlackPearl, our private cloud gateway to our tape and disk storage systems. You will see how one of our partners developed a client and watch it in action. And you will get to ask questions to our BlackPearl Engineering team. Don’t miss it! Learn more and register at spectralogic.com/developerconference