[linux-lvm] PE alignment
Alexander 'Leo' Bergolth
leo at strike.wu.ac.at
Sun Nov 27 18:52:56 UTC 2016
Hi!
I noticed that a newly created PV on a 512k sector SATA disk uses a PE
alignment of 65535, which seems rather strange...
# pvs -o +pe_start --units s
PV VG Fmt Attr PSize PFree 1st PE
/dev/sda2 vg_sys lvm2 a-- 117211136S 45907968S 2048S
/dev/sdb1 lvm2 --- 3221225472S 3221225472S 65535S
/dev/sde1 vg_data lvm2 a-- 1953513472S 879771648S 2048S
Looking at the verbose output of pvcreate, this seems to be derived from
/sys/block/sdb/queue/optimal_io_size:
# grep . /sys/block/sdb/queue/*size
/sys/block/sdb/queue/hw_sector_size:512
/sys/block/sdb/queue/logical_block_size:512
/sys/block/sdb/queue/max_segment_size:4096
/sys/block/sdb/queue/minimum_io_size:4096
/sys/block/sdb/queue/optimal_io_size:33553920
/sys/block/sdb/queue/physical_block_size:512
I can manually set a correct value of dataalignment of course.
However, shouldn't lvm assure that PE alignment is set to a multiple of
the minimum_io_size?
Cheers,
--leo
I am using lvm2-2.02.130-5.el7_2.5.x86_64
This is the disk:
Disk /dev/sdb: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D28E3352-7CE6-4AAB-802A-59270088604E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2639307629 sectors (1.2 TiB)
Number Start (sector) End (sector) Size Code Name
1 2048 3221227519 1.5 TiB 8E00 Linux LVM
# sg_inq -p 0xb0 /dev/sdb
VPD INQUIRY: Block limits page (SBC)
Maximum compare and write length: 0 blocks
Optimal transfer length granularity: 8 blocks
Maximum transfer length: 65535 blocks
Optimal transfer length: 65535 blocks
Maximum prefetch, xdread, xdwrite transfer length: 65535 blocks
Maximum unmap LBA count: 0
Maximum unmap block descriptor count: 0
Optimal unmap granularity: 0
Unmap granularity alignment valid: 0
Unmap granularity alignment: 0
# pvcreate -vv /dev/sdb1
Setting activation/monitoring to 1
Setting global/locking_type to 1
Setting global/wait_for_locks to 1
File-based locking selected.
Setting global/prioritise_write_locks to 1
Setting global/locking_dir to /run/lock/lvm
Setting global/use_lvmlockd to 0
metadata/pvmetadataignore not found in config: defaulting to 0
metadata/pvmetadatasize not found in config: defaulting to 255
metadata/pvmetadatacopies not found in config: defaulting to 1
Locking /run/lock/lvm/P_orphans WB
Setting response to OK
Setting response to OK
Setting id to Atul0q-kVgc-yptP-NAbb-ulm9-zx8l-bu8cei
Setting vgid to xhIC4u-hJk7-hR0y-1nvw-wJal-wRbz-gYuICd
Setting vgname to vg_data
Setting format to lvm2
Setting device to 2113
Setting dev_size to 1000202771968
Setting label_sector to 1
Setting size to 1044480
Setting start to 4096
Setting ignore to 0
Setting id to 0d3kX3-SnUS-eKfx-M47m-rQFG-50DV-apC1d6
Setting vgid to uRefqt-U56B-c343-q7DS-DDtt-m3Wz-nVnihu
Setting vgname to vg_sys
Setting format to lvm2
Setting device to 2050
Setting dev_size to 60014075392
Setting label_sector to 1
Setting size to 1044480
Setting start to 4096
Setting ignore to 0
Setting response to OK
Setting response to OK
Setting name to vg_sys
Setting metadata/format to lvm2
Setting id to 0d3kX3-SnUS-eKfx-M47m-rQFG-50DV-apC1d6
Setting format to lvm2
Setting device to 2050
Setting dev_size to 117214991
Setting label_sector to 1
Found same device /dev/sda2 with same pvid
0d3kX3SnUSeKfxM47mrQFG50DVapC1d6
Setting size to 1044480
Setting start to 4096
Setting ignore to 0
Setting response to OK
Setting response to OK
Setting response to OK
Setting response to OK
Setting name to vg_data
Setting metadata/format to lvm2
Setting id to Atul0q-kVgc-yptP-NAbb-ulm9-zx8l-bu8cei
Setting format to lvm2
Setting device to 2113
Setting dev_size to 1953521039
Setting label_sector to 1
Found same device /dev/sde1 with same pvid
Atul0qkVgcyptPNAbbulm9zx8lbu8cei
Setting size to 1044480
Setting start to 4096
Setting ignore to 0
Setting response to OK
Setting response to OK
/dev/sdb1: size is 3221225472 sectors
/dev/sdb1: size is 3221225472 sectors
Setting allocation/use_blkid_wiping to 1
/dev/sdb1: size is 3221225472 sectors
/dev/sdb1: size is 3221225472 sectors
/dev/sdb1: size is 3221225472 sectors
Setting devices/data_alignment to 0
devices/default_data_alignment not found in config: defaulting to 1
Setting devices/md_chunk_alignment to 1
Setting devices/data_alignment_detection to 1
Device /dev/sdb1: queue/minimum_io_size is 4096 bytes.
Device /dev/sdb1: queue/optimal_io_size is 33553920 bytes.
/dev/sdb1: Setting PE alignment to 65535 sectors.
Setting devices/data_alignment_offset_detection to 1
Device /dev/sdb1: alignment_offset is 0 bytes.
/dev/sdb1: Setting PE alignment offset to 0 sectors.
Set up physical volume for "/dev/sdb1" with 3221225472 available sectors
Scanning for labels to wipe from /dev/sdb1
Zeroing start of device /dev/sdb1
Writing physical volume data to disk "/dev/sdb1"
/dev/sdb1: Writing label to sector 1 with stored offset 32.
Setting response to OK
Setting response to OK
Physical volume "/dev/sdb1" successfully created
Unlocking /run/lock/lvm/P_orphans
--
e-mail ::: Leo.Bergolth (at) wu.ac.at
fax ::: +43-1-31336-906050
location ::: IT-Services | Vienna University of Economics | Austria
More information about the linux-lvm
mailing list