Notizen: Hyper-V mit Partitionen > 2TB ; Partition-Alignment

Wenn man Partitionen groesser als 2TB enlegen moechte, muss man GPT Label vergeben. Dazu hatte ich vor einiger Zeit schonmal was geschrieben. Kurzzusammenfassung:

parted /dev/DEVICE
mklabel gpt
quit

Wenn das Device an einer mit Hyper-V virtualisierten VM haengt und man ext4 als Dateisystem verwenden moechte darf dieses aber _nicht_ aus parted heraus erstellt werden, sondern man muss es mit der Option -E nodiscard erstellen (link):

mkfs.ext4 -E nodiscard /dev/DEVICE

Ausserdem gibt es beim Erzeugen von Partitionen mit parted manchmal die folgende Fehlermeldung:

Warning: The resulting partition is not properly aligned for best performance.

Abhilfe schafft wenn man sich da anschaut wo die Partition am besten beginnen soll, ich zitiere hier nun einfach dreist aus dem Blog „Rainbow Chard“ und dem Artikel „How to align partitions for best performance using parted„:

  • Get the alignment parameters for your array (remember to replace sdb with the name of your device as seen by the kernel).
    # cat /sys/block/sdb/queue/optimal_io_size
    1048576
    # cat /sys/block/sdb/queue/minimum_io_size
    262144
    # cat /sys/block/sdb/alignment_offset
    0
    # cat /sys/block/sdb/queue/physical_block_size
    512
  • Add optimal_io_size to alignment_offset and divide the result by physical_block_size. In my case this was (1048576 + 0) / 512 = 2048.
  • This number is the sector at which the partition should start. Your new parted command should look like
    mkpart primary 2048s 100%

    The trailing ‘s’ is important: it tells parted that you’re talking about sectors, not bytes or megabytes.

  • If all went well, the partition will have been created with no warnings. You can check the alignment thusly (replacing ’1′ with the partition number if necessary):
    (parted) align-check optimal 1 
    1 aligned