Ich glaube, ich leide unter dem „Alles muss in Zweierpotenzen sein“-Syndrom. Wenn ich aufgefordert werde, in VmWare eine 30-GB-Festplatte für eine VM zu erstellen, möchte ich eine 32-GB-Festplatte erstellen. Wenn jemand mit LVM 256 GB Speicher benötigt, erstelle ich 1 256, 2 128 oder 4 64 GB …
Die Frage ist ganz einfach: Gibt es Leistungseinbußen oder Nachteile, wenn ich Festplatten mit „ungerade“ Größen erstelle, selbst wenn ich sie in eine Volume-Gruppe unter Linux einfüge? Wenn jemand 80 GB anfordert, ist es dann in Ordnung, eine 10er, eine 20er und eine 50er zu erstellen, um dies zu erreichen? Oder sollte ich versuchen, wenn möglich bei Zweierpotenzen zu bleiben?
Antwort1
Ich würde Ihnen eher empfehlen, darauf zu achten, ob eine Partition sog. I/O-ausgerichtet ist, da dies die I/O-Leistung erheblich beeinträchtigen kann. Heutzutage ist das kein so großes Problem mehr, da Installations- oder Konfigurationsassistenten Partitionen normalerweise automatisch an einer "power of 2"
Grenze ausrichten, aber wenn Sie es manuell erstellen, kann es trotzdem nützlich sein zu wissen, wie es funktioniert.
Ich werde versuchen, das Konzept anhand eines einfachen Beispiels aus virtuellen Umgebungen zu erklären. Der Einfachheit halber gehen wir von einer VMware vSphere-Infrastruktur und einem VMFS-Dateisystem aus. Insgesamt müssen wir drei Schichten berücksichtigen – ein Festplattenarray mit Blöcken einer bestimmten Größe zum Anfordern von Daten, ein VMFS-Dateisystem mit Blöcken einer bestimmten Größe und schließlich ein in Blöcken/Clustern organisiertes Dateisystem des Gastbetriebssystems.
Normalerweise müssen Sie keine Zeit damit verbringen, das VMFS-Dateisystem mit dem Festplattenarray auszurichten, da dies automatisch durchgeführt wird, wenn Sie mit vCenter einen neuen VMFS-Datenspeicher erstellen. Bei Gastbetriebssystemen ist die Situation schlimmer. Unten sehen Sie ein Bild nicht ausgerichteter Ebenen:
Wenn das Gastbetriebssystem einen einzelnen Block/Cluster liest/schreibt, muss der zugrunde liegende Hypervisor/das Disk-Array einen Block vom VMFS-Dateisystem und zwei Disk-Array-Chunks anfordern, da der Block mehrere Chunks umfasst. Dies kann bedeuten, von mehreren Festplattenspindeln zu lesen oder zu schreiben, da diese Chunks je nach RAID-Konfiguration über mehrere Festplatten verteilt sein können. Dies ist natürlich keine optimale Konfiguration. Besser ist die ausgerichtete:
Dann erzeugt eine Dateisystemblockanforderung eine Disk-Array-Chunk-Anforderung. Trotzdem denken die meisten modernen Betriebssysteme bei ihrer Installation automatisch daran, Partitionen per E/A auszurichten. Beispielsweise tun dies Windows Server 2008 oder RedHat Enterprise Linux 6, aber Windows Server 2003 oder ältere Distributionen nicht.
Es lohnt sich also, sich daran zu erinnern, da die automatische E/A-Ausrichtung normalerweise von den Funktionen der Speichergeräte abhängt, um ihre bevorzugte E/A-Ausrichtung und E/A-Blockgröße anzugeben. Die modernen Linux-E/A-Stacks (z. B. RHEL 6, parted, LVM, mkfs) können mit solchen Informationen arbeiten und sie daher automatisch ausführen. Wenn es jedoch nicht wie erwartet funktioniert, sollten Sie es manuell tun.