← Journal · Archiv

HOWTO: Partitionen >2TB unter Linux

September 04, 2007

Leider haben fdisk und cfdisk kläglich versagt die 7TB unseres RAID5 zu partitionieren. Wenn man versuchte eine Partition größer als 2 Terabyte anzulegen, wurde nur eine Partition mit 402 GB erstellt. Der Rest blieb unbenutzt. Wenn man andere Größen verwendet hat, wechselte das Ergebnis ähnlich einem Buffer-Overflow. Die Lösung habe ich von Adrian über die LUGS bekommen.

$ parted /dev/sda
(parted) mklabel gpt
(parted) mkpart primary ext3 0s -1s
Warning: You requested a partition from 0,00kB to 7000GB.
The closest location we can manage is 17,4kB to 7000GB.  Is this still acceptable to you?
Yes/No? yes
(parted) print

Disk /dev/sda: 7000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17,4kB  7000GB  7000GB  ext3         primary       

Danach kann man das Dateisystem auf die Partition ballern.

$ mkfs.ext3 /dev/sda1
$ mount /dev/sda1 /mnt

10 Kommentare

Stefan ·

Thanks for sharing

lemming ·

You’re welcome

kju ·

Wenn ich auch mal soviel Plattenplatz für HD-Porn brauche, ist mir der Eintrag sicher hilfreich!

Nico ·

Habt vielleicht noch einen Blick auf das Partition Alignment zur Array Stripe Size; wenn das nicht optimal liegt “verbrät” man sonst meist einiges an Performance des Controllers und der Platten.

Vielleicht handelt und “übersetzt” der 3Ware das aber auch schon intern; einen Blick wäre es wohl schon wert…

lemming ·

@kju. Wobei man die Gratis-Film-Schnipsel aus deinen Daily-Porn-Mailingslisten auch auf mehreren Partitionen unterkriegt. Btw. danke auch, dass ich jetzt wieder monatelang von irgendwelchen Googlern besucht werde, die nach H*D*-Pr0n suchen.

lemming ·

@Nico: AFAIR haben wir das auf 64 (K?) gestellt. Also mittelding zwischen Durchsatz und Zugriffszeit.

kju ·

Jehova, Jehova!

Ach ne, HD-Porn, HD-Porn!

Nico ·

Mit dem Alignment meinte ich etwas Anderes.

So wie das jetzt partitioniert ist beginnt die Partition 17,4kB vom Beginn des ersten Stripe auf dem Array.
Jetzt passiert vermutlich folgendes:

64K (65536) - 17,4K (17408) = 48128
48128 / 4096 (Blocksize Ext3) = 11,75

Das bedeutet, wenn des Betriebssystem den 12. Block auf dem Array lesen/schreiben will muss der Arraycontroller an Stelle des ersten Stripes auch den zweiten Stripe von/auf den Platten lesen/schreiben weil da das letzte Viertel des Blocks liegt.

Das ist für Controller und Platten doppelte Arbeit und passiert alle weiteren 16 Blöcke.

Je nach Zugriffsprofil kann dies durchaus einiges an Performance kosten.

Ich würde den ersten Stripe auf dem Array nicht benutzen, und die Partition bündig mit dem zweiten Stripe beginnen.

Schau Dir mal die Links an, die beschreiben das auch ganz gut:

http://blogs.vmware.com/vmtn/2006/12/keeping_up_with.html#comment-26423177
http://www.vmware.com/pdf/esx3_partition_align.pdf
http://www.msxfaq.net/tools/diskpar.htm

lemming ·

Hey, das hört sich interessant an. Danke für den Tipp!

Kommentar hinterlassen