1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-23 02:05:07 +03:00

17962 Commits

Author SHA1 Message Date
David Teigland
bf0b396208 devices file: fail if --devicesfile filename doesn't exist
A typo of the filename after --devicesfile should result in a
command error rather than the command falling back to using no
devices file at all.  Exception is vgcreate|pvcreate which
create a new devices file if the file name doesn't exist.
2022-06-09 14:33:30 -05:00
David Teigland
eda98e4b94 devices file: move clean up after command is run
devices_file_exit wasn't being called between lvm_shell
commands, so the file lock wouldn't be released.
2022-06-09 14:33:30 -05:00
Peter Rajnoha
45a2ccfa3b toollib: fix segfault when handling selection with historical LVs
When processing historical LVs inside process_each_lv_in_vg for
selection, we need to use dummy "_historical_lv" for select_match_lv.

This is because a historical LV is not an actual LV, but only a tiny
representation with subset of original properties that we recorded
(name, uuid...).

To use the same processing functions we use for full-fledged non-historical
LVs, we need to use the prefilled "_historical_lv" structure which has all
the other missing properties hard-coded.
2022-06-09 14:33:30 -05:00
Zdenek Kabelac
9c6954bc61 vdo: support --vdosettings
Allow to use --vdosettings with lvcreate,lvconvert,lvchange.
Support settings currenly only configurable via lvm.conf.
With lvchange we require inactivate LV for changes to be applied.

Settings block_map_era_length has supported alias block_map_period.
2022-06-09 14:33:29 -05:00
David Teigland
e027f4da9b improve description of devices option 2022-06-09 14:33:29 -05:00
David Teigland
5d40b91bd4 filter-mpath: use multipath blacklist
Explicit wwid's from these sections control whether the
same wwid in /etc/multipath/wwids is recognized as a
multipath component.  Other non-wwid keywords are not
used, and may require disabling the use of the multipath
wwids file in lvm.conf.
2022-06-09 14:33:29 -05:00
David Teigland
d964328355 devices file: remove extraneous unlock in vgchange -u
vgchange -u exit path was unlocking the devices file in cases
when it wasn't needed, which produced an warning.
2022-06-09 14:33:29 -05:00
David Teigland
6de2a6a378 lvmlockd: return error from vgcreate init_vg_sanlock
in vgcreate for shared sanlock vg, if sanlock_write_resource
returns an unexpected error, then make init_vg_sanlock fail
which will cause the vgcreate to fail.
2022-06-09 14:33:29 -05:00
David Teigland
4aa92f3e18 vgimportdevices: fix incorrect deviceidtype usage
When a VG has PVs with different device id types,
it would try to use the idtype of the previous PV
in the loop.  This would produce an unncessary warning,
or could lead to using the devname idtype when a better
idtype is available.
2022-06-09 14:33:29 -05:00
David Teigland
090dc0c320 change messages about filtered devices
Change messages that refer to devices being "excluded by filters"
to say just "excluded".  This will avoid mistaking the word
"filters" with the lvm.conf filter setting.
2022-06-09 14:33:29 -05:00
David Teigland
10a598075a writecache: check memory usage
warn if writecache neds > 50% of system memory, and
confirm if writecache needs > 90% of system memory.
2022-06-09 14:33:28 -05:00
David Teigland
932b9720bb devices: use dev-cache aliases handling from label scan functions
The label scan functions where doing some device alias validation
which is now better handled by the dev-cache layer, so just use
that.
2022-06-09 14:33:28 -05:00
David Teigland
591b5f006f devices: fix dev_name assumptions
dev_name(dev) returns "[unknown]" if there are no names
on dev->aliases.  It's meant mainly for log messages.

Many places assume a valid path name is returned, and
use it directly.  A caller that wants to use the path
from dev_name() must first check if the dev has any
paths with dm_list_empty(&dev->aliases).
2022-06-09 14:33:28 -05:00
David Teigland
7dc7ab8e99 devices: initial use of existing option
Use dev_cache_get_existing() in a few common, high level
locations where it's obvious that only existing dev-cache
entries are wanted.  This can be expanded and used in more
locations (or dev_cache_get can stop creating new entries.)
2022-06-09 14:33:28 -05:00
David Teigland
8ba6259b24 devices: drop incorrect paths from aliases list
along with some basic checks for cases when a device
has no aliases.

