1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-11-05 15:22:42 +03:00

Change pvscan --lvmetad to pvscan --cache.

This commit is contained in:
Alasdair Kergon 2012-03-02 18:09:46 +00:00
parent 7e35dfff3d
commit d742cdf327
11 changed files with 20 additions and 19 deletions

View File

@ -51,8 +51,8 @@ an accurate (up to the data it has received) image of the VGs available in the
system. I imagine we could extend the pvscan command (or add a new one, say
lvmetad_client, if pvscan is found to be inappropriate):
$ pvscan --lvmetad /dev/foo
$ pvscan --lvmetad --remove /dev/foo
$ pvscan --cache /dev/foo
$ pvscan --cache --remove /dev/foo
These commands would simply read the label and the MDA (if applicable) from the
given PV and feed that data to the running lvmetad, using

View File

@ -32,11 +32,11 @@ LVM
For LVM, the crucial piece of the puzzle is lvmetad, which allows us to build up
VGs from PVs as they appear, and at the same time collect information on what is
already available. A command, pvscan --lvmetad is expected to be used to
already available. A command, pvscan --cache is expected to be used to
implement udev rules. It is relatively easy to make this command print out a
list of VGs (and possibly LVs) that have been made available by adding any
particular device to the set of visible devices. In othe words, udev says "hey,
/dev/sdb just appeared", calls pvscan --lvmetad, which talks to lvmetad, which
/dev/sdb just appeared", calls pvscan --cache, which talks to lvmetad, which
says "cool, that makes vg0 complete". Pvscan takes this info and prints it out,
and the udev rule can then somehow decide whether anything needs to be done
about this "vg0". Presumably a table of devices that need to be activated

2
lib/cache/lvmetad.c vendored
View File

@ -583,7 +583,7 @@ void lvmetad_set_active(int active)
}
/*
* The following code implements pvscan --lvmetad.
* The following code implements pvscan --cache.
*/
struct _pvscan_lvmetad_baton {

View File

@ -60,7 +60,7 @@ static int _vsn1_check_version(const struct dm_config_tree *cft)
const struct dm_config_node *cn;
const struct dm_config_value *cv;
// TODO if this is pvscan --lvmetad, we want this check back.
// TODO if this is pvscan --cache, we want this check back.
if (lvmetad_active())
return 1;

View File

@ -3620,6 +3620,7 @@ static struct physical_volume *_pv_read(struct cmd_context *cmd,
if (lvmetad_active()) {
info = lvmcache_info_from_pvid(dev->pvid, 0);
// FIXME AGK no error unless 'warnings' set!
if (!info && !lvmetad_pv_lookup_by_devt(cmd, dev->dev))
return NULL;
info = lvmcache_info_from_pvid(dev->pvid, 0);

View File

@ -3,6 +3,7 @@
pvscan \- scan all disks for physical volumes
.SH SYNOPSIS
.B pvscan
.RB [ \-\-cache " " DevicePath [ DevicePath ... ] ]
.RB [ \-d | \-\-debug ]
.RB [ \-h | \-\-help ]
.RB [ \-v | \-\-verbose ]
@ -12,7 +13,6 @@ pvscan \- scan all disks for physical volumes
.RB [ \-n | \-\-novolumegroup ]
.RB [ \-s | \-\-short ]
.RB [ \-u | \-\-uuid ]
.RB [ \-\-lvmetad " " DevicePath [ DevicePath ... ] ]
.SH DESCRIPTION
.B pvscan
scans all supported LVM block devices in the system for physical volumes.
@ -31,10 +31,10 @@ Short listing format.
.BR \-u ", " \-\-uuid
Show UUIDs (Uniform Unique Identifiers) in addition to device special names.
.TP
.BR \-\-lvmetad " " DevicePath [ DevicePath... ]
Scan a single device and contact lvmetad to update its cached state. Called
internally by udev rules. The device is processed \fBregardless\fP of any device
filters set in lvm.conf.
.BR \-\-cache " " DevicePath [ DevicePath... ]
Scan a single device and instruct the lvmetad daemon to update its cached
state. Called internally by udev rules. The device is processed
\fBregardless\fP of any device filters set in lvm.conf.
.SH SEE ALSO
.BR lvm (8),
.BR pvcreate (8),

View File

@ -80,7 +80,7 @@ prepare_lvmetad() {
notify_lvmetad() {
if test -e LOCAL_LVMETAD; then
pvscan --lvmetad "$@" || true
pvscan --cache "$@" || true
fi
}

View File

@ -61,7 +61,7 @@ arg(use_policies_ARG, '\0', "use-policies", NULL, 0)
arg(monitor_ARG, '\0', "monitor", yes_no_arg, 0)
arg(config_ARG, '\0', "config", string_arg, 0)
arg(trustcache_ARG, '\0', "trustcache", NULL, 0)
arg(lvmetad_ARG, '\0', "lvmetad", NULL, 0)
arg(cache_ARG, '\0', "cache", NULL, 0)
arg(ignoremonitoring_ARG, '\0', "ignoremonitoring", NULL, 0)
arg(nameprefixes_ARG, '\0', "nameprefixes", NULL, 0)
arg(unquoted_ARG, '\0', "unquoted", NULL, 0)

View File

@ -663,6 +663,7 @@ xx(pvscan,
"List all physical volumes",
PERMITTED_READ_ONLY,
"pvscan " "\n"
"\t[--cache DevicePath [DevicePath...]] " "\n"
"\t[-d|--debug] " "\n"
"\t{-e|--exported | -n|--novolumegroup} " "\n"
"\t[-h|-?|--help]" "\n"
@ -670,12 +671,11 @@ xx(pvscan,
"\t[-P|--partial] " "\n"
"\t[-s|--short] " "\n"
"\t[-u|--uuid] " "\n"
"\t[--lvmetad DevicePath [DevicePath...]] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]\n",
exported_ARG, ignorelockingfailure_ARG, novolumegroup_ARG, partial_ARG,
short_ARG, uuid_ARG, lvmetad_ARG)
cache_ARG, exported_ARG, ignorelockingfailure_ARG, novolumegroup_ARG,
partial_ARG, short_ARG, uuid_ARG)
xx(segtypes,
"List available segment types",

View File

@ -104,7 +104,7 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
int ret = ECMD_PROCESSED;
if (!argc) {
log_error("List of Physical Volumes to tell lvmetad to cache required.");
log_error("List of Physical Volumes to be cached by the lvmetad daemon required.");
return EINVALID_CMD_LINE;
}
@ -144,7 +144,7 @@ int pvscan(struct cmd_context *cmd, int argc, char **argv)
pv_max_name_len = 0;
vg_max_name_len = 0;
if (arg_count(cmd, lvmetad_ARG))
if (arg_count(cmd, cache_ARG))
return _pvscan_lvmetad(cmd, argc, argv);
if (arg_count(cmd, novolumegroup_ARG) && arg_count(cmd, exported_ARG)) {

View File

@ -20,6 +20,6 @@ SUBSYSTEM!="block", GOTO="lvm_end"
KERNEL=="dm-[0-9]*", ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="lvm_end"
# Only process devices already marked as a PV - this requires blkid to be called before.
ENV{ID_FS_TYPE}=="LVM2_member|LVM1_member", RUN+="$env{DM_SBIN_PATH}/pvscan --lvmetad $major:$minor"
ENV{ID_FS_TYPE}=="LVM2_member|LVM1_member", RUN+="$env{DM_SBIN_PATH}/pvscan --cache $major:$minor"
LABEL="lvm_end"