RAID5 Performance Issues

I'm running out of disk space on my home media server and therefore decided to upgrade to a RAID5 configuration with 4x1.5TB drives. The drives are Seagate ST31500341AS and I'm housing them in an 8-bay ESATA case Rosewill RSV-S8 (SII-3132 chipset).

The problem is that I'm seeing low write speeds in Vista. It is software based RAID however CPU utilization is low so I believe there's room for improvement. I'll be tweaking the raid chunk size (stripe size) and NTFS allocation unit size this weekend to see where the sweet spot is for read/writes of large media files.

I just wrote the following powershell script to test the read and write speeds. All I need to do is change the file_name, test_folder and control_folder variables and I'm set.

#$erroractionpreference = "SilentlyContinue"
$file_name = "test.avi"
$test_folder = "L:\"
$control_folder = "K:\"
$num_attempts = 3
$total_write_time = 0
$total_read_time = 0

for($i = 0; $i -lt $num_attempts; $i++)
$source = "$control_folder$file_name"
$destination = "$test_folder"

$remove = "$destination$file_name"
remove-item $remove

$total_write_time += $(measure-command{xcopy.exe $source $destination /y}).totalmilliseconds
echo $("write test " + ($i+1).tostring() + " complete.")

for($i = 0; $i -lt $num_attempts; $i++)
$source = "$test_folder$file_name"
$destination = "$control_folder"

$remove = "$destination$file_name"
remove-item $remove

$total_read_time += $(measure-command{xcopy.exe $source $destination /y}).totalmilliseconds
echo $("read test " + ($i+1).tostring() + " complete.")

$average = $($total_write_time / $num_attempts / 1000)
echo "Average write time: $average seconds"

$average = $($total_read_time / $num_attempts / 1000)
echo "Average read time: $average seconds"

0 comments :: RAID5 Performance Issues