lvm itself creates many situations where a struct device
has no valid paths, when it activates and opens an LV,
does something with it, e.g. zeroing, and then closes
and deactivates it.  (dev-cache is intended for PVs, and
the use of LVs should be moved out of dev-cache in a
future patch.)
2022-06-09 14:33:28 -05:00
David Teigland
8552290efa devices: simplify dev_cache_get_by_devt
remove unused args, and no callers need or want a
repeated dev_cache_scan if there is no dev from the
lookup.
2022-06-09 14:33:23 -05:00
David Teigland
c047ff61f6 writecache: display block size from lvs
lvs was missing the ability to display writecache block size.
now possible with lvs -o writecache_block_size
2022-06-09 11:33:14 -05:00
David Teigland
cdefd8635d man lvmcache: mention writecache memory usage 2022-06-09 11:32:52 -05:00
David Teigland
08a5619a1d devices file: do not clear PVID of unread devices
In a certain disconnected state, a block device is present on
the system, can be opened, reports a valid size, reports the
correct device id (wwid), and matches a devices file entry.
But, reading the device can still fail.  In this case,
device_ids_validate() was misinterpreting the read error as
the device having no data/label on it (and no PVID).
The validate function would then clear the PVID from the
devices file entry for the device, thinking that it was
fixing the devices file (making it consistent with the on disk
state.)  Fix this by not attempting to check and correct a
devices file entry that cannot be read.  Also make this case
explicit in the hints validation code (which was doing the
right thing but indirectly.)
2022-06-09 11:32:40 -05:00
David Teigland
df2b1555af lvmdevices: make deldev work for missing device 2022-06-09 11:30:07 -05:00
David Teigland
4e72068216 lvmdevices: fix checks when adding entries
Removes some incorrect and unnecessary checks for other entries
when adding a new devices.  The removed checks and corrections were
mostly redundant with what is already done by device id matching.
Other checking is reworked so the warnings are a bit different.
2022-06-09 11:29:57 -05:00
David Teigland
7b79acc616 devices: exclude md components when duplicate pvs are seen
Improve handling of md components that get through the
filter, like the previous improvement for multipath.
If md components get through the filter and trigger
duplicate PV code, then eliminate any devs entirely
that are not an md device.
2022-05-25 12:07:52 -05:00
David Teigland
5403a6f059 devices: exclude multipath components based on matching wwid
If multipath component devices get through the filter and
cause lvm to see duplicate PVs, then check the wwid of the
devs and drop the component devices as if they had been
filtered.  If a dm mpath device was found among the duplicates
then use that as the PV, otherwise do not use any of the
components as the PV.

"duplicate PVs" associated with multipath configs will no
longer stop commands from working.
2022-05-25 12:07:35 -05:00
David Teigland
9375aebad1 Revert "pvcreate: overwrite partition header with -f"
This reverts commit a5c37afdca97d6565ea02bc4bc7d52f360823cd3.

This commit did not properly recognize GPT cases.
wip-2.03.14-1
2022-01-18 12:16:52 -06:00
David Teigland
bb477d63e3 lvmdevices check: error exit if update is needed
. error exit means that lvmdevices --update would make a change.

. remove check of PART field from --check because it isn't used.

. unlink searched_devnames file to ensure check|update will search
2022-01-14 15:53:13 -06:00
David Teigland
a5c37afdca pvcreate: overwrite partition header with -f
$ pvcreate /dev/sdc
  Cannot use /dev/sdc: device is partitioned
$ pvcreate -f /dev/sdc
  Physical volume "/dev/sdc" successfully created.
