Storage Verification Framework
Product validation is a critical component of the development process. A robust product validation platform ensures functional integrity of the product and helps uncover bugs before the product is released. With its ability to generate high performance traffic, its extensive error injection capabilities and its ability to check data integrity; OakGate's Storage Verification Framework (SVF) provides a powerful platform for product validation.
Traffic Generation Create complex, comprehensive traffic with ease
OakGate products incorporate the industry’s most comprehensive traffic generation capabilities. OakGate’s SVF Controller software allows the user to generate high performance, complex traffic and exercise maximum control of workloads.
Basic TrafficEasily control many different aspects of basic traffic
Several knobs are available to the user to set parameters such as fixed and random IO sizes, a variety of data patterns, a broad range of q-depths, pre-defined error policies and IO performance thresholds. These parameters can be set on a per LUN basis.
Multiple ThreadsCreate and intermix multiple workload threads
Each individual thread of traffic has its own set of parameters (IO Size, R/W ratio, etc.) that control its behavior. The user can create several threads and intermix them by choosing the percentage of each in the overall traffic flow.
IO CappingThrottle IO traffic to a specified level
To better simulate real-life scenarios, it is often desirable to cap the number of IOs per second to a fixed limit. In doing so, it is possible to pinpoint exactly how a device will behave under a given level of stress.
Trace ReplayPlay back a previously captured analyzer trace
Load a Finisar analyer trace and recreate an exact traffic scenario over and over again. This eliminates the burden of having to hand-reproduce failures. When replaying a failure scenario, it is possible to add time delays to each IO in order to see if timing is a critical factor.
IO Status PoliciesDecide exactly what consitutes a fatal error
The OakGate SVF Controller gives the user complete control to specify which IO statuses should be considered fatal errors, and which should not.
Error Injection Ensure correct functionality under stress
A key aspect of product validation is to ensure that the product can perform under intense stress. OakGate’s SVF Controller software features extensive error generation capabilities. Using the Extra Traffic configuration panel, the user can configure and send a variety of non-Read/Write commands. The SVF software automatically inserts random errors into the stream and checks for the correct response from the target device. Once again, these parameters can be set on a per LUN basis.
IO Traffic and Error InjectionCombine traffic types for a fully customized workload
Mix and match any combination of normal IO traffic and extra traffic, all while injecting errors. And, it's as easy to configure as moving the traffic sliders to the desired levels. In addition, each of these main traffic types can be configured further, providing full flexibility to the user for achieving the exact combination of detailed traffic that is needed.
Extra TrafficInject custom commands into the traffic flow
By using Extra Traffic the user can insert custom commands into the overall traffic mix. There are numerous pre-built commands that can be mixed in to the traffic, and additional custom commands can be hand crafted by the user as needed. This is an excellent way to create explicit error injection scenarios, or to simply inject unique traffic conditions.
Low Level ErrorsInject randomized error conditions into the traffic flow
Inject a wide variety of low level errors including underflow and overflow conditions, aborts, dropped frames, link downs, resets, and more. Certain errors can be injected as a percentage of traffic, and others at randomized time intervals as specified by the user.
The user can check "Validate Data Integrity" box to turn on Data Validation. When activated, this feature can be used under the following three scenarios:
- During all Read/Write operations, data is continually validated to ensure that each IO is correct. Data in each LBA of an IO is checked to verify that it is correctly read and that it is the correct version of the data, and not old data due to a missed write.
- During power fail operations, as soon as power is restored and the target is ready to accept IO, the last acknowledged Write IOs prior to the power loss are immediately read and validated. The user can specify the number of writes that need to be validated.
During power fail operations, for all Write IO's that were in the target's queue but were not completed and acknowledged, the system will read these and determine the level of Atomicity that has persisted over the power loss event.
- Confirms that all of the LBA's written are consistent (either completely new or old data)
- Reads the full IO and determines if the IO was either written Atomically or partially.