| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use dm-writecache to attach a cache volume (CV) to an LV.
The LV type becomes "writecache" (--type writecache can
be optionally specified when attaching.)
lvconvert --cachevol-attach CV LV
lvconvert --cachevol-detach CV LV
The cachevol (CV) is a special LV that was created on
cache devices, e.g.
lvcreate --cachevol -L <size> -n <name> VG
Cache devices are special PVs that are added to the
VG to use for cachevols, e.g.
vgextend --cachedev VG PV
Example:
Add persistent memory to a VG as a cache device:
vgextend --cachedev vg /dev/pmem0
Create a cache volume from pmem0:
lvcreate --cachevol -L1G -n cvol0 vg
Create a second cache volume from pmem0:
lvcreate --cachevol -L1G -n cvol1 vg
Attach the cache volumes to LVs:
lvconvert --cachevol-attach cvol0 vg/lv0
lvconvert --cachevol-attach cvol1 vg/lv1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A cache volume (CV) is a special LV that can be
attached to a standard LV to do caching.
A cache volume is allocated from cache devices (CDs)
which are special PVs in the VG that are used for
caching.
To create a cache volume, add the --cachevol option
to the lvcreate command. lvcreate will allocate
extents for the CV from cache devs that have been
added to the VG.
lvcreate --cachevol -n <name> -L <size> VG [CD...]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A cache device is a special PV that is added to a VG
to be used for caching, and not for allocating standard LVs.
A cache device (CD) is used to create a cache volume.
A cache volume (CV) is a special LV that can be attached
to a standard LV to do caching.
Terminology:
PV used for caching = cache device = cachedev = CD
LV used for caching = cache volume = cachevol = CV
PV metadata for a cachedev includes the CACHEDEV flag.
LV metadata for a cachevol includes the CACHEVOL flag.
A cachedev is added to a VG with:
vgextend --cachedev VG PV
The --cachedev option tells lvm that the PV should
be added to the VG as a cache device, not a standard PV.
(cache volumes are added by the following commit)
|
|
|
|
|
| |
Test for MD RAID kernel bug in read_balance() preventing
reads of failed sectors to get rescheduled to another leg.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Conversions of LVs under snapshot to thinpool or cachepool
correctly fail but leave them inactive and provide cryptic
error messages like 'Internal error: #LVs (10) != #visible
LVs (2) + #snapshots (1) + #internal LVs (5) in VG VG'.
Reject and provide better error message.
Resolves: rhbz1514146
|
|
|
|
| |
in messages and man page.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 'lvconvert LV' command def has caused multiple problems
for command matching because it matches the required options
of any lvconvert command. Any lvconvert with incorrect options
ends up matching 'lvconvert LV', which then produces an error
about incorrect options being used for 'lvconvert LV'. This
prevents suggestions from nearest-command partial command matches.
Add a special case for 'lvconvert LV' so that it won't be used
as a partial match for a command that has options specified.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Native disk scanning is now both reduced and
async/parallel, which makes it comparable in
performance (and often faster) when compared
to lvm using lvmetad.
Autoactivation now uses local temp files to record
online PVs, and no longer requires lvmetad.
There should be no apparent command-level change
in behavior.
|
| |
|
|
|
|
|
|
| |
Adjust a few lvmetad pvscan/autoactivation tests to be
used without lvmetad, and add a test to cover some cases
that have not been tested before.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When lvmetad is not used, use temporary files to record
which PVs have appeared. Use these temp files to determine
when a VG is complete, to trigger autoactivation.
This change allows us to remove lvmetad while keeping the
same autoactivation behavior that lvmetad provides.
The temp files are created in /run/lvm/pvs_online/ and are
named for the PVID of the PV. The files contain the
major:minor of the device the PV was read from.
e.g. if VG foo has dev1 and dev2, then:
. pvscan --cache -aay dev1
reads vg metadata from dev1
creates /run/lvm/pvs_online/<pvid-of-dev1>
checks if all vg->pvs are online: no
. pvscan --cache -aay dev2
reads vg metadata from dev2
creates /run/lvm/pvs_online/<pvid-of-dev2>
checks if all vg->pvs are online: yes
autoactivates vg
A 'pvscan --cache dev' (without -aay) still records that
dev is online.
A 'pvscan --cache --major X --minor Y' after a device is
gone will remove the temp file for it.
A 'pvscan --cache [-aay]' (no devs) resets the state of
temp files by removing them all, then scanning all devs
and creating temp files for PVs that are found.
If no online files exist, the first pvscan --cache scans
all devs and creates temp files for any PVs found.
The scope of the temp files is only pvscan, and they are only
used for pvscan-based autoactivation. No other commands are
concerned with or aware of these temp files. When lvm creates
or removes PVs, no attempt is made to update the temp files.
|
|
|
|
| |
Basic functionality of lvcreate, lvchange.
|
| |
|
|
|
|
|
|
|
| |
Support vgchange usage with VDO segtype.
Also changing extent size need small update for vdo virtual extent.
TODO: API needs enhancements so it's not about adding ifs() everywhere.
|
|
|
|
|
|
|
|
| |
Support:
lvconvert --type vdo-pool vg/lv
lvconvert --vdopool vg/lv --virtualsize 10G
|
|
|
|
|
|
|
| |
Add basic support for changing compression and deduplication state
of a VDO pool volume.
Allowing to access it also via top-level VDO volume.
|
|
|
|
|
| |
Supports basic: 'lvcreate --vdo -LXXXG -VYYYG vg/vdoname -n lvname'
Allows to create basic VDO pool volume and virtual VDO volume.
|
|
|
|
|
|
|
| |
Unsupported ATM.
Wait till VDO kernel target starts to use updated resize sequence,
LOAD, SUSPEND, RESUME.
|
|
|
|
|
| |
Introduce new options usable with commands supporting VDO:
--compression, --deduplication, --vdo, --vdopool
|
|
|
|
| |
Add: LV_vdo, LV_vdopool, LV_vdopooldata
|
|
|
|
| |
Display percentage of used virtual size of vdo-pool volume.
|
|
|
|
|
|
|
| |
Print some basic info about vdo segment.
'lvdisplay -m' ATM shows the most.
lvs shows usage percentage.
|
| |
|
| |
|
|
|
|
| |
Check if settings for vdo segment are correct.
|
| |
|
|
|
|
| |
Translate VDO enums to printable strings.
|
|
|
|
| |
Allow component activation of VDO data LV.
|
|
|
|
|
|
|
|
| |
When user create vdo-pool - use different automatic name.
So unlike with traditional LVs using lvol0, lvol1
use vpool0, vpool1...
TODO: apply similar for thin-pool & cache-pool...
|
|
|
|
| |
Core functionality introducing lvm VDO support.
|
|
|
|
|
|
| |
Profile shows all VDO configurables.
Usable with: lvcreate --metadataprofile vdo-small ...
|
| |
|
|
|
|
|
| |
Configurable for vdo segment with their default values.
Also specify their ranges with minimal and maximal values.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Checks whether VDO support is enabled.
Detects presence of 'vdoformat' tool which is required for to format VDO pool.
ATM build of VDO is NOT automatically enabled (None is default).
To enable build of LVM with VDO support use:
configure --with-vdo=internal
TODO: Maybe future version may switch to link some small VDO library for formating
(would require linking and package dependency).
|
|
|
|
|
|
|
| |
To support autoloading of VDO dm target driver loading of 'kvdo'
kernel module is needed - ATM it's not using 'dm-vdo' name.
So to support this strange name - add temporarily solution to
autoload kvdo kernel module in this case.
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce VDO plugin for monitoring VDO devices.
This plugin can be used also by other users, as plugin checks
for UUID prefix 'LVM-' and run lvm actions only on those
devices.
Non LVM- device are only monitored and log warnings
when usage threshold reaches 80%.
|
|
|
|
| |
status.c will get linked with VDO support.
|
|
|
|
| |
Update prefix and reindent.
|
|
|
|
| |
Keep using DM_/dm_ prefixes for device_mapper code.
|
|
|
|
|
|
|
|
|
| |
Update makefile to link with more libs since now whole liblvm-internal.a
is linked-in and this library has futher dependencies.
Avoid including deps for run-unit-test.
Drop linking separate status.c as it's already linked via internal libs.
|
|
|
|
|
| |
Recent updates relay on zerod status structure memory (device ptr is
NULL) and also dm_strncpy need to count with '\0'.
|