# lvreduce

## NAME



           lvreduce — Reduce the size of a logical volume
    


## SYNOPSIS



           **lvreduce** _option_args position_args_
               [ _option_args_ ]
    


## DESCRIPTION



           lvreduce reduces the size of an LV. The freed logical extents are
           returned to the VG to be used by other LVs. A copy-on-write
           snapshot LV can also be reduced if less space is needed to hold
           COW blocks. Use lvconvert(8) to change the number of data images
           in a RAID or mirrored LV.
    
           Be careful when reducing an LV's size, because data in the reduced
           area is lost. Ensure that any file system on the LV is resized
           **before** running lvreduce so that the removed extents are not in use
           by the file system.
    
           Sizes will be rounded if necessary. For example, the LV size must
           be an exact number of extents, and the size of a striped segment
           must be a multiple of the number of stripes.
    
           In the usage section below, **--size** _Size_ can be replaced with
           **--extents** _Number_.  See both descriptions the options section.
    


## USAGE



           **lvreduce -L** |**--size**[**-**]_Size_[m|UNIT] _LV_
               [ **-l** |**--extents**[**-**]_Number_[PERCENT] ]
               [ **-A** |**--autobackup y** |**n**]
               [ **-f** |**--force**]
               [ **-n** |**--nofsck**]
               [ **-r** |**--resizefs**]
               [    **--noudevsync**]
               [    **--reportformat basic** |**json**]
               [ COMMON_OPTIONS ]
    
           Common options for lvm:
               [ **-d** |**--debug**]
               [ **-h** |**--help**]
               [ **-q** |**--quiet**]
               [ **-t** |**--test**]
               [ **-v** |**--verbose**]
               [ **-y** |**--yes**]
               [    **--commandprofile** _String_ ]
               [    **--config** _String_ ]
               [    **--devices** _PV_ ]
               [    **--devicesfile** _String_ ]
               [    **--driverloaded y** |**n**]
               [    **--journal** _String_ ]
               [    **--lockopt** _String_ ]
               [    **--longhelp**]
               [    **--nohints**]
               [    **--nolocking**]
               [    **--profile** _String_ ]
               [    **--version**]
    