2022-01-14 14:35:35 -06:00
Marian Csontos
4b26fb3543 make: generate lvm2-2.03.14-3.el8 wip-2.03.14-2 2022-01-04 17:15:56 +01:00
David Teigland
61833dd5b6 man lvmautoactivation: replace systemctl with journalctl 2021-12-20 14:22:18 -06:00
David Teigland
af4bfa1f1f lvcreate: include recent options
The permitted option list in lvcreate has not kept
up with command-lines.in.
2021-12-20 14:22:18 -06:00
David Teigland
7631c5b826 man: add section about static autoactivation 2021-12-20 14:22:18 -06:00
David Teigland
357a807e81 device_id: handle wwid with spaces or control characters
non-standard wwid can be reported from sysfs with spaces/etc.
replace with "_"
2021-12-20 14:22:18 -06:00
David Teigland
604fd528fb print warning about unrecognized journal option value 2021-12-20 14:22:18 -06:00
David Teigland
04770589b4 devices file: don't write in test mode 2021-12-20 14:22:18 -06:00
David Teigland
10a4478e9b tests devicesfile-devname.sh drop mdadm chunk 2021-12-20 14:22:17 -06:00
Marian Csontos
c02a086fe7 spec: Add lvmautoactivation man page 2021-12-20 14:22:17 -06:00
David Teigland
25dbe3dd82 man: lvmautoactivation
new topical man page describing autoactivation
2021-12-20 14:22:17 -06:00
David Teigland
7ac0b3c119 fix spelling of pruning 2021-12-20 14:22:17 -06:00
David Teigland
594c1fec16 display: ignore --reportformat
Using the option would do nothing useful but would
print extraneous braces.
2021-12-20 14:22:17 -06:00
David Teigland
9c9bf13186 tests pv-ext-flags: work with devices file 2021-12-20 14:22:17 -06:00
David Teigland
39adf3e513 device_id: searched_devnames improvements
Remove the searched_devnames file in a couple more places:
. When hints need refreshing it's possible that a missing
  devices file entry could be found by searching devices
  again.
. When a devices file entry devname is first found to be
  incorrect, a new search for missing entries may be
  useful.
2021-12-20 14:22:17 -06:00
David Teigland
5533cd7bf4 device_id: fix search on filtered device
When devnames are used as device ids and devnames change,
then new devices need to be located for the PVs.  If the old
devname is now used by a filtered device, this was preventing
the code from searching for the new device, so the PV was
reported as missing.
2021-12-20 14:22:17 -06:00
David Teigland
459d931a9b device_id: match different dm device names
If a devices file entry for a dm device is using the devname
for the device id, then recognize different dm names as matching.
2021-12-20 14:22:17 -06:00
David Teigland
fad2b3dc8c filter-sysfs: support old kernels without sys/dev/block
rhel5 for example doesn't have /sys/dev/block
2021-12-20 14:22:17 -06:00
David Teigland
f732f3d53f lvmdevices: increase open file limit 2021-12-20 14:22:17 -06:00
David Teigland
f73be4480a filter-sysfs: skip when device id is set
When a device id is set for a device, using an idtype other
than devname, it means that sysfs has been used with the device
to match the device id.  So, checking for a sysfs entry for the
device in filter-sysfs is redundant.  For any other cases not
covered by this (e.g. devname ids), have filter-sysfs simply
stat /sys/dev/block/major:minor to test if the device exists
in sysfs.

The extensive processing done by filter-sysfs init is removed.
It was taking an immense amount of time with many devices, e.g.
. 1024 PVs in 520 VGs
. 520 concurrent vgchange -ay <vgname> commands
. vgchange scans only PVs in the named VG (based on pvs_online
  files from a pending patch)

A large number of the vgchange commands were taking over 1 min,
and nearly half of that time was used by filter-sysfs init.
With this patch, the vgchange commands take about half the time.
2021-12-20 14:22:17 -06:00
David Teigland
00ebabfe6e hints: remove the cmd hints list
which is no longer used after commit
"toollib: remove all devices list from process_each_pv"
2021-12-20 14:22:17 -06:00
David Teigland
074fce5c73 vgimportdevices: skip lvmlockd locking
Help bootstrapping existing shared vgs into the devices file.
Reading the vg in vgimportdevices would require locking to be
started, but vgchange lockstart won't see the vg if it's not
in the devices file.  The lvmlockd locks are not protecting
vg modifications so skipping them here won't be a problem.
2021-12-20 14:22:17 -06:00
David Teigland
a5a2d5fa1e pvscan: fix messages from coverity changes 2021-12-20 14:22:17 -06:00
David Teigland
2091305b79 Revert "pvscan: only add device args to dev cache"
This reverts commit 33e47182f773c1a902b533580b63a803906de55d.
2021-12-20 14:22:17 -06:00
David Teigland
63c4458aaf Revert "new udev autoactivation"
This reverts commit 67722b312390cdab29c076c912e14bd739c5c0f6.
2021-12-20 14:22:02 -06:00