Accepting request 310530 from home:jeff_mahoney:branches:Base:System
- Update to 2.02.120 - Fixed numerous bugs(see WHATS_NEW for full details) - Deleted dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch (upstream) OBS-URL: https://build.opensuse.org/request/show/310530 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=130
This commit is contained in:
parent
c1e9200334
commit
b4c433fdb0
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:de9cb0acfb9c5a6afa6184160c9e066f19043677f91a72c741d153efcd2874a5
|
|
||||||
size 1524844
|
|
@ -1,7 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAlR5ALcACgkQIoGRwVZ+LBfcYACfcsCo+Im/tR2gbHDpSA5Qg9Vo
|
|
||||||
iqIAoOjwTzT8Mcwgz7cpUdl7iLhoaola
|
|
||||||
=BmR+
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
LVM2.2.02.120.tgz
Normal file
3
LVM2.2.02.120.tgz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8d6bd02f7d00315482538ece3e831cd81709c29d74ce71229c60192fb166081a
|
||||||
|
size 1653183
|
7
LVM2.2.02.120.tgz.asc
Normal file
7
LVM2.2.02.120.tgz.asc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||||
|
|
||||||
|
iEYEABECAAYFAlVWcqQACgkQIoGRwVZ+LBeiKgCg6vIAWhC7AZcf01Qf505sty3A
|
||||||
|
HOwAoJGo8JYHscwGMo3FSIkLWHjbcRq0
|
||||||
|
=96gn
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -456,7 +456,7 @@ Subject: Parallelize dispatching
|
|||||||
- if (!lv_is_pvmove(lv) && !lv_is_locked(lv) &&
|
- if (!lv_is_pvmove(lv) && !lv_is_locked(lv) &&
|
||||||
- lv_is_active(lv) &&
|
- lv_is_active(lv) &&
|
||||||
- !lv_is_active_exclusive_locally(lv) && /* lv_is_active_remotely */
|
- !lv_is_active_exclusive_locally(lv) && /* lv_is_active_remotely */
|
||||||
- !_cluster_mirror_is_available(lv)) {
|
- !cluster_mirror_is_available(lv->vg->cmd)) {
|
||||||
- log_error("Shared cluster mirrors are not available.");
|
- log_error("Shared cluster mirrors are not available.");
|
||||||
- return 0;
|
- return 0;
|
||||||
- }
|
- }
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
Index: LVM2.2.02.114/lib/device/dev-type.c
|
|
||||||
===================================================================
|
|
||||||
--- LVM2.2.02.114.orig/lib/device/dev-type.c
|
|
||||||
+++ LVM2.2.02.114/lib/device/dev-type.c
|
|
||||||
@@ -112,6 +112,10 @@ struct dev_types *create_dev_types(const
|
|
||||||
if (!strncmp("drbd", line + i, 4) && isspace(*(line + i + 4)))
|
|
||||||
dt->drbd_major = line_maj;
|
|
||||||
|
|
||||||
+ /* Look for DASD */
|
|
||||||
+ if (!strncmp("dasd", line + i, 4) && isspace(*(line + i + 4)))
|
|
||||||
+ dt->dasd_major = line_maj;
|
|
||||||
+
|
|
||||||
/* Look for EMC powerpath */
|
|
||||||
if (!strncmp("emcpower", line + i, 8) && isspace(*(line + i + 8)))
|
|
||||||
dt->emcpower_major = line_maj;
|
|
||||||
@@ -203,6 +207,9 @@ int dev_subsystem_part_major(struct dev_
|
|
||||||
if (MAJOR(dev->dev) == dt->emcpower_major)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
+ if (MAJOR(dev->dev) == dt->dasd_major)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
if (MAJOR(dev->dev) == dt->power2_major)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
@@ -222,6 +229,9 @@ const char *dev_subsystem_name(struct de
|
|
||||||
if (MAJOR(dev->dev) == dt->drbd_major)
|
|
||||||
return "DRBD";
|
|
||||||
|
|
||||||
+ if (MAJOR(dev->dev) == dt->dasd_major)
|
|
||||||
+ return "DASD";
|
|
||||||
+
|
|
||||||
if (MAJOR(dev->dev) == dt->emcpower_major)
|
|
||||||
return "EMCPOWER";
|
|
||||||
|
|
||||||
@@ -319,6 +329,10 @@ int dev_is_partitioned(struct dev_types
|
|
||||||
if (!_is_partitionable(dt, dev))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
+ /* Unpartitioned DASD devices are not supported. */
|
|
||||||
+ if (MAJOR(dev->dev) == dt->dasd_major)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
return _has_partition_table(dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: LVM2.2.02.114/lib/device/dev-type.h
|
|
||||||
===================================================================
|
|
||||||
--- LVM2.2.02.114.orig/lib/device/dev-type.h
|
|
||||||
+++ LVM2.2.02.114/lib/device/dev-type.h
|
|
||||||
@@ -44,6 +44,7 @@ struct dev_types {
|
|
||||||
int device_mapper_major;
|
|
||||||
int emcpower_major;
|
|
||||||
int power2_major;
|
|
||||||
+ int dasd_major;
|
|
||||||
struct dev_type_def dev_type_array[NUMBER_OF_MAJORS];
|
|
||||||
};
|
|
||||||
|
|
@ -3,8 +3,8 @@ Index: LVM2.2.02.109/libdm/Makefile.in
|
|||||||
--- LVM2.2.02.109.orig/libdm/Makefile.in
|
--- LVM2.2.02.109.orig/libdm/Makefile.in
|
||||||
+++ LVM2.2.02.109/libdm/Makefile.in
|
+++ LVM2.2.02.109/libdm/Makefile.in
|
||||||
@@ -39,9 +39,9 @@ INCLUDES += @VALGRIND_CFLAGS@
|
@@ -39,9 +39,9 @@ INCLUDES += @VALGRIND_CFLAGS@
|
||||||
endif
|
|
||||||
CFLAGS += $(UDEV_CFLAGS)
|
INCLUDES = -I$(srcdir)/$(interface)
|
||||||
|
|
||||||
-ifeq ("@STATIC_LINK@", "yes")
|
-ifeq ("@STATIC_LINK@", "yes")
|
||||||
+#ifeq ("@STATIC_LINK@", "yes")
|
+#ifeq ("@STATIC_LINK@", "yes")
|
||||||
|
@ -1,33 +1,34 @@
|
|||||||
---
|
---
|
||||||
lib/config/config_settings.h | 1 +
|
lib/config/config_settings.h | 3 +++
|
||||||
lib/config/defaults.h | 1 +
|
lib/config/defaults.h | 1 +
|
||||||
lib/display/display.c | 14 ++++++++++----
|
lib/display/display.c | 13 +++++++++----
|
||||||
lib/display/display.h | 1 +
|
3 files changed, 13 insertions(+), 4 deletions(-)
|
||||||
4 files changed, 13 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/lib/config/config_settings.h
|
--- a/lib/config/config_settings.h
|
||||||
+++ b/lib/config/config_settings.h
|
+++ b/lib/config/config_settings.h
|
||||||
@@ -187,6 +187,7 @@ cfg_array(global_cache_check_options_CFG
|
@@ -905,6 +905,9 @@ cfg_array(global_cache_check_options_CFG
|
||||||
cfg(global_cache_dump_executable_CFG, "cache_dump_executable", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, CACHE_DUMP_CMD, vsn(2, 2, 108), NULL)
|
cfg_array(global_cache_repair_options_CFG, "cache_repair_options", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, "#S" DEFAULT_CACHE_REPAIR_OPTIONS, vsn(2, 2, 108), NULL, 0, NULL,
|
||||||
cfg(global_cache_repair_executable_CFG, "cache_repair_executable", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, CACHE_REPAIR_CMD, vsn(2, 2, 108), NULL)
|
"List of options passed to the cache_repair command.\n")
|
||||||
cfg_array(global_cache_repair_options_CFG, "cache_repair_options", global_CFG_SECTION, 0, CFG_TYPE_STRING, "#S" DEFAULT_CACHE_REPAIR_OPTIONS, vsn(2, 2, 108), NULL)
|
|
||||||
+cfg(global_display_dm_name_for_lv_name_CFG, "display_dm_name_for_lv_name", global_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME, vsn(2, 2, 98), NULL)
|
|
||||||
|
|
||||||
cfg(activation_checks_CFG, "checks", activation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_ACTIVATION_CHECKS, vsn(2, 2, 86), NULL)
|
+cfg(global_display_dm_name_for_lv_name_CFG, "display_dm_name_for_lv_name", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME, vsn(2, 2, 98), NULL, 0, NULL,
|
||||||
cfg(activation_udev_sync_CFG, "udev_sync", activation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_UDEV_SYNC, vsn(2, 2, 51), NULL)
|
+ "Display dm name for lv name.\n")
|
||||||
|
+
|
||||||
|
cfg(global_system_id_source_CFG, "system_id_source", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SYSTEM_ID_SOURCE, vsn(2, 2, 117), NULL, 0, NULL,
|
||||||
|
"The method LVM uses to set the local system ID.\n"
|
||||||
|
"Volume Groups can also be given a system ID (by\n"
|
||||||
--- a/lib/config/defaults.h
|
--- a/lib/config/defaults.h
|
||||||
+++ b/lib/config/defaults.h
|
+++ b/lib/config/defaults.h
|
||||||
@@ -31,6 +31,7 @@
|
@@ -33,6 +33,7 @@
|
||||||
#define DEFAULT_PROC_DIR "/proc"
|
|
||||||
#define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 1
|
#define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 1
|
||||||
|
#define DEFAULT_EXTERNAL_DEVICE_INFO_SOURCE "none"
|
||||||
#define DEFAULT_SYSFS_SCAN 1
|
#define DEFAULT_SYSFS_SCAN 1
|
||||||
+#define DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME 0
|
+#define DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME 0
|
||||||
#define DEFAULT_MD_COMPONENT_DETECTION 1
|
#define DEFAULT_MD_COMPONENT_DETECTION 1
|
||||||
|
#define DEFAULT_FW_RAID_COMPONENT_DETECTION 0
|
||||||
#define DEFAULT_MD_CHUNK_ALIGNMENT 1
|
#define DEFAULT_MD_CHUNK_ALIGNMENT 1
|
||||||
#define DEFAULT_IGNORE_LVM_MIRRORS 1
|
|
||||||
--- a/lib/display/display.c
|
--- a/lib/display/display.c
|
||||||
+++ b/lib/display/display.c
|
+++ b/lib/display/display.c
|
||||||
@@ -461,10 +461,15 @@ int lvdisplay_full(struct cmd_context *c
|
@@ -462,10 +462,15 @@ int lvdisplay_full(struct cmd_context *c
|
||||||
lv->vg->cmd->dev_dir, lv->vg->name, lv->name);
|
lv->vg->cmd->dev_dir, lv->vg->name, lv->name);
|
||||||
else if (lv_is_visible(lv)) {
|
else if (lv_is_visible(lv)) {
|
||||||
/* Thin pool does not have /dev/vg/name link */
|
/* Thin pool does not have /dev/vg/name link */
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
|
|
||||||
--- a/lib/metadata/lv_manip.c
|
--- a/lib/metadata/lv_manip.c
|
||||||
+++ b/lib/metadata/lv_manip.c
|
+++ b/lib/metadata/lv_manip.c
|
||||||
@@ -2481,6 +2481,25 @@ static uint32_t _calc_required_extents(s
|
@@ -2455,6 +2455,25 @@ static uint32_t _calc_required_extents(s
|
||||||
return required;
|
return required;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,14 +37,14 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
+ * the alloc_state and reserved areas every time.
|
+ * the alloc_state and reserved areas every time.
|
||||||
+ */
|
+ */
|
||||||
+ if (required > alloc_state->areas[ix_pva - 1].used)
|
+ if (required > alloc_state->areas[ix_pva - 1].used)
|
||||||
+ _reserve_area(alloc_state, pva, required, ix_pva - 1,
|
+ _reserve_area(ah, alloc_state, pva, required, ix_pva - 1,
|
||||||
+ pva->unreserved);
|
+ pva->unreserved);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
static void _clear_areas(struct alloc_state *alloc_state)
|
static void _clear_areas(struct alloc_state *alloc_state)
|
||||||
{
|
{
|
||||||
uint32_t s;
|
uint32_t s;
|
||||||
@@ -2575,6 +2594,7 @@ static int _find_some_parallel_space(str
|
@@ -2580,6 +2599,7 @@ static int _find_some_parallel_space(str
|
||||||
const struct alloc_parms *alloc_parms = alloc_state->alloc_parms;
|
const struct alloc_parms *alloc_parms = alloc_state->alloc_parms;
|
||||||
unsigned ix = 0;
|
unsigned ix = 0;
|
||||||
unsigned last_ix;
|
unsigned last_ix;
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
struct pv_map *pvm;
|
struct pv_map *pvm;
|
||||||
struct pv_area *pva;
|
struct pv_area *pva;
|
||||||
unsigned preferred_count = 0;
|
unsigned preferred_count = 0;
|
||||||
@@ -2695,9 +2715,17 @@ static int _find_some_parallel_space(str
|
@@ -2700,9 +2720,17 @@ static int _find_some_parallel_space(str
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case USE_AREA:
|
case USE_AREA:
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 19 16:30:47 UTC 2015 - jeffm@suse.com
|
||||||
|
|
||||||
|
- Update to 2.02.120
|
||||||
|
- Fixed numerous bugs(see WHATS_NEW for full details)
|
||||||
|
- Deleted dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch (upstream)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 3 02:45:02 UTC 2015 - lzhong@suse.com
|
Fri Apr 3 02:45:02 UTC 2015 - lzhong@suse.com
|
||||||
|
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define lvm2_version 2.02.114
|
%define lvm2_version 2.02.120
|
||||||
%define device_mapper_version 1.02.92
|
%define device_mapper_version 1.02.97
|
||||||
%define thin_provisioning_version 0.4.1
|
%define thin_provisioning_version 0.4.1
|
||||||
|
|
||||||
Name: lvm2
|
Name: lvm2
|
||||||
@ -38,8 +38,6 @@ Source16: csm-converter.tar.gz
|
|||||||
Source50: thin-provisioning-tools-v%{thin_provisioning_version}.tar.gz
|
Source50: thin-provisioning-tools-v%{thin_provisioning_version}.tar.gz
|
||||||
|
|
||||||
# Upstream patches first
|
# Upstream patches first
|
||||||
# bsc#894202
|
|
||||||
Patch1: dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch
|
|
||||||
|
|
||||||
# SUSE patches 1000- for LVM, 2000- for device mapper
|
# SUSE patches 1000- for LVM, 2000- for device mapper
|
||||||
Patch1001: improve_probing.diff
|
Patch1001: improve_probing.diff
|
||||||
@ -124,7 +122,6 @@ Volume Manager.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n LVM2.%{version} -a 50 -a 16
|
%setup -q -n LVM2.%{version} -a 50 -a 16
|
||||||
|
|
||||||
%patch1 -p1
|
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
%patch1002 -p1
|
%patch1002 -p1
|
||||||
%patch1003 -p1
|
%patch1003 -p1
|
||||||
@ -287,6 +284,7 @@ popd
|
|||||||
%dir /usr/lib/tmpfiles.d
|
%dir /usr/lib/tmpfiles.d
|
||||||
%ghost %{_sysconfdir}/lvm/cache/.cache
|
%ghost %{_sysconfdir}/lvm/cache/.cache
|
||||||
%{_sysconfdir}/lvm/profile/*.profile
|
%{_sysconfdir}/lvm/profile/*.profile
|
||||||
|
%{_sysconfdir}/lvm/lvmlocal.conf
|
||||||
%{_udevdir}/rules.d/11-dm-lvm.rules
|
%{_udevdir}/rules.d/11-dm-lvm.rules
|
||||||
%{_udevdir}/rules.d/69-dm-lvm-metad.rules
|
%{_udevdir}/rules.d/69-dm-lvm-metad.rules
|
||||||
%{_unitdir}/blk-availability.service
|
%{_unitdir}/blk-availability.service
|
||||||
|
@ -19,51 +19,53 @@ always be placed on pvs with differnt tags.
|
|||||||
Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||||
---
|
---
|
||||||
conf/example.conf.in | 17 +++++++++++++++++
|
conf/example.conf.in | 17 +++++++++++++++++
|
||||||
lib/config/config_settings.h | 1 +
|
lib/config/config_settings.h | 3 +++
|
||||||
lib/config/defaults.h | 1 +
|
lib/config/defaults.h | 1 +
|
||||||
lib/metadata/lv_manip.c | 36 ++++++++++++++++++++++++++++++++++++
|
lib/metadata/lv_manip.c | 35 +++++++++++++++++++++++++++++++++++
|
||||||
man/lvcreate.8.in | 4 ++++
|
man/lvcreate.8.in | 4 ++++
|
||||||
5 files changed, 59 insertions(+)
|
5 files changed, 60 insertions(+)
|
||||||
|
|
||||||
--- a/conf/example.conf.in
|
--- a/conf/example.conf.in
|
||||||
+++ b/conf/example.conf.in
|
+++ b/conf/example.conf.in
|
||||||
@@ -315,6 +315,23 @@ allocation {
|
@@ -359,6 +359,23 @@ allocation {
|
||||||
#
|
# option is used directly.
|
||||||
wipe_signatures_when_zeroing_new_lvs = 1
|
wipe_signatures_when_zeroing_new_lvs = 1
|
||||||
|
|
||||||
+ # Set to 1 to guarantee that mirror leg will always be placed on
|
+ # Set to 1 to guarantee that mirror leg will always be placed on
|
||||||
+ # different PVs(with different tags) from the other mirror legs.
|
+ # different PVs(with different tags) from the other mirror legs.
|
||||||
+ #
|
+ #
|
||||||
+ # If you want to enable this feature, the following conditions
|
+ # If you want to enable this feature, the following conditions
|
||||||
+ # must be met:
|
+ # must be met:
|
||||||
+ # 1) The mirror_legs_require_separate_pvs must be set to 1, the
|
+ # 1) The mirror_legs_require_separate_pvs must be set to 1, the
|
||||||
+ # default value is 0.
|
+ # default value is 0.
|
||||||
+ # 2) The cling_tag_list must be activated.
|
+ # 2) The cling_tag_list must be activated.
|
||||||
+ # 3) The length of all pvs with same tag must greater than or equal
|
+ # 3) The length of all pvs with same tag must greater than or equal
|
||||||
+ # to the mirror's.
|
+ # to the mirror's.
|
||||||
+
|
+
|
||||||
+ # This feature is only for the first allocation, on the other hand
|
+ # This feature is only for the first allocation, on the other hand
|
||||||
+ # when creating new mirrored lvs.
|
+ # when creating new mirrored lvs.
|
||||||
+ # Please note that the commond may fail if the number of all tags
|
+ # Please note that the commond may fail if the number of all tags
|
||||||
+ # on the pvs less than the mirror legs number.
|
+ # on the pvs less than the mirror legs number.
|
||||||
+ mirror_legs_require_separate_pvs = 0
|
+ mirror_legs_require_separate_pvs = 0
|
||||||
+
|
+
|
||||||
# Set to 1 to guarantee that mirror logs will always be placed on
|
# Configuration option allocation/mirror_logs_require_separate_pvs.
|
||||||
# different PVs from the mirror images. This was the default
|
# Mirror logs and images will always use different PVs.
|
||||||
# until version 2.02.85.
|
# The default setting changed in version 2.02.85.
|
||||||
--- a/lib/config/config_settings.h
|
--- a/lib/config/config_settings.h
|
||||||
+++ b/lib/config/config_settings.h
|
+++ b/lib/config/config_settings.h
|
||||||
@@ -119,6 +119,7 @@ cfg(allocation_maximise_cling_CFG, "maxi
|
@@ -457,6 +457,9 @@ cfg(allocation_mirror_logs_require_separ
|
||||||
cfg(allocation_use_blkid_wiping_CFG, "use_blkid_wiping", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 105), NULL)
|
"Mirror logs and images will always use different PVs.\n"
|
||||||
cfg(allocation_wipe_signatures_when_zeroing_new_lvs_CFG, "wipe_signatures_when_zeroing_new_lvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 105), NULL)
|
"The default setting changed in version 2.02.85.\n")
|
||||||
cfg(allocation_mirror_logs_require_separate_pvs_CFG, "mirror_logs_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_MIRROR_LOGS_REQUIRE_SEPARATE_PVS, vsn(2, 2, 85), NULL)
|
|
||||||
+cfg(allocation_mirror_legs_require_separate_pvs_CFG, "mirror_legs_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_MIRROR_LEGS_REQUIRE_SEPARATE_PVS, vsn(2, 2, 98), NULL)
|
+cfg(allocation_mirror_legs_require_separate_pvs_CFG, "mirror_legs_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_MIRROR_LEGS_REQUIRE_SEPARATE_PVS, vsn(2, 2, 98), NULL, 0, NULL,
|
||||||
cfg(allocation_cache_pool_metadata_require_separate_pvs_CFG, "cache_pool_metadata_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_CACHE_POOL_METADATA_REQUIRE_SEPARATE_PVS, vsn(2, 2, 106), NULL)
|
+ "Mirror legs will always use different PVs.\n")
|
||||||
cfg(allocation_cache_pool_cachemode_CFG, "cache_pool_cachemode", allocation_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_CACHE_POOL_CACHEMODE, vsn(2, 2, 113), NULL)
|
+
|
||||||
cfg_runtime(allocation_cache_pool_chunk_size_CFG, "cache_pool_chunk_size", allocation_CFG_SECTION, CFG_DEFAULT_UNDEFINED, CFG_TYPE_INT, vsn(2, 2, 106), NULL)
|
cfg(allocation_cache_pool_metadata_require_separate_pvs_CFG, "cache_pool_metadata_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_CACHE_POOL_METADATA_REQUIRE_SEPARATE_PVS, vsn(2, 2, 106), NULL, 0, NULL,
|
||||||
|
"Cache pool metadata and data will always use different PVs.\n")
|
||||||
|
|
||||||
--- a/lib/config/defaults.h
|
--- a/lib/config/defaults.h
|
||||||
+++ b/lib/config/defaults.h
|
+++ b/lib/config/defaults.h
|
||||||
@@ -125,6 +125,7 @@
|
@@ -132,6 +132,7 @@
|
||||||
#define DEFAULT_MAX_LV 0
|
#define DEFAULT_MAX_LV 0
|
||||||
#define DEFAULT_ALLOC_POLICY ALLOC_NORMAL
|
#define DEFAULT_ALLOC_POLICY ALLOC_NORMAL
|
||||||
#define DEFAULT_MIRROR_LOGS_REQUIRE_SEPARATE_PVS 0
|
#define DEFAULT_MIRROR_LOGS_REQUIRE_SEPARATE_PVS 0
|
||||||
@ -73,7 +75,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
|
|
||||||
--- a/lib/metadata/lv_manip.c
|
--- a/lib/metadata/lv_manip.c
|
||||||
+++ b/lib/metadata/lv_manip.c
|
+++ b/lib/metadata/lv_manip.c
|
||||||
@@ -1409,6 +1409,9 @@ struct alloc_handle {
|
@@ -1447,6 +1447,9 @@ struct alloc_handle {
|
||||||
|
|
||||||
unsigned maximise_cling;
|
unsigned maximise_cling;
|
||||||
unsigned mirror_logs_separate; /* Force mirror logs on separate PVs? */
|
unsigned mirror_logs_separate; /* Force mirror logs on separate PVs? */
|
||||||
@ -83,28 +85,10 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* RAID devices require a metadata area that accompanies each
|
* RAID devices require a metadata area that accompanies each
|
||||||
@@ -1598,6 +1601,7 @@ static struct alloc_handle *_alloc_init(
|
@@ -2542,6 +2545,32 @@ static int _limit_to_one_area_per_tag(st
|
||||||
ah->parity_count = parity_count;
|
|
||||||
ah->region_size = region_size;
|
|
||||||
ah->alloc = alloc;
|
|
||||||
+ ah->segtype = segtype;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For the purposes of allocation, area_count and parity_count are
|
|
||||||
@@ -1609,6 +1613,7 @@ static struct alloc_handle *_alloc_init(
|
|
||||||
ah->area_multiple = _calc_area_multiple(segtype, area_count + parity_count, stripes);
|
|
||||||
//FIXME: s/mirror_logs_separate/metadata_separate/ so it can be used by others?
|
|
||||||
ah->mirror_logs_separate = find_config_tree_bool(cmd, allocation_mirror_logs_require_separate_pvs_CFG, NULL);
|
|
||||||
+ ah->mirror_legs_separate = find_config_tree_bool(cmd, allocation_mirror_legs_require_separate_pvs_CFG, NULL);
|
|
||||||
|
|
||||||
if (mirrors || stripes)
|
|
||||||
total_extents = new_extents;
|
|
||||||
@@ -2533,6 +2538,33 @@ static void _report_needed_allocation_sp
|
|
||||||
(metadata_count == 1) ? "" : "s",
|
|
||||||
metadata_size);
|
|
||||||
}
|
}
|
||||||
+
|
|
||||||
+/*
|
/*
|
||||||
+ * Return -1 if we don't need check tags, or there aren't any areas in alloc_status
|
+ * Return -1 if we don't need check tags, or there aren't any areas in alloc_status
|
||||||
+ * have the same tag with pva, the index otherwise.
|
+ * have the same tag with pva, the index otherwise.
|
||||||
+ */
|
+ */
|
||||||
@ -130,10 +114,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
+ return -1;
|
+ return -1;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
/*
|
+/*
|
||||||
* Returns 1 regardless of whether any space was found, except on error.
|
* Returns 1 regardless of whether any space was found, except on error.
|
||||||
*/
|
*/
|
||||||
@@ -2663,6 +2695,10 @@ static int _find_some_parallel_space(str
|
static int _find_some_parallel_space(struct alloc_handle *ah,
|
||||||
|
@@ -2671,6 +2700,10 @@ static int _find_some_parallel_space(str
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case USE_AREA:
|
case USE_AREA:
|
||||||
@ -144,16 +129,32 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
|||||||
/*
|
/*
|
||||||
* Except with ALLOC_ANYWHERE, replace first area with this
|
* Except with ALLOC_ANYWHERE, replace first area with this
|
||||||
* one which is smaller but still big enough.
|
* one which is smaller but still big enough.
|
||||||
|
@@ -3151,6 +3184,7 @@ static struct alloc_handle *_alloc_init(
|
||||||
|
ah->parity_count = parity_count;
|
||||||
|
ah->region_size = region_size;
|
||||||
|
ah->alloc = alloc;
|
||||||
|
+ ah->segtype = segtype;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For the purposes of allocation, area_count and parity_count are
|
||||||
|
@@ -3162,6 +3196,7 @@ static struct alloc_handle *_alloc_init(
|
||||||
|
ah->area_multiple = _calc_area_multiple(segtype, area_count + parity_count, stripes);
|
||||||
|
//FIXME: s/mirror_logs_separate/metadata_separate/ so it can be used by others?
|
||||||
|
ah->mirror_logs_separate = find_config_tree_bool(cmd, allocation_mirror_logs_require_separate_pvs_CFG, NULL);
|
||||||
|
+ ah->mirror_legs_separate = find_config_tree_bool(cmd, allocation_mirror_legs_require_separate_pvs_CFG, NULL);
|
||||||
|
|
||||||
|
if (mirrors || stripes)
|
||||||
|
total_extents = new_extents;
|
||||||
--- a/man/lvcreate.8.in
|
--- a/man/lvcreate.8.in
|
||||||
+++ b/man/lvcreate.8.in
|
+++ b/man/lvcreate.8.in
|
||||||
@@ -284,6 +284,10 @@ will create a persistent log that is its
|
@@ -333,6 +333,10 @@ Using \fIcore\fP means the mirror is reg
|
||||||
Using \fIcore\fP means the mirror is regenerated by copying the data
|
|
||||||
from the first device each time the logical volume is activated,
|
from the first device each time the logical volume is activated,
|
||||||
like after every reboot.
|
like after every reboot.
|
||||||
+.br
|
.br
|
||||||
+Every leg of the mirrored logical volume could be placed on the pvs with
|
+Every leg of the mirrored logical volume could be placed on the pvs with
|
||||||
+same tag, see details(mirror_legs_require_separate_pvs) in lvm.conf.
|
+same tag, see details(mirror_legs_require_separate_pvs) in lvm.conf.
|
||||||
+
|
+
|
||||||
.br
|
+.br
|
||||||
Using \fImirrored\fP will create a persistent log that is itself mirrored.
|
Using \fImirrored\fP will create a persistent log that is itself mirrored.
|
||||||
.TP
|
.TP
|
||||||
|
.BR \-\-monitor " {" \fIy | \fIn }
|
||||||
|
Loading…
Reference in New Issue
Block a user