Video Screencast Help

RHEL vxdisk list <devname> output and partition alignment

Created: 30 Nov 2011 • Updated: 30 Nov 2011 | 3 comments

I've got two questions, which I'm hoping I can get some assistance with.

Environment: RHEL Linux 5.7 server with connectivity to an EMC VNX storage array.

1) I wanted to get clarification on my understand of a particular section (highlighted in bold) of the vxdisk list <devname> output:

Device:    emc_clariion0_10
devicetag: emc_clariion0_10
type:      auto
hostid:    xxxx
disk:      name=emc_clariion0_10 id=1317280593.32.xxxx
group:     name=xxxx id=1317280602.40.xxxx
info:      format=cdsdisk,privoffset=208,pubslice=3,privslice=3
flags:     online ready private autoconfig autoimport imported
pubpaths:  block=/dev/vx/dmp/emc_clariion0_10s3 char=/dev/vx/rdmp/emc_clariion0_10s3
guid:      -
udid:      DGC%5FRAID%2010%5FAPM00113001727%5F600601606AA02D00BEF97BDA03E8E011
site:      -
version:   4.1
iosize:    min=512 (bytes) max=1024 (blocks)
public:    slice=3 offset=65744 len=943652560 disk_offset=48
private:   slice=3 offset=208 len=65536 disk_offset=48

update:    time=1320430039 seqno=0.27
ssb:       actual_seqno=0.0
headers:   0 240
configs:   count=1 len=51360
logs:      count=1 len=4096
Defined regions:
 config   priv 000048-000239[000192]: copy=01 offset=000000 enabled
 config   priv 000256-051423[051168]: copy=01 offset=000192 enabled
 log      priv 051424-055519[004096]: copy=01 offset=000000 enabled
 lockrgn  priv 055520-055663[000144]: part=00 offset=000000
Multipathing information:
numpaths:   8
sdr             state=enabled   type=primary
sdv             state=enabled   type=secondary
sdb             state=enabled   type=primary
sdf             state=enabled   type=secondary
sdz             state=enabled   type=primary
sdad            state=enabled   type=secondary
sdj             state=enabled   type=primary
sdn             state=enabled   type=secondary

What do the disk_offset and offset values define in this output and what units are they in? My assumption is that the disk_offset is saying that data gets written starting at block 48 on the disk device. For the offset value, does that define the block # that the region begins at also, e.g. the private region begins at block 208? The only other possibility I can think of is that the offset values are defining how many blocks beyond the disk_offset each region begins at, e.g. the private region starts at 48+208 = block 256 and public starts at 65744 + 48 = block 65792. Unfortunately, it's not real obvious to me :(

2) If I wanted to perform partition alignment of the VXVM volumes, e.g. to align on the 1 MiB EMC-recommended boundary for a CLARiiON/VNX LUNs, would I just use the puboffset switch with the vxdisksetup command and specify the block count (2048)?



Comments 3 CommentsJump to latest comment

Gaurav Sangamnerkar's picture

Hi Jeff

From the above output, I would understand that "offset" actually defines the offset from where the region is starting. so public offset would say that public offset is starting from 65774 & spanning to length of 943652560 ... & for private ,offset is starting from 208 & spanning to a length of 65536.

If we see the man page for vxdisksetup:


-- Sets the offset on the disk where the public region starts. By default, this is past the end of the private region.

For the sliced format, 256 blocks of disk space (rounded up to the nearest cylinder boundary) are reserved at the beginning of the public region unless this is overridden by the value of puboffset. The reserved space allows for later conversion to the cdsdisk format.

For the simple format, 256 blocks of disk space are reserved at the end of the private region unless this is overridden by the value of puboffset. The reserved space allows for later conversion to the cdsdisk format.

For cdsdisk format disks, puboffset is silently rounded up to the nearest multiple of 8KB if it is not already a multiple of 8KB.

For disk_offset, I believe it is a sector value only.... chk this e.g

# prtvtoc -h /dev/rdsk/c3t5d23s2

*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount
      2      5    01          0  238091520 238091519
      3     15    01          0      3840       3839
      4     14    01       3840  238087680 238091519
# vxdisk list c1t5d23  | egrep "public:|private:"
public:    slice=4 offset=0 len=238087680 disk_offset=3840
private:   slice=3 offset=1 len=3839 disk_offset=0

After a successful initialization we have matching sizes:

Total available disk space using "vxdisk list " output  = 238087680(len) + 3840 (disk_offset)
                                                                           = 238091520 sectors
Total available disk space using "prtvtoc  -h " output  = 238091520 (Sector count)


PS: If you are happy with the answer provided, please mark the post as solution. You can do so by clicking link "Mark as Solution" below the answer provided.

TonyGriffiths's picture


Essentially these offsets are used by VxVM to identify/locate internal structures. The value is in sectors which depend on the platform (512bytes/solaris)

Am little conufused over the alignment, could you expand. Is the goal to have the public region starting on a some type of boundary ?



jkongswa's picture


Yes, what I would like to do is make sure that the public region where the user data will be written to is aligned with the stripe boundary that the backend storage array is using. In this case, since it's an EMC CLARiiON, I'd like to start it at the 64k boundary on the disk or some multiple of it.