NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Partition alignment for optimal disk I/O



Hello, all!

For a regular install of amd64 NetBSD 8, should the partitions be
4K-aligned for optimal disk I/O performance?

This came up when I read

  https://mail-index.netbsd.org/netbsd-users/2018/08/15/msg021269.html

in which Michael van Elst wrote:

  Can you verify partition alignment? Modern disks require an alignment
  of 4kbyte (8 sectors), otherwise all write operations are executed as
  slow read-modify-write cycles. The effect is also somewhat true for
  reading but usually hidden by the read cache.

Which partitions does this apply to: the MBR partitions (i.e.,
partitions that can be manipulated with fdisk(8)), the NetBSD disklabel
partitions (i.e., partitions that can be manipulated with disklabel(8)),
both, others?

I couldn't find this in the NetBSD guide nor the NetBSD tutorials; did I
miss it?

Does this apply for a VPS (e.g., Vltr's Cloud Compute (VC2))?

Does this apply for a VMware guest where the disk is a sparse virtual
disk file (.vmdk) or a sparse virtual disk file split into multiple
virtual disk files?  The disk is detected by NetBSD 8 as follows (from
dmesg):

===
wd0 at atabus0 drive 0
wd0: <VMware Virtual IDE Hard Drive>
wd0: drive supports 64-sector PIO transfers, LBA addressing
wd0: 20480 MB, 44384 cyl, 15 head, 63 sec, 512 bytes/sect x 41943040 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
wd0(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
===

However, Andy Ball's output looked like

===
Model: HGST HTS545025A7E380, Rev: GGEOAC90
Capacity 250 Gbytes, 488397168 sectors, 512 bytes/sector
Physical sector size: 4096 bytes
===

What program displays that kind of information?

Does the NetBSD installer take this into account when it creates the
default MBR partitions and BSD disklabel partitions, or do I need to
watch out and correct it?  For example, I ran

  fdisk

in an amd64 NetBSD 8 VM, and it displayed "bytes/sector: 512" and the
following partition table:

===
0: NetBSD (sysid 169)
    start 63, size 41942977 (20480 MB, Cyls 0-2610/212/34), Active
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>
===

And I ran

  disklabel wd0

and it displayed "bytes/sector: 512" and the following partition table:

===
16 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:  40893930        63     4.2BSD   2048 16384     0  # (Cyl.      0*-  43274*)
 b:   1049047  40893993       swap                     # (Cyl.  43274*-  44384*)
 c:  41942977        63     unused      0     0        # (Cyl.      0*-  44384*)
 d:  41943040         0     unused      0     0        # (Cyl.      0 -  44384*)
===

So, it looks like my root file system starts at sector 63, not 64, and
my swap partition starts at sector 40893993, not 40894000, so neither
are 4K-aligned?  I haven't determined that this VM disk is 4K-aligned,
and maybe the NetBSD installer is smart enough to know when it matters,
and perhaps it doesn't matter for this VM disk detected by NetBSD?

Thanks!

Lewis


Home | Main Index | Thread Index | Old Index