18-Jun-2004

DILX

DILX is a bit of software that runs on StorageWorks disk controllers that allows you to test disk performance and other things. We use it extensively to burn in disks when we first install them.

The program runs from a controller and allocates a disk to perform various read and write tests. The tests are user configurable, and this is described in the StorageWorks documentation.

It has been suggested that the exerciser be used to eliminate sensitive data after a disaster recovery test. But just how good an eraser is DILX?

Determined to find out, I dreamed up a test where I would fill the disk with a known pattern, run DILX for varying amounts of time, and then read the disk to see just how many blocks had been overwritten.

I wrote the code to do the reads and writes quickly enough. Then came the completely boring wait for the tests to run.

The test was done using a single 18 GB 10K drive presented by an HSG80 running ACS 8.7-3F. The disk was initialized on an OpenVMS system running 7.3 and the disk filled with a test file with the following commands:


$ init/sys/nohigh/noerase $1$dga2328: label
$ mount $1$dga2328: label
$ mcr sysgen create $1$dga2328:[000000]test.dat/size=35555730

Once the test file was created, a program was run to fill each block of the file with a known pattern. Then the disk was dismounted and DILX was run against it specifying the default responses to achieve 100% writes for the specificed length in minutes.

After DILX completed, the disk was then mounted (possibly non-filestructured if all the F11x home blocks had been overwritten), and the test file read to count how many blocks no longer contained the known pattern.

The results are as follows:

DurationOverwritten
1010.1%
2022.5%
3029.7%
4029.0%
5051.1%
6053.6%
12082.4%
24088.4%
480100.0%

It should be noted that there was some minimal host activity on this controller, which possibly explains the "glitch" in the data at the 40 minute mark.

After these tests, two 18 GB drives were tested in parallel (i.e., specifying both of the LUNs to DILX in the same run). This reduced the count of initialized blocks by approximately 10%

So, while DILX is a reasonable method of erasing data from disks, it apears to be highly dependent on the length of the run and the number of disks being written in parallel. It is also logical to conclude that the size of the LUN would play into the percent of blocks erased.

If you need a guarantee of erasure, use INIT/ERASE.

Posted at June 18, 2004 5:20 PM
Tag Set:

Comments are closed