## OPTIONS



    
           **-A** |**--autobackup y** |**n**
                  Specifies  if  metadata  should  be backed up automatically
                  after a change.  Enabling this  is  strongly  advised!  See
                  vgcfgbackup(8) for more information.
    
           **--commandprofile** _String_
                  The  command profile to use for command configuration.  See
                  lvm.conf(5) for more information about profiles.
    
           **--config** _String_
                  Config settings for the command. These override lvm.conf(5)
                  settings.   The  String  arg  uses  the  same   format   as
                  lvm.conf(5),   or   may   use  section/field  syntax.   See
                  lvm.conf(5) for more information about config.
    
           **-d** |**--debug**...
                  Set debug level. Repeat from 1 to 6 times to  increase  the
                  detail  of  messages sent to the log file and/or syslog (if
                  configured).
    
           **--devices** _PV_
                  Devices that the  command  can  use.  This  option  can  be
                  repeated or accepts a comma separated list of devices. This
                  overrides the devices file.
    
           **--devicesfile** _String_
                  A  file listing devices that LVM should use.  The file must
                  exist  in  _/etc/lvm/devices/_  and  is  managed   with   the
                  lvmdevices(8)  command.   This  overrides  the  lvm.conf(5)
                  **devices/devicesfile** and **devices/use_devicesfile** settings.
    
           **--driverloaded y** |**n**
                  If set to no, the command will not attempt to  use  device-
                  mapper.  For testing and debugging.
    
           **-l** |**--extents**[**-**]_Number_[PERCENT]
                  Specifies  the  new size of the LV in logical extents.  The
                  --size and  --extents  options  are  alternate  methods  of
                  specifying size.  The total number of physical extents used
                  will  be  greater  when  redundant  data is needed for RAID
                  levels.   An  alternate  syntax  allows  the  size  to   be
                  determined  indirectly  as  a  percentage  of the size of a
                  related VG, LV, or set of PVs. The suffix **%VG** denotes  the
                  total  size  of the VG, the suffix **%FREE** the remaining free
                  space in the VG, and the suffix **%PVS** the free space in  the
                  specified  PVs.   For a snapshot, the size can be expressed
                  as a percentage of the total size of the origin LV with the
                  suffix **%ORIGIN**(**100%ORIGIN** provides  space  for  the  whole
                  origin).   When expressed as a percentage, the size defines
                  an upper limit for the number of logical extents in the new
                  LV. The precise number of logical extents in the new LV  is
                  not  determined  until the command has completed.  When the
                  plus **+** or minus **-** prefix is  used,  the  value  is  not  an
                  absolute size, but is relative and added or subtracted from
                  the current size.
    
           **-f** |**--force**...
                  Override  various  checks,  confirmations  and protections.
                  Use with extreme caution.
    
           **-h** |**--help**
                  Display help text.
    
           **--journal** _String_
                  Record  information   in   the   systemd   journal.    This
                  information  is  in  addition to information enabled by the
                  lvm.conf log/journal setting.  command: record  information
                  about  the  command.   output:  record  the default command
                  output.  debug: record full command debugging.
    
           **--lockopt** _String_
                  Used to pass options for special cases  to  lvmlockd.   See
                  lvmlockd(8) for more information.
    
           **--longhelp**
                  Display long help text.
    
           **-n** |**--nofsck**
                  Do   not  perform  fsck  before  resizing  filesystem  when
                  filesystem requires it. You may  need  to  use  --force  to
                  proceed with this option.
    
           **--nohints**
                  Do  not  use  the  hints  file to locate devices for PVs. A
                  command may read more devices to find PVs  when  hints  are
                  not used. The command will still perform standard hint file
                  invalidation where appropriate.
    
           **--nolocking**
                  Disable locking.
    
           **--noudevsync**
                  Disables  udev  synchronisation.  The process will not wait
                  for notification from udev. It will  continue  irrespective
                  of any possible udev processing in the background. Only use
                  this  if  udev  is not running or has rules that ignore the
                  devices LVM creates.
    
           **--profile** _String_
                  An  alias  for   --commandprofile   or   --metadataprofile,
                  depending on the command.
    
           **-q** |**--quiet**...
                  Suppress  output  and  log  messages. Overrides --debug and
                  --verbose.  Repeat once to also suppress any  prompts  with
                  answer 'no'.
    
           **--reportformat basic** |**json**
                  Overrides  current  output  format  for  reports  which  is
                  defined globally by  the  report/output_format  setting  in
                  lvm.conf(5).  **basic** is the original format with columns and
                  rows.   If  there is more than one report per command, each
                  report is prefixed with the report name for identification.
                  **json** produces  report   output   in   JSON   format.   See
                  lvmreport(7) for more information.
    
           **-r** |**--resizefs**
                  Resize  underlying  filesystem  together  with the LV using
                  fsadm(8).
    
           **-L** |**--size**[**-**]_Size_[m|UNIT]
                  Specifies the new size of the LV.  The --size and --extents
                  options are alternate  methods  of  specifying  size.   The
                  total  number of physical extents used will be greater when
                  redundant data is needed for RAID levels.  When the plus  **+**
                  or  minus  **-** prefix  is used, the value is not an absolute
                  size, but is relative and  added  or  subtracted  from  the
                  current size.
    
           **-t** |**--test**
                  Run  in test mode. Commands will not update metadata.  This
                  is  implemented  by  disabling  all  metadata  writing  but
                  nevertheless  returning  success  to  the calling function.
                  This may lead to  unusual  error  messages  in  multi-stage
                  operations  if  a  tool  relies on reading back metadata it
                  believes has changed but hasn't.
    
           **-v** |**--verbose**...
                  Set verbose level. Repeat from 1 to 4 times to increase the
                  detail of messages sent to stdout and stderr.
    
           **--version**
                  Display version information.
    
           **-y** |**--yes**
                  Do not prompt for  confirmation  interactively  but  always
                  assume  the  answer  yes.  Use  with extreme caution.  (For
                  automatic no, see -qq.)
    


## VARIABLES



           _LV_     Logical Volume name.  See lvm(8) for valid names.  An LV
                  positional arg generally includes the VG name and LV name,
                  e.g. VG/LV.
    
           _String_ See the option description for information about the string
                  content.
    
           _Size_[UNIT]
                  Size is an input number that accepts an optional unit.
                  Input units are always treated as base two values,
                  regardless of capitalization, e.g. 'k' and 'K' both refer
                  to 1024.  The default input unit is specified by letter,
                  followed by |UNIT.  UNIT represents other possible input
                  units: **b** |**B** is bytes, **s** |**S** is sectors of 512 bytes, **k** |**K** is
                  KiB, **m** |**M** is MiB, **g** |**G** is GiB, **t** |**T** is TiB, **p** |**P** is PiB, **e** |**E** is
                  EiB.  (This should not be confused with the output control
                  --units, where capital letters mean multiple of 1000.)
    


## ENVIRONMENT VARIABLES



           See lvm(8) for information about environment variables used by
           lvm.  For example, LVM_VG_NAME can generally be substituted for a
           required VG parameter.
    


## EXAMPLES



           Reduce the size of an LV by 3 logical extents:
           **lvreduce -l -3 vg00/lvol1**
    


* * *