Slö 3xWDC Green 2TB diskar i Raid5
Tja!
Nu har jag krabbat med min array länge nog och börjar lessna på sk*ten. Jag får helt enkelt inte någon bra performance... Kanske kan någon här komma med lite värdefull input?
Server:
Ubuntu 10.10 32bit
P4 2.8 Ghz
1.5 gb ram
2x120 GB 7200 rpm IDE-diskar i Raid1
Diskarna som ska vara i arrayen är som sagt Western Digital Corporation, 2 TB Green. Använder mdadm, mjukvaruraid i linux.
Diskarna har 4k blocks och verkar vara rejält tjuriga på att detta efterföljs. Börjar man en partition på sektor 63 så går det betydligt segare än om man börjar "rätt", dvs på sektor 64.
Hastighetstest till hela disken:
root@gandalf2:~# dd if=/dev/zero of=/dev/sdb
384233+0 records in
384233+0 records out
196727296 bytes (197 MB) copied, 10.5523 s, 18.6 MB/s
Samma fenomen händer givetvis på alla diskar, men för att minska textmassan i inlägget så visar jag bara en av diskarna.
Börjar jag en partition på första sektorn så händer följande:
Device Boot Start End Blocks Id System
/dev/sdb1 1 243201 1953512001 83 Linux
root@gandalf2:~# dd if=/dev/zero of=/dev/sdb1
156005+0 records in
156005+0 records out
79874560 bytes (80 MB) copied, 10.4876 s, 7.6 MB/s
Imponerande va?
Gör jag istället "rätt" och börjar på sektor 64 och slutar på en sektor på jämnt nummer så händer det underverk. I detta test har jag även gjort en mindre partition i slutet av disken för att se hur hastighten är där. Vissa WDC Green verkar tappa rejält med kraft där nämligen, men i mitt fall är det samma resultat på alla diskar (vilket jag hoppas är bra..).
/dev/sdb1 64 240000 1927293952+ 83 Linux
/dev/sdb2 240020 243200 25551382+ 83 Linux
root@gandalf2:~# dd if=/dev/zero of=/dev/sdb1
1890655+0 records in
1890655+0 records out
968015360 bytes (968 MB) copied, 11.4574 s, 84.5 MB/s
root@gandalf2:~# dd if=/dev/zero of=/dev/sdb2
1520900+0 records in
1520900+0 records out
778700800 bytes (779 MB) copied, 15.2415 s, 51.1 MB/s
50-85 MB/s över hela disken anser jag vara helt ok. Börjar då bygga min array:
/dev/sdb1 64 243200 1952997952+ fd Linux raid autodetect
/dev/sdc1 64 243200 1952997952+ fd Linux raid autodetect
/dev/sdd1 64 243200 1952997952+ fd Linux raid autodetect
mdadm --create /dev/md1 --level=5 --raid-devices=3 --spare-devices=0 /dev/sdb1 /dev/sdc1 /dev/sdd1
~8 timmar senare är arrayen rebuildad och klar.
Skapar ext2 filsystem med 4k blocks på hela arrayen och testar hastigheten.
Skriva fil:
root@Gandalf:/mnt# dd if=/dev/zero of=/mnt/gandalf/testfile
^C1498880+0 records in
1498879+0 records out
767426048 bytes (767 MB) copied, 20.8955 s, 36.7 MB/s
Läsa fil:
root@Gandalf:/mnt# dd if=/mnt/gandalf/testfile of=/dev/null
1498879+0 records in
1498879+0 records out
767426048 bytes (767 MB) copied, 3.29322 s, 233 MB/s
233 MB/s läshastighet är ju helt klart acceptabelt i min mening. Men varför i jävla helvete får jag inte mer än ynka 35 MB/s när jag skriver till filsystemet?
Hjälp bitte