1Version 2.02.44 - 26th January 2009 2=================================== 3 Fix --enable-static_link after the recent repository changes. 4 Add corosync/DLM cluster interface to clvmd. 5 Add --nameprefixes, --unquoted, --rows to pvs, vgs, lvs man pages. 6 Fix lvresize size conversion for fsadm when block size is not 1K. 7 Fix pvs segfault when run with orphan PV and some VG fields. 8 Display a 'dev_size' of zero for missing devices in reports. 9 Add pv_mda_size to pvs and vg_mda_size to vgs. 10 Fix lvmdump /sys listing to include virtual devices directory. 11 Add "--refresh" functionality to vgchange and vgmknodes. 12 Avoid exceeding LV size when wiping device. 13 Calculate mirror log size instead of using 1 extent. 14 Ensure requested device number is available before activating with it. 15 Fix incorrect exit status from 'help <command>'. 16 Fix vgrename using UUID if there are VGs with identical names. 17 Fix segfault when invalid field given in reporting commands. 18 Move is_static from cmd to global is_static(). 19 Refactor init_lvm() for lvmcmdline and clvmd. 20 Add liblvm interactive test infrastructure to build. 21 Add skeleton lvm2.h file in preparation for a shared library interface. 22 Use better random seed value in temp file creation. 23 Add read_urandom to read /dev/urandom. Use in uuid calculation. 24 Use displayable_lvs_in_vg and lv_is_displayable for consistency throughout. 25 Fix race in vgcreate that would result in second caller overwriting first. 26 Fix uninitialised lv_count in vgdisplay -c. 27 Don't skip updating pvid hash when lvmcache_info struct got swapped. 28 Add tinfo to termcap search path for pld-linux. 29 Fix startup race in clvmd. 30 Generate Red Hat clvmd startup script at config time with correct paths. 31 Fix clvmd & dmeventd builds after tree restructuring. 32 Cope with snapshot dependencies when removing a whole VG with lvremove. 33 Make man pages and tool help text consistent using | for alternative options. 34 35Version 2.02.43 - 10th November 2008 36==================================== 37 Merge device-mapper into the lvm2 tree. 38 Correct prototype for --permission on lvchange and lvcreate man pages. 39 Exit with non-zero status from vgdisplay if couldn't show any requested VG. 40 Move list.c into libdevmapper and rename functions. 41 Rename a couple of variables that matched function names. 42 Use simplified x.y.z version number in libdevmapper.pc. 43 Remove ancient debian directory. 44 Split out lvm-logging.h from log.h and lvm-globals.[ch] from log.[ch]. 45 46Version 2.02.42 - 26th October 2008 47=================================== 48 Accept locking fallback_to_* options in the global section as documented. 49 Fix temp table activation in mirror conversions not to happen in other cmds. 50 Fix temp table in mirror conversions to use always-present error not zero. 51 52Version 2.02.41 - 17th October 2008 53=================================== 54 Use temp table to set device size when converting mirrors. 55 In resume_mirror_images replace activate_lv with resume_lv as workaround. 56 Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE. 57 Fix snapshot monitoring library to not cancel monitoring invalid snapshot. 58 Generate man pages from templates and include version. 59 Add usrlibdir and usrsbindir to configure. 60 Fix conversion of md chunk size into sectors. 61 Free text metadata buffer after a failure writing it. 62 Fix misleading error message when there are no allocatable extents in VG. 63 Fix handling of PVs which reappeared with old metadata version. 64 Fix mirror DSO to call vgreduce with proper parameters. 65 Fix validation of --minor and --major in lvcreate to require -My always. 66 Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning. 67 68Version 2.02.40 - 19th September 2008 69===================================== 70 Allow lvremove to remove LVs from VGs with missing PVs. 71 In VG with PVs missing, by default allow activation of LVs that are complete. 72 Track PARTIAL_LV and MISSING_PV flags internally. 73 Require --force with --removemissing in vgreduce to remove partial LVs. 74 No longer write out PARTIAL flag into metadata backups. 75 Treat new default activation/missing_stripe_filler "error" as an error target. 76 Remove internal partial_mode. 77 Add devices/md_chunk_alignment to lvm.conf. 78 Pass struct physical_volume to pe_align and adjust for md chunk size. 79 Store sysfs location in struct cmd_context. 80 Avoid shuffling remaining mirror images when removing one, retaining primary. 81 Add missing LV error target activation in _remove_mirror_images. 82 Prevent resizing an LV while lvconvert is using it. 83 Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan. 84 Fix pvresize to not allow resize if PV has two metadata areas. 85 Fix setting of volume limit count if converting to lvm1 format. 86 Fix vgconvert logical volume id metadata validation. 87 Fix lvmdump metadata gather option (-m) to work correctly. 88 Fix allocation bug in text metadata format write error path. 89 Fix vgcfgbackup to properly check filename if template is used. 90 configure aborts if lcov or genhtml are missing with --enable-profiling 91 vgremove tries to remove lv snapshot first. 92 Added function lv_remove_with_dependencies(). 93 Improve file descriptor leak detection to display likely culprit and filename. 94 Change clustered mirror kernel module name from cmirror to dm-log-clustered. 95 Avoid looping forever in _pv_analyze_mda_raw used by pvck. 96 Change lvchange exit status to indicate if any part of the operation failed. 97 Fix pvchange and pvremove to handle PVs without mdas. 98 Refactor _text_pv_read and always return mda list if requested. 99 Fix configure to work w/o readline unless --enable-readline used. (2.02.39) 100 Remove is_lvm_partition template which has not yet been coded. 101 Refactor pvcreate to separate parameter parsing from validation logic. 102 Check for label_write() failure in _text_pv_write(). 103 Add pvcreate tests and update vgsplit tests to handle lvm1 and lvm2 metadata. 104 Fix pvchange -M1 -u to preserve existing extent locations when there's a VG. 105 Cease recognising snapshot-in-use percentages returned by early devt kernels. 106 Add backward-compatible flags field to on-disk format_text metadata. 107 Fix dmeventd monitoring libraries to link against liblvm2cmd again. (2.02.39) 108 109Version 2.02.39 - 27th June 2008 110================================ 111 Enable readline by default if available. 112 Update autoconf to 2008-01-16. 113 Add $DISTCLEAN_DIRS to make.tmpl.in. 114 Create coverage reports with --enable-profiling and make lcov or lcov-dated. 115 Fix up cache for PVs without mdas after consistent VG metadata is processed. 116 Update validation of safe mirror log type conversions in lvconvert. 117 Fix lvconvert to disallow snapshot and mirror combinations. 118 Fix reporting of LV fields alongside unallocated PV segments. 119 Add --unquoted and --rows to reporting tools. 120 Add and use uninitialized_var() macro to suppress invalid compiler warnings. 121 Introduce enum for md minor sb version to suppress compiler warning. 122 Avoid undefined return value after _memlock manipulation in lvm2_run. 123 Avoid link failure if configured without --enable-cmdlib or --enable-readline. 124 Make clvmd return at once if other nodes down in a gulm or openais cluster. 125 Fix and improve readahead 'auto' calculation for stripe_size. 126 Fix lvchange output for -r auto setting if auto is already set. 127 Add test case for readahead. 128 Avoid ambiguous use of identifier error_message_produced. 129 Begin syncing configure.in for merge/unification with device-mapper. 130 Fix add_mirror_images not to dereference uninitialized log_lv upon failure. 131 Don't call openlog for every debug line output by clvmd. 132 Add --force to lvextend and lvresize. 133 Fix vgchange not to activate component mirror volumes directly. 134 Fix test directory clean up in make distclean. 135 136Version 2.02.38 - 11th June 2008 137================================ 138 Fix tracking of validity of PVs with no mdas in lvmcache. 139 Fix return values for reporting commands when run with no PVs, LVs, or VGs. 140 Add omitted unlock_vg() call when sigint_caught() during vg processing. 141 Fix free_count when reading pool metadata. 142 Fix segfault when using pvcreate on a device containing pool metadata. 143 Fix segfault after _free_vginfo by remembering to remove vginfo from list. 144 Tweak detection of invalid fid after changes to PVs in VG in _vg_read. 145 Revert assuming precommitted metadata is live when activating (unnecessary). 146 Drop cached metadata for disappearing VG in vgmerge. 147 In script-processing mode, stop if any command fails. 148 Warn if command exits with non-zero status code without a prior log_error. 149 Check lv_count in vg_validate. 150 Add --nameprefixes to reporting tools for field name prefix output format. 151 152Version 2.02.37 - 6th June 2008 153=============================== 154 Make clvmd-cman use a hash rather than an array for node updown info. 155 Correct config file line numbers in messages when parsing comments. 156 Drop cached metadata when renaming a VG. 157 Allow for vginfo changing during _vg_read. 158 Decode numbers in clvmd debugging output. 159 Add missing deactivation after activation failure in lvcreate -Zy. 160 When activating, if precommitted metadata is still cached, assume it's live. 161 When removing LV symlinks, skip any where the VG name is not determined. 162 Drop metadata cache if update fails in vg_revert or vg_commit. 163 Avoid spurious duplicate VG messages referring to VGs that are gone. 164 Drop dev_name_confirmed error message to debug level. 165 Fix setpriority error message to signed int. 166 Temporarily disable dmeventd mirror monitoring during lvchange --resync. 167 Refactor some vginfo manipulation code. 168 Add assertions to trap deprecated P_ and V_ lock usage. 169 Add missing mutex around clvmd lvmcache_drop_metadata library call. 170 Fix uninitialised mutex in clvmd if all daemons are not running at startup. 171 Avoid using DLM locks with LCK_CACHE type P_ lock requests. 172 When asked to drop cached committed VG metadata, invalidate cached PV labels. 173 Drop metadata cache before writing precommitted metadata instead of after. 174 Don't touch /dev in vgrename if activation is disabled. 175 176Version 2.02.36 - 29th April 2008 177================================= 178 Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. 179 Fix lvresize to pass new size to fsadm when extending device. 180 Remove unused struct in clvmd-openais, and use correct node count. 181 Fix nodes list in clvmd-openais, and allow for broadcast messages. 182 Exclude VG_GLOBAL from internal concurrent VG lock counter. 183 Fix vgsplit internal counting of snapshot LVs. 184 Fix vgmerge snapshot_count when source VG contains snapshots. 185 Simplify clvmd-openais by using non-async saLckResourceLock. 186 Fix internal LV counter when a snapshot is removed. 187 Fix metadata corruption writing lvm1-formatted metadata with snapshots. 188 Fix lvconvert -m0 allocatable space check. 189 190Version 2.02.35 - 15th April 2008 191================================= 192 Drop cached VG metadata before and after committing changes to it. 193 Rename P_global to P_#global. 194 Don't attempt remote metadata backups of non-clustered VGs. (2.02.29) 195 Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34) 196 Update vgsplit tests to verify loosening of active LV restriction. 197 Update vgsplit to only restrict split with active LVs involved in split. 198 Add lv_is_active() to determine whether an lv is active. 199 200Version 2.02.34 - 10th April 2008 201================================= 202 Improve preferred_names lvm.conf example. 203 Fix vgdisplay 'Cur LV' field to match lvdisplay output. 204 Fix lv_count report field to exclude hidden LVs. 205 Add vg_is_clustered() helper function. 206 Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. 207 Update vgsplit tests for lvnames on the cmdline. 208 Update vgsplit man page to reflect lvnames on the cmdline. 209 Update vgsplit to take "-n LogicalVolumeName" on the cmdline. 210 Use clustered mirror log with pvmove in clustered VGs, if available. 211 Fix some pvmove error status codes. 212 Fix vgsplit error paths to release vg_to lock. 213 Indicate whether or not VG is clustered in vgcreate log message. 214 Mention default --clustered setting in vgcreate man page. 215 Add config file overrides to clvmd when it reads the active LVs list. 216 Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. 217 Add (empty) orphan VGs to lvmcache during initialisation. 218 Fix orphan VG name used for format_pool. 219 Create a fid for internal orphan VGs. 220 Update lvmcache VG lock state for all locking types now. 221 Fix output if overriding command_names on cmdline. 222 Add detection of clustered mirror log capability. 223 Add check to vg_commit() ensuring VG lock held before writing new VG metadata. 224 Add validation of LV name to pvmove -n. 225 Make clvmd refresh the context correctly when lvm.conf is updated. 226 Add some basic internal VG lock validation. 227 Add per-command flags to control which commands use the VG metadata cache. 228 Fix vgsplit locking of new VG (2.02.30). 229 Avoid erroneous vgsplit error message for new VG. (2.02.29) 230 Suppress duplicate message when lvresize fails because of invalid vgname. 231 Cache VG metadata internally while VG lock is held. 232 Fix redundant lvresize message if vg doesn't exist. 233 Fix another allocation bug with clvmd and large node IDs. 234 Add find_lv_in_lv_list() and find_pv_in_pv_list(). 235 Fix uninitialised variable in clvmd that could cause odd hangs. 236 Add vgmerge tests. 237 Add pvseg_is_allocated() for identifying a PV segment allocated to a LV. 238 Add list_move() for moving elements from one list to another. 239 Add 'is_reserved_lvname()' for identifying hidden LVs. 240 Correct command name in lvmdiskscan man page. 241 clvmd no longer crashes if it sees nodeids over 50. 242 Fix potential deadlock in clvmd thread handling. 243 Refactor text format initialisation into _init_text_import. 244 Escape double quotes and backslashes in external metadata and config data. 245 Add functions for escaping double quotes in strings. 246 Rename count_chars_len to count_chars. 247 Use return_0 in a couple more places. 248 Correct a function name typo in _line_append error message. 249 Include limits.h in clvmd so it compiles with newer headers. 250 Add VirtIO disks (virtblk) to filters. 251 Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV. (2.02.30) 252 Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30) 253 Add missing no-longer-used segs_using_this_lv test to check_lv_segments. 254 Remove redundant non-NULL tests before calling free in clvmd.c. 255 Avoid a compiler warning: make is_orphan's parameter const. 256 Fix lvconvert detection of mirror conversion in progress. (2.02.30) 257 Avoid automatic lvconvert polldaemon invocation when -R specified. (2.02.30) 258 Fix 'pvs -a' to detect VGs of PVs without metadata areas. 259 Divide up internal orphan volume group by format type. 260 Update usage message for clvmd. 261 Fix clvmd man page not to print <br> and clarified debug options. 262 Fix lvresize to support /dev/mapper prefix in the LV name. 263 Fix unfilled parameter passed to fsadm from lvresize. 264 Update fsadm to call lvresize if the partition size differs (with option -l). 265 Fix fsadm to support VG/LV names. 266 267Version 2.02.33 - 31st January 2008 268=================================== 269 Fix mirror log name construction during lvconvert. (2.02.30) 270 Make monitor_dev_for_events recurse through the stack of LVs. 271 Clean up some more compiler warnings. 272 Some whitespace tidy-ups. 273 Use stack return macros throughout. 274 Rely upon internally-cached PV labels while corresponding VG lock is held. 275 276Version 2.02.32 - 29th January 2008 277=================================== 278 Fix two check_lv_segments error messages to show whole segment. 279 Refactor mirror log attachment code. 280 Fix internal metadata corruption in lvchange --resync. (2.02.30) 281 Fix new parameter validation in vgsplit and test mode. (2.02.30) 282 Remove redundant cnxman-socket.h file from clvmd directory. 283 Fix pvs, vgs, lvs error exit status on some error paths. 284 285Version 2.02.31 - 19th January 2008 286=================================== 287 Fix lvcreate --nosync not to wait for non-happening sync. (2.02.30) 288 Add very_verbose lvconvert messages. 289 Avoid readahead error message with default setting of lvcreate -M1. (2.02.29) 290 291Version 2.02.30 - 17th January 2008 292=================================== 293 Set default readahead to twice maximium stripe size. 294 Reinstate VG extent size and stripe size defaults (halved). (2.02.29) 295 Add lists of stacked LV segments using each LV to the internal metadata. 296 Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes. 297 Fix process_all_pvs to detect non-orphans with no MDAs correctly. 298 Don't use block_on_error with mirror targets version 1.12 and above. 299 Update vgsplit to accept vgcreate options when new VG is destination. 300 Update vgsplit to accept existing VG as destination. 301 lvconvert waits for completion of initial sync by default. 302 Refactor vgcreate for parameter validation and add tests. 303 Add new convert_lv field to lvs output. 304 Print warning when lvm tools are running as non-root. 305 Add snapshot dmeventd library (enables dmeventd snapshot monitoring). 306 Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs. 307 Fix a segfault if using pvs with --all argument. (2.02.29) 308 Update --uuid argument description in man pages. 309 Fix vgreduce PV list processing not to process every PV in the VG. (2.02.29) 310 Extend lvconvert to use polldaemon. 311 Add support for stacked mirrors. 312 Major restructuring of pvmove and lvconvert layer manipulation code. 313 Replace tools/fsadm with scripts/fsadm.sh. 314 Append fields to report/pvsegs_cols_verbose. 315 Permit LV segment fields with PV segment reports. 316 Add seg_start_pe and seg_pe_ranges to reports. 317 318Version 2.02.29 - 5th December 2007 319=================================== 320 Make clvmd backup vg metadata on remote nodes. 321 Refactor pvmove allocation code. 322 Decode cluster locking state in log message. 323 Change file locking state messages from debug to very verbose. 324 Fix --addtag to drop @ prefix from name. 325 Stop clvmd going haywire if a pre_function fails. 326 Convert some vg_reads into vg_lock_and_reads. 327 Avoid nested vg_reads when processing PVs in VGs and fix associated locking. 328 Accept sizes with --readahead argument. 329 Store size arguments as sectors internally. 330 Attempt to remove incomplete LVs with lvcreate zeroing/activation problems. 331 Add read_ahead activation code. 332 Add activation/readahead configuration option and FMT_RESTRICTED_READAHEAD. 333 Extend readahead arg to accept "auto" and "none". 334 Add lv_read_ahead and lv_kernel_read_ahead fields to reports and lvdisplay. 335 Prevent lvconvert -s from using same LV as origin and snapshot. 336 Fix human-readable output of odd numbers of sectors. 337 Add pv_mda_free and vg_mda_free fields to reports for raw text format. 338 Add LVM2 version to 'Generated by' comment in metadata. 339 Show 'not usable' space when PV is too large for device in pvdisplay. 340 Ignore and fix up any excessive device size found in metadata. 341 Fix error message when fixing up PV size in lvm2 metadata (2.02.11). 342 Fix orphan-related locking in pvdisplay and pvs. 343 Fix missing VG unlocks in some pvchange error paths. 344 Add some missing validation of VG names. 345 Rename validate_vg_name() to validate_new_vg_name(). 346 Change orphan lock to VG_ORPHANS. 347 Change format1 to use ORPHAN as orphan VG name. 348 Convert pvchange, pvdisplay, pvscan to use is_orphan() 349 Add is_orphan_vg() and change all hard-coded checks to use it. 350 Detect md superblocks version 1.0, 1.1 and 1.2. 351 Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths. 352 Add pv_dev_name() to access PV device name. 353 Add const attributes to pv accessor functions. 354 Refactor vg_add_snapshot() and lv_create_empty(). 355 Handle new sysfs subsystem/block/devices directory structure. 356 Run test with LVM_SYSTEM_DIR pointing to private root and /dev dirs. 357 Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries. 358 Fix underquotations in lvm_dump.sh. 359 Refactor lvcreate stripe and mirror parameter validation. 360 Print --help output to stdout, not stderr. 361 After a cmdline processing error, don't print help text but suggest --help. 362 Add %PVS extents option to lvresize, lvextend, and lvcreate. 363 Add 'make check' to run tests in new subdirectory 'test'. 364 Moved the obsolete test subdirectory to old-tests. 365 Cope with relative paths in configure --with-dmdir. 366 Remove no-longer-correct restrictions on PV arg count with stripes/mirrors. 367 Fix strdup memory leak in str_list_dup(). 368 Link with -lpthread when static SELinux libraries require that. 369 Detect command line PE values that exceed their 32-bit range. 370 Include strerror string in dev_open_flags' stat failure message. 371 Move guts of pvresize into library. 372 Avoid error when --corelog is provided without --mirrorlog. (2.02.28) 373 Correct --mirrorlog argument name in man pages (not --log). 374 Clear MIRROR_NOTSYNCED LV flag when converting from mirror to linear. 375 Modify lvremove to prompt for removal if LV active on other cluster nodes. 376 Add '-f' to vgremove to force removal of VG even if LVs exist. 377 378Version 2.02.28 - 24th August 2007 379================================== 380 Fix clvmd logging so you can get lvm-level debugging out of it. 381 Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R. 382 Change locking_flags from int to uint32_t. 383 Fix clvmd -R, so it fully refreshes the caches. 384 Change lvconvert_mirrors to use mirror segtype not striped. 385 Fix lvconvert_mirrors detection of number of existing mirrors. 386 Clean up numerous compiler warnings that appeared in recent releases. 387 Remove several unused parameters from _allocate(). 388 Only permit --force, --verbose and --debug arguments to be repeated. 389 Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 390 Move guts of vgremove and lvremove into library, including yes_no_prompt. 391 Allow clvmd debug to be turned on in a running daemon using clvmd -d [-C]. 392 Update to use autoconf 2.61, while still supporting 2.57. 393 Add more cluster info to lvmdump. 394 Add further const attributes throughout. 395 Add support for renaming mirrored LVs. 396 Factor out core of lvrename() to library function. 397 Add --mirrorlog argument to specify log type for mirrors. 398 Don't attempt to monitor devices if their creation failed in _lv_activate. 399 Don't leak a file descriptor in fcntl_lock_file() when fcntl fails. 400 Replace create_dir with dm_create_dir. 401 Detect stream write failure reliably with lvm_fclose using dm_fclose. 402 Fix clvmd if compiled with gulm support. (2.02.26) 403 Fix lvdisplay man page to say LV size is reported in sectors, not KB. 404 Add vg_lock_and_read() external library function. 405 Fix loading of persistent cache if cache_dir is used. (2.02.23) 406 Reduce _compare_paths lstat error message from log_error to log_very_verbose. 407 Create util.h with last_path_component replacing strdup + basename. 408 Use gcc's printf attribute wherever possible. 409 In _line_append, use "sizeof buf - 1" rather than equivalent "4095". 410 Introduce is_same_inode macro, now including a comparison of st_dev. 411 Don't leak a file descriptor in _lock_file() when flock fails. 412 Add SUN's LDOM virtual block device (vdisk) and ps3disk to filters. 413 Split metadata-external.h out from metadata.h for the tools to use. 414 415Version 2.02.27 - 17th July 2007 416================================ 417 Fix snapshot cow area deactivation if origin is not active. (2.02.13) 418 Fix configure libdevmapper.h check when --with-dmdir is used. 419 Turn _add_pv_to_vg() into external library function add_pv_to_vg(). 420 Add pv_by_path() external library function. 421 Tidy clvmd-openais of redundant bits, and improve an error report. 422 Cope with find_seg_by_le() failure in check_lv_segments(). 423 Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint. 424 Add vg_mda_count and pv_mda_count columns to reports. 425 Fix dumpconfig to use log_print instead of stdout directly. 426 Remove unused parameter 'fid' from _add_pv_to_vg. 427 Add kernel and device-mapper targets versions to lvmdump. 428 Replace BSD (r)index with C89 str(r)chr. 429 Handle vgsplit of an entire VG as a vgrename. 430 Reinitialise internal lvmdiskscan variables when called repeatedly. 431 Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23) 432 Add vg_status function and clean up vg->status in tools directory. 433 Add --ignoremonitoring to disable all dmeventd interaction. 434 Remove get_ prefix from get_pv_* functions. 435 clvmd-openais now uses cpg_local_get() to get nodeid, rather than Clm. 436 Print warnings to stderr instead of stdout. 437 438Version 2.02.26 - 15th June 2007 439================================ 440 Update vgcfgrestore man page. 441 Allow keyboard interrupt during user prompts when appropriate. 442 Remove unused clvmd system-lv code. 443 Replace many physical_volume struct dereferences with new get_pv_* functions. 444 Suppress a benign compile-time warning. 445 Convert find_pv_in_vg_by_uuid and pv_create to use PV handles. 446 Add wrappers to some functions in preparation for external LVM library. 447 Add -f to vgcfgrestore to list metadata backup files. 448 Add vg_check_status to consolidate vg status checks and error messages. 449 Add pvdisplay --maps implementation. 450 Remove unsupported LVM1 options from vgcfgrestore man page. 451 Update vgcfgrestore man page to show mandatory VG name. 452 Update vgrename man page to include UUID and be consistent with lvrename. 453 Add (experimental) OpenAIS support to clvmd. 454 Fix deactivation code to follow dependencies and remove symlinks. 455 Fix and clarify vgsplit error messages. 456 Fix a segfault in device_is_usable() if a device has no table. 457 Add some more debug messages to clvmd startup. 458 Misc clvmd cleanups. 459 460Version 2.02.25 - 27th April 2007 461================================= 462 Fix get_config_uint64() to read a 64-bit value not a 32-bit one. 463 Add -Wformat-security and change one fprintf() to fputs(). 464 Move regex functions into libdevmapper. 465 Change some #include lines to search only standard system directories. 466 Add devices/preferred_names config regex list for displayed device names. 467 Free a temporary dir string in fcntl_lock_file() after use. 468 Fix a dm_pool_destroy() in matcher_create(). 469 Introduce goto_bad macro. 470 Fix warnings on x86_64 involving ptrdiff_t in log_error messages. 471 Update pvck to include text metadata area and record detection. 472 Add support functions for token counting in config file extracts. 473 Update pvck to read labels on disk, with --labelsector parameter. 474 Add count_chars and count_chars_len functions. 475 Add /sys/block listings to lvm_dump.sh. 476 Make lvm_dump.sh list /dev recursively. 477 Fix thread race in clvmd. 478 Add scan_sector param to label_read and _find_labeller. 479 Make clvmd cope with quorum devices. 480 Add extra internal error checking to clvmd. 481 Add dev_read_circular. 482 Add pvck command stub. 483 Update lists of attribute characters in man pages. 484 Change cling alloc policy attribute character from 'C' to l'. 485 Fix creation and conversion of mirrors with tags. 486 Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata). 487 Split metadata areas in vgsplit properly. 488 489Version 2.02.24 - 19th March 2007 490================================= 491 Fix processing of exit status in init scripts 492 Fix vgremove to require at least one vg argument. 493 Fix reading of striped LVs in LVM1 format. 494 Flag nolocking as clustered so clvmd startup sees clustered LVs. (2.02.10) 495 Add a few missing pieces of vgname command line validation. 496 Support the /dev/mapper prefix on most command lines. 497 498Version 2.02.23 - 8th March 2007 499================================ 500 Fix vgrename active LV check to ignore differing vgids. 501 Remove no-longer-used uuid_out parameter from activation info functions. 502 Fix two more segfaults if an empty config file section encountered. 503 Move .cache file into a new /etc/lvm/cache directory by default. 504 Add devices/cache_dir & devices/cache_file_prefix, deprecating devices/cache. 505 Create directory in fcntl_lock_file() if required. 506 Exclude readline support from lvm.static. 507 Fix a leak in a reporting error path (2.02.19). 508 509Version 2.02.22 - 13th February 2007 510==================================== 511 Correct -b and -P on a couple of man pages. 512 Add global/units to example.conf. 513 Fix loading of segment_libraries. 514 If a PV reappears after it was removed from its VG, make it an orphan. 515 Don't update metadata automatically if VGIDs don't match. 516 Fix some vgreduce --removemissing command line validation. 517 518Version 2.02.21 - 30th January 2007 519=================================== 520 Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring. 521 Fix vgsplit to handle mirrors. 522 Reorder fields in reporting field definitions. 523 Fix vgs to treat args as VGs even when PV fields are displayed. 524 Fix md signature check to handle both endiannesses. 525 526Version 2.02.20 - 25th January 2007 527=================================== 528 dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors. 529 Add devices/ignore_suspended_devices to ignore suspended dm devices. 530 Add some missing close() and fclose() return code checks. 531 Fix exit statuses of reporting tools (2.02.19). 532 Add init script for dmeventd monitoring. 533 lvm.static no longer interacts with dmeventd unless explicitly asked to. 534 Add field definitions to report help text. 535 Remove unnecessary cmd arg from target_*monitor_events(). 536 Add private variable to dmeventd shared library interface. 537 Long-lived processes write out persistent dev cache in refresh_toolcontext(). 538 Fix refresh_toolcontext() always to wipe persistent device filter cache. 539 Add is_long_lived to toolcontext. 540 Add --clustered to man pages. 541 Streamline dm_report_field_* interface. 542 Change remaining dmeventd terminology 'register' to 'monitor'. 543 Update reporting man pages. 544 No longer necessary to specify alignment type for report fields. 545 546Version 2.02.19 - 17th January 2007 547=================================== 548 Fix a segfault if an empty config file section encountered. 549 Move basic reporting functions into libdevmapper. 550 Fix partition table processing after sparc changes (2.02.16). 551 Fix cmdline PE range processing segfault (2.02.13). 552 Some libdevmapper-event interface changes. 553 Report dmeventd mirror monitoring status. 554 Fix dmeventd mirror status line processing. 555 556Version 2.02.18 - 11th January 2007 557=================================== 558 Revised libdevmapper-event interface for dmeventd. 559 Remove dmeventd mirror status line word limit. 560 Use CFLAGS when linking so mixed sparc builds can supply -m64. 561 Prevent permission changes on active mirrors. 562 Print warning instead of error message if lvconvert cannot zero volume. 563 Add snapshot options to lvconvert man page. 564 dumpconfig accepts a list of configuration variables to display. 565 Change dumpconfig to use --file to redirect output to a file. 566 Avoid vgreduce error when mirror code removes the log LV. 567 Remove 3 redundant AC_MSG_RESULTs from configure.in. 568 Free memory in _raw_read_mda_header() error paths. 569 Fix ambiguous vgsplit error message for split LV. 570 Fix lvextend man page typo. 571 Add configure --with-dmdir to compile against a device-mapper source tree. 572 Use no flush suspending for mirrors. 573 Add dmeventd_mirror register_mutex, tidy initialisation & add memlock. 574 Fix create mirror with name longer than 22 chars. 575 Fix some activate.c prototypes when compiled without devmapper. 576 Fix dmeventd mirror to cope if monitored device disappears. 577 578Version 2.02.17 - 14th December 2006 579==================================== 580 Add missing pvremove error message when device doesn't exist. 581 When lvconvert allocates a mirror log, respect parallel area constraints. 582 Use loop to iterate through the now-ordered policy list in _allocate(). 583 Check for failure to allocate just the mirror log. 584 Introduce calc_area_multiple(). 585 Support mirror log allocation when there is only one PV: area_count now 0. 586 Fix detection of smallest area in _alloc_parallel_area() for cling policy. 587 Add manpage entry for clvmd -T 588 Fix gulm operation of clvmd, including a hang when doing lvchange -aey 589 Fix hang in clvmd if a pre-command failed. 590 591Version 2.02.16 - 1st December 2006 592=================================== 593 Fix VG clustered read locks to use PR not CR. 594 Adjust some alignments for ia64/sparc. 595 Fix mirror segment removal to use temporary error segment. 596 Always compile debug logging into clvmd. 597 Add startup timeout to RHEL4 clvmd startup script. 598 Add -T (startup timeout) switch to clvmd. 599 Improve lvm_dump.sh robustness. 600 Update lvm2create_initrd to support gentoo. 601 602Version 2.02.15 - 21st November 2006 603==================================== 604 Fix clvmd_init_rhel4 line truncation (2.02.14). 605 Install lvmdump by default. 606 Fix check for snapshot module when activating snapshot. 607 Fix pvremove error path for case when PV is in use. 608 Warn if certain duplicate config file entries are seen. 609 Enhance lvm_dump.sh for sysreport integration and add man page. 610 Fix --autobackup argument which could never disable backups. 611 Fix a label_verify error path. 612 613Version 2.02.14 - 10th November 2006 614==================================== 615 Fix adjusted_mirror_region_size() to handle 64-bit size. 616 Add some missing bounds checks on 32-bit extent counters. 617 Add Petabyte and Exabyte support. 618 Fix lvcreate error message when 0 extents requested. 619 lvremove man page: volumes must be cluster inactive before being removed. 620 Protect .cache manipulations with fcntl locking. 621 Change .cache timestamp comparisons to use ctime. 622 Fix mirror log LV writing to set all bits in whole LV. 623 Fix clustered VG detection and default runlevels in clvmd_init_rhel4. 624 Fix high-level free space check for partial allocations. 625 626Version 2.02.13 - 27th October 2006 627=================================== 628 Add couple of missing files to tools/Makefile CLEAN_TARGETS. 629 When adding snapshot leave cow LV mapped device active after zeroing. 630 Fix a clvmd debug message. 631 Add dev_flush() to set_lv(). 632 Add lvchange --resync. 633 Perform high-level free space check before each allocation attempt. 634 Don't allow a node to remove an LV that's exclusively active on anther node. 635 Cope if same PV is included more than once in cmdline PE range list. 636 Set PV size to current device size if it is found to be zero. 637 Add segment parameter to target_present functions. 638 639Version 2.02.12 - 16th October 2006 640=================================== 641 Fix pvdisplay to use vg_read() for non-orphans. 642 Fall back to internal locking if external locking lib is missing or fails. 643 Retain activation state after changing LV minor number with --force. 644 Propagate clustered flag in vgsplit and require resizeable flag. 645 646Version 2.02.11 - 12th October 2006 647=================================== 648 Add clvmd function to return the cluster name. not used by LVM yet. 649 Add cling allocation policy. 650 Change _check_contiguous() to use _for_each_pv(). 651 Extend _for_each_pv() to allow termination without error. 652 Abstract _is_contiguous(). 653 Remove duplicated pv arg from _check_contiguous(). 654 Accept regionsize with lvconvert. 655 Add report columns with underscore before field names ending 'size'. 656 Correct regionsize default on lvcreate man page (MB). 657 Fix clvmd bug that could cause it to die when a node with a long name crashed. 658 Add device size to text metadata. 659 Fix format_text mda_setup pv->size and pv_setup pe_count calculations. 660 Fix _for_each_pv() for mirror with core log. 661 Add lvm_dump.sh script to create a tarball of debugging info from a system. 662 Capture error messages in clvmd and pass them back to the user. 663 Remove unused #defines from filter-md.c. 664 Make clvmd restart init script wait until clvmd has died before starting it. 665 Add -R to clvmd which tells running clvmds to reload their device cache. 666 Add LV column to reports listing kernel modules needed for activation. 667 Show available fields if report given invalid field. (e.g. lvs -o list) 668 Add timestamp functions with --disable-realtime configure option. 669 Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg. 670 Fix two potential NULL pointer derefs in error cases in vg_read(). 671 Separate --enable-cluster from locking lib options in lvmconf.sh. 672 Add a missing comma in lvcreate man page. 673 674Version 2.02.10 - 19th September 2006 675===================================== 676 Fix lvconvert mirror change case detection logic. 677 Fix mirror log detachment so it correctly becomes a standalone LV. 678 Extend _check_contiguous() to detect single-area LVs. 679 Include mirror log (untested) in _for_each_pv() processing. 680 Use MIRROR_LOG_SIZE constant. 681 Remove struct seg_pvs from _for_each_pv() to generalise. 682 Avoid adding duplicates to list of parallel PVs to avoid. 683 Fix several incorrect comparisons in parallel area avoidance code. 684 Fix segment lengths when flattening existing parallel areas. 685 Log existing parallel areas prior to allocation. 686 Fix mirror log creation when activation disabled. 687 Don't attempt automatic recovery without proper locking. 688 When using local file locking, skip clustered VGs. 689 Add fallback_to_clustered_locking and fallback_to_local_locking parameters. 690 lvm.static uses built-in cluster locking instead of external locking. 691 Don't attempt to load shared libraries if built statically. 692 Change default locking_lib to liblvm2clusterlock.so. 693 Add skip_dev_dir() to process command line VGs. 694 Stop clvmd complaining about nodes that have left the cluster. 695 Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper. 696 Add lvconvert man page. 697 Add mirror options to man pages. 698 Prevent mirror renames. 699 Move CMDLIB code into separate file and record whether static build. 700 701Version 2.02.09 - 17th August 2006 702================================== 703 Fix PE_ALIGN for pagesize over 32KB. 704 Separate out LVM1_PE_ALIGN and pe_align(). 705 Add lvm_getpagesize wrapper. 706 Add --maxphysicalvolumes to vgchange. 707 708Version 2.02.08 - 15th August 2006 709================================== 710 Add checks for duplicate LV name, lvid and PV id before writing metadata. 711 Report all sanity check failures, not just the first. 712 Fix missing lockfs on first snapshot creation. 713 Add unreliable --trustcache option to reporting commands. 714 Fix locking for mimage removal. 715 Fix clvmd_init_rhel4 'status' exit code. 716 717Version 2.02.07 - 17th July 2006 718================================ 719 Fix activation logic in lvchange --persistent. 720 Don't ignore persistent minor numbers when activating. 721 Use RTLD_GLOBAL when loading shared libraries. 722 Add some forgotten memlock checks to _vg_read to protect against full scans. 723 Add mutex to dmeventd_mirror to avoid concurrent execution. 724 Fix vgreduce --removemissing to return success if VG is already consistent. 725 Fix return code if VG specified on command line is not found. 726 Fix PV tools to include orphaned PVs in default output again. 727 Fixed unaligned access when using clvm. 728 Fix an extra dev_close in a label_read error path. 729 Append patches to commit emails. 730 Fix target_register_events args. 731 Prevent snapshots of mirrors. 732 Add DISTCLEAN_TARGETS to make template for configure.h. 733 More fixes to error paths. 734 Fix lvcreate corelog validation. 735 Add --config for overriding most config file settings from cmdline. 736 Quote arguments when printing command line. 737 Remove linefeed from 'initialising logging' message. 738 Add 'Completed' debug message. 739 Don't attempt library exit after reloading config files. 740 Always compile with libdevmapper, even if device-mapper is disabled. 741 742Version 2.02.06 - 12th May 2006 743=============================== 744 Propagate --monitor around cluster. 745 Add --monitor to vgcreate and lvcreate to control dmeventd registration. 746 Filter LCK_NONBLOCK in clvmd lock_vg. 747 Add --nosync to lvcreate with LV flag NOTSYNCED. 748 Use mirror's uuid for a core log. 749 Add mirror log fault-handling policy. 750 Improve mirror warning messages and tidy dmeventd syslog output. 751 Propagate nosync flag around cluster. 752 Allow vgreduce to handle mirror log failures. 753 Add --corelog to lvcreate and lvconvert. 754 Create a log header for replacement in-sync mirror log. 755 Use set_lv() and dev_set() to wipe sections of devices. 756 Add mirror_in_sync() flag to avoid unnecessary resync on activation. 757 Add mirror_library description to example.conf. 758 Fix uuid_from_num() buffer overrun. 759 Make SIZE_SHORT the default for display_size(). 760 Fix some memory leaks in error paths found by coverity. 761 Use C99 struct initialisers. 762 Move DEFS into configure.h. 763 Clean-ups to remove miscellaneous compiler warnings. 764 Improve stripe size validation. 765 Increase maximum stripe size limit to physical extent size for lvm2 metadata. 766 Fix activation code to check for pre-existing mirror logs. 767 Tighten region size validation. 768 Ignore empty strings in config files. 769 Require non-zero regionsize and document parameter on lvcreate man page. 770 Invalidate cache if composition of VG changed externally. 771 772Version 2.02.05 - 21st April 2006 773================================= 774 Fix vgid string termination in recent cache code. 775 776Version 2.02.04 - 19th April 2006 777================================= 778 Check for libsepol. 779 Add some cflow & scope support. 780 Separate out DEFS from CFLAGS. 781 Remove inlines and use unique function names. 782 783Version 2.02.03 - 14th April 2006 784================================= 785 vgrename accepts vgid and exported VG. 786 Add --partial to pvs. 787 When choosing between identically-named VGs, also consider creation_host. 788 Provide total log suppression with 2. 789 Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct. 790 Add vgid to struct physical_volume and pass with vg_name to some functions. 791 If two or more VGs are found with the same name, use one that is not exported. 792 Whenever vgname is captured, also capture vgid and whether exported. 793 Remove an incorrect unlock_vg() from process_each_lv(). 794 Update extent size information in vgchange and vgcreate man pages. 795 Introduce origin_from_cow() and lv_is_visible(). 796 pvremove without -f now fails if there's no PV label. 797 Support lvconvert -s. 798 Suppress locking library load failure message if --ignorelockingfailure. 799 Propagate partial mode around cluster. 800 Fix archive file expiration. 801 Fix dmeventd build. 802 clvmd now uses libcman rather than cman ioctls. 803 clvmd will allow new cman to shutdown on request. 804 805Version 2.02.02 - 7th February 2006 806=================================== 807 Add %.so: %.a make template rule. 808 Switchover library building to use LIB_SUFFIX. 809 Only do lockfs filesystem sync when suspending snapshots. 810 Always print warning if activation is disabled. 811 vgreduce removes mirror images. 812 Add --mirrorsonly to vgreduce. 813 vgreduce replaces active LVs with error segment before removing them. 814 Set block_on_error parameter if available. 815 Add target_version. 816 Add details to format1 'Invalid LV in extent map' error message. 817 Fix lvscan snapshot full display. 818 Bring lvdisplay man page example into line. 819 Add mirror dmeventd library. 820 Add some activation logic to remove_mirror_images(). 821 lvconvert can remove specified PVs from a mirror. 822 lvconvert turns an existing LV into a mirror. 823 Allow signed mirrors arguments. 824 Move create_mirror_log() into toollib. 825 Determine parallel PVs to avoid with ALLOC_NORMAL allocation. 826 Fix lv_empty. 827 828Version 2.02.01 - 23rd November 2005 829==================================== 830 Fix lvdisplay cmdline to accept snapshots. 831 Fix open RO->RW promotion. 832 Fix missing vg_revert in lvcreate error path. 833 834Version 2.02.00 - 10th November 2005 835==================================== 836 Extend allocation areas to avoid overflow with contiguous with other PVs. 837 Stop lvcreate attempting to wipe zero or error segments. 838 Added new lvs table attributes. 839 Separated out activation preload. 840 Moved activation functions into libdevmapper. 841 Fixed build_dm_name. 842 Add return macros. 843 Added xen xvd devices. 844 Clear up precommitted metadata better. 845 A pvresize implementation. 846 Fix contiguous allocation when there are no preceding segments. 847 Add mirror_seg pointer to lv_segment struct. 848 Only keep a device open if it's known to belong to a locked VG. 849 Fix lvdisplay to show all mirror destinations. 850 Replacement suspend code using libdevmapper dependency tree. 851 Add DEFS to make.tmpl. 852 Use dm_is_dm_major instead of local copy. 853 Allow mapped devices to be used as PVs. 854 Move set_selinux_context into libdevmapper. 855 Fix automatic text metadata buffer expansion (using macro). 856 Cache formatted text metadata buffer between metadata area writes. 857 Add pe_start field to pvs. 858 Add 'LVM-' prefix to uuids. 859 Split lv_segment_area from lv_segment to permit extension. 860 Replacement deactivation code using libdevmapper dependency tree. 861 Simplify dev_manager_info(). 862 Attempt to load missing targets using modprobe. 863 Add -a to lvscan. 864 Move mknodes into libdevmapper. 865 Move bitset, hash, pool and dbg_malloc into libdevmapper. 866 867Version 2.01.15 - 16th October 2005 868=================================== 869 Refuse to run pvcreate/pvremove on devices we can't open exclusively. 870 Use ORPHAN lock definition throughout. 871 Validate chunksize in lvcreate. 872 Reduce chunksize limit to 512k. 873 Fix chunksize field in reports. 874 Don't hide snapshots from default 'lvs' output. 875 Add is_dm_major() for use in duplicate device detection in lvmcache_add(). 876 Really switch device number in lvmcache when it says it is doing so. 877 Option for bitset memory allocation using malloc as well as pool. 878 Don't assume exactly two mirrors when parsing mirror status. 879 Suppress fsync() error message on filesystems that don't support it. 880 Fix yes_no_prompt() error handling. 881 Add lvm.conf comment warning against multiple filter lines. 882 Tidy lvmconf.sh. 883 Add format1 dev_write debug messages. 884 Add clustered VG attribute to report. 885 Move lvconvert parameters into struct lvconvert_params. 886 Add clustered VG flag to LV lock requests. 887 Change LV locking macros to take lv instead of lvid. 888 Prepend 'cluster' activation parameter to mirror log when appropriate. 889 Pass exclusive flag to lv_activate and on to target activation code. 890 Prevent snapshot creation in a clustered VG for now. 891 Factor out adjusted_mirror_region_size() and generate_log_name_format(). 892 Move compose_log_line() into mirror directory. 893 Factor out _get_library_path(). 894 Don't kill idling clvmd threads. 895 clvmd no longer takes out locks for non-clustered LVs. 896 Recognise ATA over Ethernet (aoe) devices. 897 898Version 2.01.14 - 4th August 2005 899================================= 900 Fix lvconvert PV parameter in help string. 901 Prevent snapshots getting activated in a clustered VG. 902 Separate out _build_dev_string. 903 Move zero_lv to toollib. 904 Fix pool format handler to work with pv segment code. 905 906Version 2.01.13 - 13th July 2005 907================================ 908 Fix pvmove segment splitting. 909 Abstract vg_validate. 910 Only make one attempt at contiguous allocation. 911 Fix lvm1 format metadata read. 912 Fix lvm1 format non-mirror lvcreate. 913 914Version 2.01.12 - 14th June 2005 915================================ 916 Various allocation-related pvmove fixes. 917 Log an error if clvmd can't resolve a host name got from CCS. 918 Fix potential spin loop in clvmd. 919 920Version 2.01.11 - 13th June 2005 921================================ 922 Added lvmconf.sh. 923 Use matchpathcon mode parameter. 924 Don't defer closing dead FDs in clvmd. 925 Remove hard-coded 64k text metadata writing restriction. 926 Make VG name restrictions consistent. 927 Introduce lvconvert. So far only removes mirror images. 928 Allow mirror images to be resized. 929 Allow mirror images to have more than one segment. 930 Centralise restrictions on LV names. 931 Always insert an intermediate layer for mirrors. 932 Suppress hidden LVs from reports unless --all is given. 933 Use square brackets for hidden LVs in reports. 934 Allow the creation of mirrors with contiguous extents. 935 Always perform sanity checks against metadata before committing it to disk. 936 Split lv_extend into two steps: choosing extents + allocation to LV(s). 937 Add mirror log region size to metadata. 938 Use list_iterate_items throughout and add list*back macros. 939 Introduce seg_ macros to access areas. 940 Add segtype_is_ macros. 941 Support tiny metadata areas for pool conversions. 942 Mirror activation handles disk log as well as core. 943 Activation code recognises mirror log dependency. 944 Add mirror_log and regionsize fields to report. 945 Fix non-orphan pvchange -u. 946 Fix vgmerge to handle duplicate LVIDs. 947 Move archiver code from tools into library. 948 vgscan/change/display/vgs automatically create metadata backups if needed. 949 Merge cloned allocation functions. 950 Fix contiguous allocation policy with linear. 951 Cope with missing format1 PVs again. 952 Remove lists of free PV segments. 953 Simplify pv_maps code and remove slow bitset algorithm. 954 Red-Hat-ify the clvmd rhel4 initscript. 955 %Zu->%zu 956 Fix loopfiles alias alloc & mem debugging. 957 Un-inline dbg_strdup. 958 lv_reduce tidying. 959 Remove some unnecessary parameters. 960 Introduce seg_is macros. 961 962Version 2.01.10 - 3rd May 2005 963============================== 964 Don't create backup and archive dirs till needed. 965 Reinstate full PV size when removing from VG. 966 Support loopfiles for testing. 967 Tidy lv_segment interface. 968 pv_segment support. 969 vgchange --physicalextentsize 970 Internal snapshot restructuring. 971 Remove unused internal non-persistent snapshot option. 972 Allow offline extension of snapshot volumes. 973 Move from 2-step to 3-step on-disk metadata commit. 974 Scan ramdisks too and allow non-O_DIRECT fallback. 975 Annotate, tidy and extend list.h. 976 Alignment tidying. 977 Make clvmd work around some "bugs" in gulm's node state notifications. 978 Tidy clvmd's SIGHUP handler 979 980Version 2.01.09 - 4th April 2005 981================================ 982 Add --ignorelockingfailure to vgmknodes. 983 clvmd: Don't allow user operations to start until the lvm thread is fully up. 984 clvmd-gulm: set KEEPALIVE on sockets. 985 986Version 2.01.08 - 22nd March 2005 987================================= 988 Add clustered attribute so vgchange can identify clustered VGs w/o locking. 989 Improve detection of external changes affecting internal cache. 990 Add 'already in device cache' debug message. 991 Add -a to pvdisplay -C. 992 Avoid rmdir opendir error messsages when dir was already removed. 993 Tighten signal handlers. 994 Avoid some compiler warnings. 995 Additional rename failure error message. 996 read/write may be macros. 997 clvmd: don't take out lvm thread lock at startup, it only protects jobs list. 998 999Version 2.01.07 - 8th March 2005 1000================================ 1001 Cope with new devices appearing by rescanning /dev if a uuid can't be found. 1002 Remove DESTDIR from LVM_SHARED_PATH. 1003 clvmd fixes: make FDs close-on-exec 1004 gulm unlocks VG & orphan locks at startup in case they are stale 1005 gulm now unlocks VG & orphan locks if client dies. 1006 1007Version 2.01.06 - 1st March 2005 1008================================ 1009 Suppress 'open failed' error messages during scanning. 1010 Option to suppress warnings of file descriptors left open. 1011 Fix default value of metadatacopies in documentation (2->1). 1012 Fix clvmd-gulm locking. 1013 ./configure --enable-debug now enables debugging code in clvmd. 1014 Fix clvmd-gulm node up/down code so it actually works. 1015 clvmd-gulm now releases locks when shut down. 1016 1017Version 2.01.05 - 18th February 2005 1018==================================== 1019 Static binary invokes dynamic binary if appropriate. 1020 Make clvmd config check a little more tolerant. 1021 gulm clvmd can now cope with >1 message arriving in a TCP message. 1022 1023Version 2.01.04 - 9th February 2005 1024=================================== 1025 Add fixed offset to imported pool minor numbers. 1026 Update binary pathnames in clvmd_init_rhel4. 1027 lvm2cmd.so should skip the check for open fds. 1028 Remove unused -f from pvmove. 1029 Gulm clvmd doesn't report "connection refused" errors. 1030 clvmd does a basic config file sanity check at startup. 1031 Fix potential thread shutdown race in clvmd. 1032 1033Version 2.01.03 - 1st February 2005 1034=================================== 1035 More 64-bit display/report fixes. 1036 More informative startup mesg if can't create /etc/lvm. 1037 Fix snapshot device size bug (since 2.01.01). 1038 clvmd announces startup and cluster connection in syslog. 1039 Gulm clvmd doesn't hang trying to talk to a rebooted node. 1040 Gulm clvmd doesn't print cman error on startup. 1041 1042Version 2.01.02 - 21st January 2005 1043=================================== 1044 Update clvmd_init_rhel4: use lvm.static and don't load dlm. 1045 Fix some size_t printing. 1046 Fix 64 bit xlate consts. 1047 Split out pool sptype_names to avoid unused const. 1048 Always fail if random id generation fails. 1049 Recognise gnbd devices. 1050 Fix clvmd startup bug introduced in cman/gulm amalgamation. 1051 Improve reporting of node-specific locking errors. 1052 1053Version 2.01.01 - 19th January 2005 1054=================================== 1055 Fix clvmd lv_info_by_lvid open_count. 1056 Store snapshot and origin sizes separately. 1057 Update vgcreate man page. 1058 1059Version 2.01.00 - 17th January 2005 1060=================================== 1061 Fix vgscan metadata auto-correction. 1062 Only ask libdevmapper for open_count when we need it. 1063 Adjust RHEL4 clvmd init script priority. 1064 Enable building of CMAN & GULM versions of clvmd into a single binary 1065 1066Version 2.00.33 - 7th January 2005 1067================================== 1068 pvcreate wipes first 4 sectors unless given --zero n. 1069 gulm clvmd now uses new ccsd key names. 1070 gulm clvmd now doesn't ignore the first node in cluster.conf 1071 Improve clvmd failure message if it's already running. 1072 Allow user to kill clvmd during initialisation. 1073 Fix off-by-one error in cluster_locking that could cause read hangs. 1074 1075Version 2.00.32 - 22nd December 2004 1076==================================== 1077 Drop static/dl restriction for now. 1078 Fix an error fprintf. 1079 Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now. 1080 Fix device reference counting on re-opens. 1081 Ignore sysfs symlinks when DT_UNKNOWN. 1082 Add clvmd init script for RHEL4. 1083 Skip devices that are too small to be PVs. 1084 Fix pvchange -x segfault with lvm2-format orphan. 1085 Cope with empty msdos partition tables. 1086 Add CONTRIBUTORS file. 1087 1088Version 2.00.31 - 12th December 2004 1089==================================== 1090 Reopen RO file descriptors RW if necessary. 1091 1092Version 2.00.30 - 10th December 2004 1093==================================== 1094 Additional device-handling debug messages. 1095 Additional verbosity level -vvvv includes line numbers and backtraces. 1096 Verbose messages now go to stderr not stdout. 1097 Close any stray file descriptors before starting. 1098 Refine partitionable checks for certain device types. 1099 Allow devices/types to override built-ins. 1100 Fix lvreduce man page .i->.I 1101 Fix vgsplit man page title. 1102 Fix clvmd man makefile. 1103 Extend dev_open logging. 1104 Make clvmd_fix_conf.sh UNDOable. 1105 1106Version 2.00.29 - 27th November 2004 1107==================================== 1108 xlate compilation fix. 1109 1110Version 2.00.28 - 27th November 2004 1111==================================== 1112 Fix partition table & md signature detection. 1113 Minor configure/makefile tidy. 1114 Export version.h from tools for clvmd. 1115 1116Version 2.00.27 - 24th November 2004 1117==================================== 1118 Trap large memory allocation requests. 1119 Fix to partition table detection code. 1120 Improve filter debug mesgs. 1121 Make clvmd_fix_conf.sh UNDOable 1122 1123Version 2.00.26 - 23rd November 2004 1124==================================== 1125 Improve pool debugging stats. 1126 Detect partition table signature. 1127 pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.) 1128 Separate out md superblock detection code. 1129 Prevent snapshot origin resizing. 1130 Improve a vgremove error message. 1131 Update some man pages. 1132 Allow y/n with -ae args (exclusive activation). 1133 Fixes to lvcreate vgname parsing. 1134 Fix dm_name string size calculation. 1135 Improve clvmd error reporting during startup. 1136 Make clvmd cope with large gaps in node numbers IDs. 1137 Make clvmd initialisation cope better with debugging output. 1138 Tidy clvmd socket callbacks so all work happens outside main loop. 1139 clvmd -V now displays lvm version too. 1140 Add optional gulm build for clvmd 1141 1142Version 2.00.25 - 29th September 2004 1143===================================== 1144 Fix return code from rm_link for vgmknodes. 1145 Make clvmd LV hash table thread-safe. 1146 Fix clvmd locking so it will lock out multiple users on the same node. 1147 Fix clvmd VG locking to it can cope with multiple VG locks. 1148 Remove spurious trailing dot in lvreduce man page. 1149 Fix vgremove locking. 1150 1151Version 2.00.24 - 16th September 2004 1152===================================== 1153 Fix pool_empty so it really does empty the memory pool. 1154 Rename old segtypes files to segtype. 1155 Some fixes to memory debugging code. 1156 Exclude internal commands formats & segtypes from install. 1157 1158Version 2.00.23 - 15th September 2004 1159===================================== 1160 Export dm name build & split functions. 1161 Use O_NOATIME on devices if available. 1162 Write log message when each segtype/format gets initialised. 1163 New commands 'segtypes' and 'formats'. 1164 Suppress pvmove abort message in test mode. 1165 Improve pvcreate/remove device not found error message. 1166 Allow pvmove to move data within the same PV. 1167 Describe how pvmove works on man page. 1168 Test for incompatible format/segtype combinations in lv_extend. 1169 Fix lvchange example on man page. 1170 1171Version 2.00.22 - 3rd September 2004 1172==================================== 1173 Fix /dev/vgname perms. 1174 Restructure xlate.h. 1175 Add clvmd man page. 1176 1177Version 2.00.21 - 19th August 2004 1178================================== 1179 Update cnxman-socket.h from cman. 1180 Recognise iseries/vd devices. 1181 Use 'make install_cluster' to install cluster extensions only. 1182 Cope with DT_UNKNOWN in sysfs. 1183 Fix extents_moved metadata size comment. 1184 Remove duplicate line in pvremove help text. 1185 Support variable mirror region size. 1186 Support PE ranges in pvmove source PV. 1187 Fixes to as-yet-unused LV segment splitting code. 1188 Change alloc_areas to pe_ranges and allow suppression of availability checks. 1189 Add dev_size column to pvs. 1190 Add report columns for in-kernel device number. 1191 1192Version 2.00.20 - 3 July 2004 1193============================= 1194 More autoconf fixes. 1195 Fix device number handling for 2.6 kernels. 1196 1197Version 2.00.19 - 29 June 2004 1198============================== 1199 Reduce severity of setlocale failure message. 1200 Recognise argv[0] "initrd-lvm" (pld-linux). 1201 Make -O2 configurable. 1202 Added --disable-selinux to configure script. 1203 LD_FLAGS->LDFLAGS & LD_DEPS->LDDEPS in configure script. 1204 Add init_debug to clvmd. 1205 1206Version 2.00.18 - 24 June 2004 1207============================== 1208 Fix vgchange activation. 1209 Add cluster support. 1210 1211Version 2.00.17 - 20 June 2004 1212============================== 1213 configure --enable-fsadm to try out fsadm. fsadm is not tested yet. 1214 Display all filtered devices, not just PVs, with pvs -a. 1215 Fix sync_dir() when no / in filename 1216 vgcfgbackup -f accepts template with %s for VG name. 1217 Extend hash functions to handle non-null-terminated data. 1218 Add local activation support. 1219 Tidy relative paths in makefile includes. 1220 fsadm support for fsck and resizing - needs testing. 1221 Add read-only GFS pool support. 1222 Add lvm2create_initrd script from http://poochiereds.net/svn/lvm2/ 1223 Fix rounding of large diplayed sizes. 1224 Suppress decimal point when using units of sectors/bytes. 1225 Additional kernel target checks before pvmove & snapshot creation. 1226 Add i2o_block. 1227 1228Version 2.00.16 - 24 May 2004 1229============================= 1230 Set area_count within alloc_lv_segment. 1231 Remove error labels from lvresize. 1232 Fix a pvs error path. 1233 xxchange -ae for exclusive activation. 1234 Don't return non-zero status if there aren't any volume groups. 1235 Add --alloc argument to tools. 1236 Rename allocation policies to contiguous, normal, anywhere, inherit. 1237 nextfree becomes normal; anywhere isn't implemented yet. 1238 LV inherits allocation policy from VG. Defaults: LV - inherit; VG - normal 1239 Additional status character added to vgs to indicate allocation policy. 1240 Add reset_fn to external_locking. 1241 Ensure presence of virtual targets before attempting activating. 1242 Attempt to fix resizing of snapshot origins. 1243 Restructure lvresize, bringing it closer to lvcreate. 1244 A quick sanity check on vg_disk struct when read in. More checks needed. 1245 Only include visible LVs in active/open counts. 1246 Add virtual segment types, zero and error. A large sparse device can be 1247constructed as a writeable snapshot of a large zero segment. 1248 Add --type to lvcreate/resize. 1249 Push lv_create & alloc policy up to tool level. 1250 Fix pvdisplay return code. 1251 Detect invalid LV names in arg lists. 1252 Reporting uses line-at-a-time output. 1253 lvm2 format sets unlimited_vols format flag. 1254 Internal-only metadata flag support. 1255 Basic checking for presence of device-mapper targets. 1256 Separate out polldaemon. 1257 Revise internal locking semantics. 1258 Move find_pv_by_name to library. 1259 Rename move->copy. 1260 Add devices to segments report. 1261 Begin separating out segment code. There's a lot of change here. 1262 Compress any (obsolete) long LVM1 pvids encountered. 1263 Support for tagged config files. 1264 Don't abort operations if selinux present but disabled. 1265 Fix typo in configure which left HAVE_LIBDL unset. 1266 1267Version 2.00.15 - 19 Apr 2004 1268============================= 1269 configure --with-owner= --with-group= to avoid -o and -g args to 'install' 1270 1271Version 2.00.14 - 16 Apr 2004 1272============================= 1273 Use 64-bit file functions by default. 1274 1275Version 2.00.13 - 16 Apr 2004 1276============================= 1277 Set devices/md_component_detection = 1 to ignore devices containing md 1278 superblocks. [Luca Berra] 1279 Ignore error setting selinux file context if fs doesn't support it. 1280 1281Version 2.00.12 - 14 Apr 2004 1282============================= 1283 Install a default lvm.conf into /etc/lvm if there isn't one already. 1284 Allow different installation dir for lvm.static (configure --staticdir=) 1285 Fix inverted selinux error check. 1286 Recognise power2 in /proc/devices. 1287 Fix counting in lvs_in_vg_opened. [It ignored devices open more than once.] 1288 1289Version 2.00.11 - 8 Apr 2004 1290============================ 1291 Set fallback_to_lvm1 in lvm.conf (or configure --enable-lvm1_fallback) 1292 to run lvm1 binaries if running a 2.4 kernel without device-mapper. 1293 1294Version 2.00.10 - 7 Apr 2004 1295============================ 1296 More fixes for static build. 1297 Add basic selinux support. 1298 Fix sysfs detection. 1299 1300Version 2.00.09 - 31 Mar 2004 1301============================= 1302 Update copyright notices for Red Hat. 1303 Fix vgmknodes to remove dud /dev/mapper entries. (libdevmapper update reqd). 1304 Add LVM1-style colon output to vgdisplay. 1305 lvchange --refresh to reload active LVs. 1306 Add string display to memory leak dump. 1307 Add locking flags & memlock option. 1308 Add list_versions to library. 1309 Ignore open hidden LVs when checking if deactivation is OK. 1310 Suppress move percentage when device inactive. 1311 Add lv_info_by_lvid. 1312 Various tidy-ups to the build process. 1313 Rebaseline internal verbose level. 1314 Add --nolocking option for read operations if locking is failing. 1315 Add option to compile into a library. 1316 When compiled without libdevmapper, only print warning message once. 1317 Fix lvreduce PV extent calculations. 1318 Fix DESTDIR to work with configure path overrides. 1319 Always use / as config file separator & rename internal config file variables. 1320 Add support for tagging PV/VG/LVs and hosts. 1321 Fix rare bug in recognition of long cmdline argument forms. 1322 Add basic internationalisation infrastructure. 1323 Don't recurse symlinked dirs such as /dev/fd on 2.6 kernels. 1324 Update autoconf files. 1325 Add sysfs block device filtering for 2.6 kernels. 1326 Update refs for move to sources.redhat.com. 1327 1328Friday 14th November 2003 1329========================= 1330Some bug fixes & minor enhancements, including: 1331 Backwards compatibility with LVM1 metadata improved. 1332 Missing man pages written. 1333 Tool error codes made more consistent. 1334 vgmknodes written. 1335 O_DIRECT can be turned off if it doesn't work in your kernel. 1336 dumpconfig to display the active configuration file 1337 1338You need to update libdevmapper before using 'vgmknodes' or 'vgscan --mknodes'. 1339If your root filesystem is on an LV, you should run one of those two 1340commands to fix up the special files in /dev in your real root filesystem 1341after finishing with your initrd. Also, remember you can use 1342'vgchange --ignorelockingfailure' on your initrd if the tool fails because 1343it can't write a lock file to a read-only filesystem. 1344 1345Wednesday 30th April 2003 1346========================= 1347A pvmove implementation is now available for the new metadata format. 1348 1349When running a command that allocates space (e.g. lvcreate), you can now 1350restrict not only which disk(s) may be used but also the Physical Extents 1351on those disks. e.g. lvcreate -L 10 vg1 /dev/hda6:1000-2000:3000-4000 1352 1353 1354Monday 18th November 2002 1355======================== 1356 1357The new format of LVM metadata is ready for you to test! 1358 We expect it to be more efficient and more robust than the original format. 1359 It's more compact and supports transactional changes and replication. 1360 Should things go wrong on a system, it's human-readable (and editable). 1361 1362Please report any problems you find to the mailing list, 1363linux-lvm@sistina.com. The software has NOT yet been thoroughly 1364tested and so quite possibly there'll still be some bugs in it. 1365Be aware of the disclaimer in the COPYING file. 1366 1367While testing, we recommend turning logging on in the configuration file 1368to provide us with diagnostic information: 1369 log { 1370 file="/tmp/lvm2.log" 1371 level=7 1372 activation=1 1373 } 1374 1375You should schedule regular backups of your configuration file and 1376metadata backups and archives (normally kept under /etc/lvm). 1377 1378Please read docs/example.conf and "man lvm.conf" to find out more about 1379the configuration file. 1380 1381To convert an existing volume group called vg1 to the new format using 1382the default settings, use "vgconvert -M2 vg1". See "man vgconvert". 1383 1384-M (or --metadatatype in its long form) is a new flag to indicate which 1385format of metadata the command should use for anything it creates. 1386Currently, the valid types are "lvm1" and "lvm2" and they can be 1387abbreviated to "1" and "2" respectively. The default value for this 1388flag can be changed in the global section in the config file. 1389 1390Backwards-compatible support for the original LVM1 metadata format is 1391maintained, but it can be moved into a shared library or removed 1392completely with configure's --with-lvm1 option. 1393 1394Under LVM2, the basic unit of metadata is the volume group. Different 1395volume groups can use different formats of metadata - vg1 could use 1396the original LVM1 format while vg2 used the new format - but you can't 1397mix formats within a volume group. So to add a PV to an LVM2-format 1398volume group you must run "pvcreate -M2" on it, followed by "vgextend". 1399 1400With LVM2-format metadata, lvextend will let you specify striping 1401parameters. So an LV could consist of two or more "segments" - the 1402first segment could have 3 stripes while the second segment has just 2. 1403 1404LVM2 maintains a backup of the current metadata for each volume group 1405in /etc/lvm/backup, and puts copies of previous versions in 1406/etc/lvm/archive. "vgcfgbackup" and "vgcfgrestore" can be used to 1407create and restore from these files. If you fully understand what 1408you're doing, metadata can be changed by editing a copy of a current 1409backup file and using vgcfgrestore to reload it. 1410 1411Please read the pvcreate man page for more information on the new 1412format for metadata. 1413 1414All tools that can change things have a --test flag which can be used 1415to check the effect of a set of cmdline args without really making the 1416changes. 1417 1418 1419What's not finished? 1420==================== 1421The internal cache. If you turn on debugging output you'll see lots of 1422repeated messages, many of which will eventually get optimised out. 1423 1424--test sometimes causes a command to fail (e.g. vgconvert --test) even 1425though the real command would work: again, fixing this is waiting for 1426the work on the cache. 1427 1428Several of the tools do not yet contain the logic to handle full 1429recovery: combinations of pvcreate and vgcfgrestore may sometimes be 1430needed to restore metadata if a tool gets interrupted or crashes or 1431finds something unexpected. This applies particularly to tools that 1432work on more than one volume group at once (e.g. vgsplit). 1433 1434Display output. Some metadata information cannot yet be displayed. 1435 1436Recovery tools to salvage "lost" metadata directly from the disks: 1437but we hope the new format will mean such tools are hardly ever needed! 1438