In this Issue:
- HDD, SSD, SSS Endurance/Stress Testing JEDEC Software Application
- DMM WRITE SAME – Technical Article
- Ask Dr. SCSI – Enclosure Information
- Newsletter Subscriber Thank you – $500 Discount Code (exp. 9/30)
- Reserve your live online meeting
SCSI Toolbox’s Endurance/Stress Testing Application
What is the SCSI Toolbox JEDEC Application?
SCSI Toolbox’s new JEDEC application implements the Endurance/Stress Testing of solid state drives as outlined in the JEDEC documents JES218A and JES219. These documents specify an extremely complex I/O generation pattern, consisting of various transfer sizes, each transfer size requiring a specific probability, and targeting particular sections of the drive with varying probabilities, and aligning transfers that are 4K or larger to be aligned on 4K-boundaries. In addition to these complex requirements, when testing more than 1 drive, each drive must have their targeted sections shifted by 5%. The details of all these requirements will be discussed in various sections below.
What does the SCSI Toolbox JEDEC Application do?
The SCSI Toolbox JEDEC Application issues 72 different types of I/Os!! Each type of I/O consists of following type of information:
- Write or Read
- Transfer Size (1 block all the way thru 128 blocks)
- Section of drive to target (first 5% of drive, next 15% of drive, final 80% of drive)
- Probability of the I/O, that is how often or frequent the I/O must be issued
Below are some examples of what each I/O “looks” like:
Example 1: Write, 1 Block, target first 5% of drive, probability = 1%
Example 2: Read, 4 Blocks, target section 5-to-20% of drive, probability = .15%
Example 3: Write, 8 Blocks, target final 80% of drive, probability = 6.7%
How are we getting these probabilities? In the JEDEC documents they specify that the first 5% of drive must be targeted 50% of the time, the next 15% of the drive must be targeted 30% of the time, and the final 80% of the drive must be targeted 20% of the time. In addition to these probabilities, the probabilities assigned to each transfer size is as follows:
Transfers of 1 Block must have 4% probability
Transfers of 2 Blocks must have 1% probability
Transfers of 3 Blocks must have 1% probability
Transfers of 4 Blocks must have 1% probability
Transfers of 5 Blocks must have 1% probability
Transfers of 6 Blocks must have 1% probability
Transfers of 7 Blocks must have 1% probability
Transfers of 8 Blocks must have 67% probability
Transfers of 16 Blocks must have 10% probability
Transfers of 32 Blocks must have 7% probability
Transfers of 64 Blocks must have 3% probability
Transfers of 128 Blocks must have 3% probability
And finally, Writes must have 50% probability while Reads must also have 50% probability.
Putting all of these together, let’s see how we got the probability in our three examples above.
Example 1: The Write must occur with 50% probability, 1 block transfers must occur with 4% probability, and the first 5% of the drive must occur with 50% probability. Multiplying these out we get
(0.5) * (0.04) * (0.5) = 0.01 (which is 1% probability)
Example 2: The Read must occur with 50% probability, 4 block transfers must occur with 1% probability, and the section of the drive from the 5% mark to the 20% mark of the drive must occur with 30% probability. Multiplying these out we get
(0.5) * (0.01) * (0.3) = 0.0015 (which is 0.15% probability)
Example 3: The Write must occur with 50% probability, 8 block transfers must occur with 67% probability, and the final 80% of the drive must occur with 20% probability. Multiplying these out we get
(0.5) * (0.67) * (0.2) = 0.067 (which is 6.7% probability)
How does the SCSI Toolbox JEDEC Application guarantee all the assigned probabilities?
The SCSI Toolbox JEDEC Application issues 72 different types of I/Os, which means the application must guarantee 72 probabilities, one for each I/O!! The engineers at SCSIToolbox have developed a function that uniquely maps random numbers to each of the 72 I/Os. It is beyond the scope of this document to describe how this function works, but it suffices to say that each of the 72 I/Os are chosen “randomly” with their assigned probabilities. One cannot guess what sequence of I/Os will be generated. As an example, after running the application for say 1,000,000,000 I/Os (1 billion I/Os), approximately 6.7% of these 1 billion I/Os (or 6,700,000 I/Os) will fit the profile described in Example 3.
This paper will describe two new write tests available in DMM – WriteSameSCSI and WriteSameSATA.
How to write an entire drive – the old way
For our example we will use a typical 1TB disk drive. Our 1TB drive is made up of 1,953,525,168 512-byte blocks or sectors. Let’s say that we want to write all blocks of this drive, at a typical 128 blocks-per-transfer (64KB per I/O). This is going to require 15,261,915 individual I/O’s, with each I/O transferring 128 blocks of data from the test computer to the disk under test. 15 Million I/O’s with each I/O transferring data to the drive.
What writing one single drive entails
Real-world numbers for a typical test system show that we can sustain a data rate of around 100 MB/second.
Going back to the disk size of 1,953,525,168 512-byte blocks, and factoring in a sustained transfer rate of 100MB/second we can see that it is going to take 2 hours and 38 minutes to write the entire drive. The DMM log file will confirm this number.
We know that the process of writing the entire drive using 128 block-per-I/O is going to need approximately 15,261,915 Write Commands or CDBs.
Issuing each one of these 15,261,915 CDBs takes certain amounts of time, consisting of:
- selecting the drive that the I/O is going to go to – 15,261,915 times
- sending the WRITE CDB –typically 12 bytes – from the computer to the drive – 15,261,915 times
- sending the 128 blocks of data from the computer to the drive – 15,261,915 times
- various overhead and handshaking messages which are part of the I/O protocol for each CDB – 15,261,915 times
What writing to multiple drives at once entails
We have all seen that no matter how powerful our test computers are, and no matter how fast our disk drives and host bus adapters are, a state of data-saturation will always happen as more drives are added into the test. Our example typical test system with one PCIe SAS host bus adapter can typically sustain an aggregate data rate of approximately 500 MB/second. This means that we can run up to 5 disk drives at full speed, but adding more than 5 drives to the test will cause all of the drives to slow down.
- One drive @ 100MB/s – available system I/O = 500MB/s
- Two drives @ 100MB/s = 200MB/s aggregate throughput out of available system I/O = 500MB/s
- Three drives @ 100MB/s = 300MB/s aggregate throughput out of available system I/O = 500MB/s
- Five drives @ 100MB/s = 500MB/s aggregate throughput out of available system I/O = 500MB/s
- ALERT – we are now out of test system I/O bandwidth!
- 10 drives @ 50MB/s = 500MB/s aggregate throughput out of available system I/O = 500MB/s
- each drive added will reduce the I/O rate of all drives under test
Once we exceed our systems total I/O bandwidth our test times will multiply and climb.
Two Solutions to the total system I/O bandwidth problem
- You can increase your systems total I/O bandwidth. By changing your test system hardware such as:
- Adding more host bus adapter to spread more drives over more PCIe bus slots
- changing to faster host bus adapters. Substitute 6G SATA and SAS host bus adapters to raise the highest system throughput versus 3G hardware.
- CAUTION be certain that you also upgrade all enclosures and cables to be compatible with the higher speeds.
- These things will raise the I/O threshold limit but the limit will still be there.
- You can increase your system maximum I/O throughput by DECREASING the amount of data you write. This is a clever option and deserves its own section “Maximize by Reducing”
Maximize by Reducing
“If you just write less data to your disk drive it will take less time to finish” “But” you say, “I need to write to the entire drive. I can’t write less than the entire drive!” And you are correct! The answer to this dilemma is to selectively reduce the data you’re writing. Here’s another clue – you need to selectively reduce what must be done to write all 1,953,525,168 blocks of your drive. Remember the list up above of four separate little things that needed to happen 15,261,915 times to write to all of the blocks on the drive? We still need to do each of those four things – but what if we only had to do them once?
The WRITE SAME Command
As the name of this command implies, this CDB is going to WRITE the SAME data to some range of blocks on a drive. Such a range as “the entire drive”. To write to every block on the drive we:
- selecting the target disk drive – once
- send one WRITE SAME command from the test system to the disk under test, and
- we copy one block (512 bytes) of data from the test computer to the disk under test
Once – versus 15,261,915 times. After the drive receives this one command and one block of data it will go on it’s way copying that block of data to each of its’ blocks. During the time that the drive is copying it does not take up any I/O bus bandwidth. Now, we all know that there’s no such thing as a free lunch, even with the WRITE SAME command. We only send our 512 bytes of data over the bus to the drive one time – but then the drive takes that 512 bytes and copies it 15,261,914 more times internally to each block. Since your disk drive still has physical constraints upon it you will still take about the same time as it would take if it was the only drive on your system runningat full disk speed. Here is a real-world example taken from a DMM log file Results:
Ask Dr. SCSI – Working with SES and Drive Enclosures
Q: “Dear Dr. SCSI – Can the STB Suite help me check if my drive enclosure is working properly?”
A: “Yes it can as long as your drive enclosure has a SCSI Enclosure Services (SES) processor. If it does you will see something like this listed in your device display:
The little “chip” icon represents that this device is a Processor device. Right-clicking on it will bring up the quick command list as shown above. And clicking on the SES Data choice will display all of the information that your enclosure has to offer.
This information is organized by Element Types – element type 0x01 is a drive slot, 0x02 is a power supply, 0x03 are cooling fans, etc. Most element types will have multiple entries or element numbers, depending on how many drives slots, power supplies, and fans your enclosure has.
Here is an example picture showing a Dell MD1000 which has two power supplies, four fans, four temperature sensors – all of which are reporting that their status is “OK”.
You will also see some general information about the enclosure such as the SES firmware version and serial number –
SES Device at HA 7 Target 263 LUN 0
Device supports 7 Pages = 00, 01, 02, 04, 05, 0A, 80,
Vendor = DELL
Product = MD1000
Revision = A.04
Vendor Specific = 15-Slot SAS Backplane 0JH544A00
Most enclosures will also give an error summary, displaying the count or number of various types of error conditions –
Overall Enclosure Status = 0x08
– INVOP = 0
– INFO = 1
– NON-CRITICAL = 0
– CRITICAL = 0
– UNRECOVERABLE = 0
And of course all of this enclosure information, both the interpreted info and the “raw” hex data can be saved to a text file.
All in all the STB Suite SES Data function is a quick way to check to insure that all is “OK” with your drive enclosure.
Newsletter Subscriber Thank you – $500 Discount Code
As a Thank You for being an active Newsletter subscriber we’d like to offer you this $500 Discount Code on your next online STB Suite purchase! When you purchase a new Complete STB Suite license online use the voucher/coupon code of “STBNewsletter” at checkout (no quotes). The discount will be applied on your purchase!
The code must be used by the end of September 2012 (9/30/2012) and can only be applied to New STB Suite licenses using the online order form here: http://www.stbsuite.com/buy/
Thank you for your business!
Do you have questions about how to best use the STB Suite for your HDD, SSD, or SSS testing? The STB Suite Team is happy to work with you in an interactive “live” environment to share with you about the STB Suite, testing procedures tailored to your needs, and much more. Use the online form here or contact Sales today to get started!