Vinn prestanda genom att "aligna" dina diskar (del 2)
Detta är del 2 i min serie om disk alignment i virtuella miljöer. I den första delen förklarade jag lite om varför partitioner blir icke-alignade samt vad man kan vinna på att aligna dem. I denna del tänkte jag förklara hur man ser till att från och med nu alltid skapa alignade partitioner.
Att fixa alignment själv är ganska enkelt, men det är oftast lite småkrångligt att rätta till det i efterhand ifall man inte har gjort det rätt från början. Låt oss till att börja med kika på hur man ser till att skapa nya partitioner på ett "alignat" sätt. Jag repeterar bilden från förra inlägget:

Den första nivån vi ska fixa till är VMFS-partitionen ovanpå SAN-LUN:en (orange resp. blå i bilden). Här är det ganska enkelt att få sina nyskapade VMFS-partitioner alignade: Det är bara att se till att man använder VI-klienten för att skapa VMFS-partitionerna istället för att göra det med fdisk i något av textgränssnitten. VI-klienten kommer nämligen att automatiskt aligna partitionen på 128 kB. Ganska enkelt, va? Ifall man ändå vill skapa partitionerna m.h.a. fdisk kan man med en rad kommandon se till att de alignas, men det går vi inte in närmare på här.
Sen kommer vi till nästa nivå, som är NTFS-partitionen (ifall man nu kör Windows) som man skapar i VMDK-filen på VMFS-filsystemet (grön resp. orange i bilden). NTFS-partitioner alignar man genom att se till att _inte_ skapa dem med GUI:t, utan göra det med diskpart istället. Här är ett exempel på hur man skapar en ny partition i en Windows-maskin som har fått en ny, tom 512 GB partition installerad (min input i fet/kursiv, vissa kommandon är förkortade, vilket diskpart tillåter).
---
C:\>diskpart
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ---------- ------- ------- --- ---
Disk 0 Online 20 GB 8033 KB
Disk 1 Online 512 GB 512 GB
DISKPART> select disk 1
Disk 1 is now the selected disk.
DISKPART> list part
There are no partitions on this disk to show.
DISKPART> create part pri align=64
DiskPart succeeded in creating the specified partition.
DISKPART> list part
Partition ### Type Size Offset
------------- ---------------- ------- -------
* Partition 1 Primary 512 GB 64 KB
---
Observera den sista raden, där den nyskapade partitionen listas med ett "Offset" på 64 KB. Ifall man listar en icke-alignad partition kommer det istället att stå 32 KB.
Problemet med denna metod är att den tyvärr inte kan aligna systempartitionen, utan bara datapartitionerna. Detta är p.g.a. att Windows installationsprogram inte klarar av att skapa alignade partitioner under själva installationen. Detta löser man i virtuell miljö genom att helt enkelt skapa upp en lagom stor disk, koppla den som "extra disk" till en befintlig virtuell server, skapa en alignad partition på den enligt guiden ovan, stänga ner servern, och sedan "sno" denna virtuella disk till sin template-maskins första disk innan man startar Windows installationsprogram.
De goda nyheterna för NTFS-alignment är dessutom att ovanstående bara gäller Windows Server 2003. I Windows Server 2008 alignas alla partitioner automatiskt med ett offset på 1024 kB, så man behöver aldrig oroa sig.
[EDIT]: Jag hittade en länk till en KB-artikel från Microsoft som beskriver hur man gör detta, och dessutom går in lite mer i detalj hur man beräknar den optimala offset-värdet för olika blockstorlekar: http://support.microsoft.com/kb/929491
Så, nu hoppas jag att ni har lärt er tillräckligt för att kunna skapa alla era framtida VMFS- och NTFS-partitioner alignade. Ni som testar detta får jättegärna berätta hur det gick, och ifall ni upplever några prestandaförbättringar.
Men hur fixar man till sina befintliga partitioner som redan är skapade på "fel" sätt? Det ska jag skriva mer om i nästa inlägg, så se till att lägga till min RSS-feed i din favoritläsare (själv föredrar jag Google Reader p.g.a. enkelheten och portabiliteten).
[EDIT]: Jag har fått gehör för mina predikningar, och blivit intervjuad i Computer Sweden angående disk alignment (http://computersweden.idg.se/2.2683/1.227683/undvik-virtualiseringsmissen). Tyvärr har bloggen legat nere sedan i går (måste vara p.g.a. anstormningen av läsare hit). :)
Om du tycker att detta blogginlägg var bra kan du ge mig lite "beröm"
genom att skaffa ett Flattr-konto (http://flattr.com/) och klicka på knappen
nedan.
