Bug 1519330

Summary: VDO physical size does not reflect actual physical size usable by user
Product: Red Hat Enterprise Linux 7 Reporter: Jakub Krysl <jkrysl>
Component: vdoAssignee: corwin <corwin>
Status: CLOSED ERRATA QA Contact: Jakub Krysl <jkrysl>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: awalsh, corwin, fcami, jkrysl, limershe, sweettea
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 6.1.0.98 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 15:48:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1517911    

Description Jakub Krysl 2017-11-30 15:37:04 UTC
Description of problem:
When VDO is created, some space given to it is taken by index and the rest is divided between slabs and the remaining space is left unused and unusable. Here is an example when creating VDO on 6G device:

# vdo create --name vdo --device 6G_device
Because default VDO slab size is 2G and default index size is around 2.5G, the actual usable space for user data is only single slab of 2G (6 - 2.5 = 3.5; 3.5 % 2 = 1)
# vdo status | grep 'Physical size'
    Physical size: 6G
# vdo status | grep 'Logical size'
    Logical size: 6G
# lsblk
NAME                    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
--snip--
sdc                       8:32   0  5.5T  0 disk
└─vg-lv                 253:2    0    6G  0 lvm
  └─vdo                 253:3    0    6G  0 dm
Creating a filesystem and mounting it to check 'df':
# df -h
Filesystem                           Size  Used Avail Use% Mounted on
--snip--
/dev/mapper/vdo                       6G   33M   14G   1% /root/vdo

Every obvious value at this point reports the VDO size to be 6G, but the actual size is only 2G:
# vdo status | grep 'slab count'
        slab count: 1
# vdo status | grep 'Slab size'
    Slab size: 2G

Version-Release number of selected component (if applicable):
vdo-6.1.0.55-9

How reproducible:
100%

Steps to Reproduce:
1. vdo create --name vdo --device device
2. # vdo status | grep 'Physical size'
should equal
# vdo status | grep 'slab count'
        slab count: 1
times
# vdo status | grep 'Slab size'
    Slab size: 2G


Actual results:
6G vs 2G

Expected results:
2G vs 2G

Additional info:

Comment 2 Sweet Tea Dorminy 2017-11-30 18:50:35 UTC
How about the statistic 'data blocks free'? It's very close to 'amount of unique data you can write to VDO'. (Using never-before-used logical addresses can move some blocks from 'data blocks free' to 'overhead blocks', but it is otherwise accurate.)

Comment 4 Jakub Krysl 2017-12-21 11:24:43 UTC
This has been fixed by reducing the default VDO logical size to "useable" physical size. Setting this toverified and creating RFE to better document "Physical Size: X" field in vdo status.

Comment 7 errata-xmlrpc 2018-04-10 15:48:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2018:0871