← RHCSA: RHEL 10 production administration
09 / 10 · 60 MIN

Storage: layers, capacity, and recovery

Interpret identity, extents, and sizes to plan growth and resume a partially completed operation.

Start with identity and the map

On a fictional reconciliation server, /srv/ledger should use XFS on a linear LV. Before changing capacity, map device, PV, VG, LV, filesystem, and mount point. The name /dev/sdb alone does not sufficiently identify the approved disk. Compare inventory, stable identity, sizes, types, and observed usage. Use lsblk with explicit columns and relate its output to lvs and findmnt. A similarly sized disk may belong to another service. This exercise starts with observation: metadata-creation commands must not be used to discover whether a device contains data. Record the expected mapping before selecting any mutation.

Calculate extents and reserve

In this teaching model, the VG has 3072 free extents, each measuring 4 MiB. That provides 12288 MiB, or 12 GiB. Growing a simple linear LV by 16 GiB requires 4096 extents: 1024 are missing. Free space inside another filesystem is not automatically available to the VG. Add the agreed operational reserve: with 24 GiB free and requests for 8 and 12 GiB, 4 GiB remains. If the minimum reserve is 6, the request physically fits but misses the local condition. These numbers assume linear allocation without RAID, thin provisioning, or additional rounding.

Read the requested size before execution

A 40 GiB LV must become 60 GiB. Argument -L +20G expresses the increase; -L 60G expresses final size. Exchanging these forms changes the request. Using +60G asks for another sixty, not sixty in total. The plan should record initial size, final size, and difference while confirming free extents. Argument +100%FREE consumes available reserve and does not express a fixed sixty-GiB target. If a step fails, measure again before repeating a relative increase. Copying the same command again can produce a second change that is valid but unwanted. Include the intended final state in review.

Validate volume and filesystem separately

The device can grow without the filesystem using the additional space. If lvs shows 60 GiB while mounted XFS is still about 40 GiB, first confirm that you are observing the correct source. XFS growth requires an active mount and sufficient device capacity. xfs_growfs uses the mount point; without -D it attempts to use maximum supported capacity. With -D, size is expressed in filesystem blocks. For bsize=4096, a teaching target of 60 GiB corresponds to 15728640 blocks, but this is not a promise about usable space, geometry, or metadata overhead.

Resume from partial state

--resizefs combines operations on different layers; an error is not proof of global rollback. Retain output, identify the failed step, and observe effective sizes. If the LV already grew, repeating +20G may consume more capacity without correcting the filesystem issue. Keep technical failure separate from batch effects: a database checkpoint may persist even when files are missing. Before processing resumes, reconcile results and use the supported application procedure. The storage team can restore capacity without having the authority or information to decide whether a transaction should be repeated. Record this handoff explicitly.

Define actual acceptance and reversibility

In the consulted RHEL 10 documentation, XFS does not support shrinking. Returning capacity cannot be solved with lvreduce based only on usage reported by df. Plan migration to another filesystem with consistency, metadata, capacity, and recovery verified. For growth, acceptance includes correct source, consistent sizes, access under the service identity, and a controlled functional result. Also record remaining reserve and the observation owner. The proposed lab should use a disposable VM with recovery available. The platform’s executable calculations check only the stated numbers; they do not replace a RHEL rehearsal with actual devices.

lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINTS
lvs -o lv_name,lv_size,vg_name,vg_free
findmnt -M /srv/ledger -o SOURCE,TARGET,FSTYPE,OPTIONS
df -hT /srv/ledger
IN PRACTICE

LV=40 GiB; VG free=24 GiB; target=60 GiB. A 20 GiB increase leaves 4 GiB of reserve. If the filesystem remains at 40 GiB, identify the missing step before repeating any increase.

Common pitfalls

Repeating a relative increase, confusing GiB with blocks, counting filesystem free space as VG extents, or assuming an error rolled back every step.

Related topics: Persistent mounts · Batch reconciliation

Take this idea with you

Select the right identity, calculate capacity and reserve, observe every layer, and resume from demonstrated state.

Create account

Reference: RHEL 10 logical volume management · EX200 based on Red Hat Enterprise Linux 10

Red Hat® and RHCSA are trademarks or registered trademarks of Red Hat, Inc. bigsavant.com is an independent preparation platform and is not affiliated with, associated with, sponsored, authorised or endorsed by Red Hat. Content and questions are original, are not official exam questions, and completing our tests does not award or guarantee any certification. Names are used only to identify the subject. All other trademarks belong to their respective owners.