EVMS ChangeLog

2.5.5 (2/24/2006)
- New plugins
  - OCFS2 FSIM, contributed by Robert Whitehead from Novell.
  - FAT FSIM, contribued by Anton D. Kachalov from ALT Linux Ltd.
  - Heartbeat2 Cluster Manager, contributed by Changju Gao from Novell.
- Bug fixes
  - Clean up compile warnings from gcc4.
  - Engine
    - Perform remote rediscovery after filesystem changes have been made so
      other cluster nodes will pick up the volume changes.
  - Disk Plugin
    - Try to get disk geometry from the DOS MBR before asking the kernel.
  - MD Plugin
    - Allow creating degraded RAID-1 and RAID-5 regions.
    - Correct size checks when assembling list of available objects to add
      to an existing raid1 using the version-1 superblock.
    - Provide an option for creating a version-1 superblock even if the
      running kernel does not support them.
  - evms_mpathd
    - When sending test-I/Os to a failed path, use the device's
      hard-sector-size instead of assuming 512 bytes for the request size.

2.5.4 (11/30/2005)
- Clustering
  - Update EVMS to be compatible with Linux-HA version 1 or 2. See README
    for more details.
- Bug fixes
  - Engine
    - Don't display the "unmount" command when selecting a swap volume, since
      unmount doesn't work for swap volumes.
    - Fix segfault when passing a NULL "parms" argument to
      is_object_change_pending().
    - Cancel the shutdown thread when the engine is closed to prevent extra
      threads from lying around when using the CLI's "probe" command.
    - Fix for the "new" dm-multipath table format when using dm-multipath
      devices with a hardware-specific handler.
  - DOS Plugin
    - Fix typo in compaq segment naming.
  - GUI
    - Fix segfault when trying to select an unselectable plugin task.
  - CLI
    - Fixes to auto-screen-width output code.
  - evms_query
    - Fix infinite-loop when specifying a numerical debug-level on the
      command-line.
- Minor improvements
  - Engine
    - Merge overlapping kill-sector requests.
    - Move plugin names and IDs to a common header file.
    - Display a warning message if we discover an in-progress replace
      operation.
  - Disk Plugin
    - Add an "ignore_sysfs" configuration option to force the plugin to
      ignore the devices in sysfs and fall-back to the "legacy" devices.
    - Try HDIO_GETGEO ioctl before HDIO_GETGEO_BIG ioctl, since the _BIG
      version is now deprecated.
    - Improved geometry calculations based on code from fdisk.
  - Initrd
    - Add support for doing Software-Suspend-2 with swap on an EVMS volume.
    - Add kernel command-line options for forcing the linuxrc script to drop
      to a shell before and/or after running evms_activate.

2.5.3 (6/10/2005)
- Bug fixes
  - Engine
    - Marked all deleted volumes as needing deactivation.
    - Use LIST_FOR_EACH_SAFE when walking object lists during commit.
    - Fix a small memory leak when allocating multipath target structures.
  - Replace Plugin
    - Corrected checks during discovery for replace objects.
  - MD Plugin
    - Fix stack corruption bug in MD plugin. [Marcus Meissner]
    - Fix memory corruption bug for RAID-5 regions running in degraded
      mode. [Gleb Stiblo]
    - Remove left over check when comparing DM tables for multipath objects
      that was causing the comparisons to always fail.
  - LVM2 Plugin
    - Fix stack corruption bug in LVM2 plugin. [Thomas Fehr]
    - Fix "packed" structure definition in LVM2 plugin. [sannes]
    - Round up instead of down to nearest PE-size when creating an LVM2 region.
  - Disk and DOS Plugins
    - Correctly handle HP/Compaq disk array names. These disks usually have
      names like "cciss/c0d0" or "ida/c0d0". Their segments will contain a "p"
      before the segment number, to correspond with the commonly-used names.
  - Command-Line UI
    - Improved display formatting for the CLI.
- Minor improvements.
  - When mounting a volume in the GUI or Ncurses, check /etc/fstab for the
    initial suggested mountpoint.
  - Limit the number of open file-descriptors in the disk plugin. This also
    adds a new "max_open_disks" option in the config file.
- Updates to documentation, including updates to the CLI man page
  and help text.

2.5.2 (2/28/2005)
- Bug fixes
  - Engine
    - Properly clean up empty directories in the /dev/evms/ tree.
  - MD Plugin
    - When removing a failed disk, need to ioctl to the MD driver to make
      sure it drops its reference to the disk.
    - When a disk is marked faulty and a spare is automatically activated,
      the faulty disk's number needs to be updated to match the kernel's view.
    - Check for array syncing status when getting region info.
    - Compensate for differences in GET_DISK_INFO ioctl between 2.4
      and 2.6 kernels.
    - Fix number of entries in MD superblock.
    - Use ffs instead of ffz. (Stefan Bader)
    - Fix compile errors with older gcc's.
  - Snapshots
    - Fix a segfault that could occur when rolling-back a snapshot that
      isn't made into an EVMS volume.
  - evms_metadata_restore
    - Fix some macro definitions.
- Init-Ramdisk
  - Changes to linuxrc to be more backwards-compatible with older EVMS
    initrd images.
- Updates to INSTALL guide.

2.5.1 (1/21/2005)
- New features
  - New MD superblock support (>=2.6.10 kernels only).
- Bug fixes
  - Segfault when backing up metadata for a snapshotted volume.
  - Device-Mapper version mismatch with older kernels.
  - Correct "is-mounted" in the case when a volume has been renamed.
  - Infinite loop during discovery when a RAID-1 or RAID-5 is syncing.
  - Relax the PV size-check restrictions for LVM1 containers.
  - Try manually loading a DM target kernel module if it's not found
    when checking for target versions.
  - Update evms_mpathd to work with the new dm-multipath table format.
- Init-Ramdisk
  - Change linuxrc to use the pivot-root method for mounting the root-fs.

2.5.0 (12/21/2004)
- New features
  - Metadata backup and restore.
  - LVM2 move-mappings.
- Minor updates and bug fixes
  - Proper progress-indicator initialization in several plugins.
  - Engine
    - Simplify several informational data structures.
    - Reduce severity of some log messages to make them less misleading.
    - Minor reordering of commit sequence to prevent segfaults in the
      snapshot plugin's delete and deactivation code.
    - Fix to the volume size calculation code.
  - Clustering
    - Overhaul of remoting code to get rid of several memory leaks.
  - LVM2
    - Fix problem with converting some systems from LVM2 to EVMS.
    - Don't allow spaces in container and region names.
  - Snapshot
    - Add a routine for the discard API.
  - S/390 Segment Manager
    - Fix bug with deleting multiple segments.
    - Fix "format" plugin-function.
  - BBR Segment Manager
    - Fix potential seg-fault in deactivation routine.
    - Fix forwarding of kill-sector requests during delete.
  - Disk Plugin
    - More detailed information for IDE disks.
  - Multipath
    - Support the new table string format for the latest dm-multipath kernel
      module, along with the previous format.
- Updated documentation and kernel patches.

2.4.1 (10/28/2004)
- Bug fixes for the 2.4.0 release.
  - Engine
    - Fixed a potential volume activation problem.
    - Improved debugging log messages.
  - BBR Segment Manager
    - Important metadata update. See README file for details!
    - Fix segfault when creating new BBR segments.
  - Software-RAID
    - Fixes to recovery after a failed RAID-0 or RAID-5 expand.
    - Do proper filtering of spare disks based on cluster-disk-group.
  - LVM2
    - 64-bit-support cleanup
    - Fix a compile error.
  - FSIMs
    - Fix bugs in checking allowed size for shrinking.
    - Fix status checks after a fork/execvp.
  - Clustering Support
    - Make the membership timeout configurable in evms.conf.
  - Disk Manager
    - Fix private-data allocation bug.
  - Object-Replace
    - Fix bug with replacing one full disk with another full disk.
  - Build process
    - Improved version checking when searching for Linux-HA.
- Updated documentation and kernel patches.

2.4.0 (9/17/2004)
- New features
  - Selective activation.
  - RAID-0 and RAID-5 resize.
  - New LVM2 plugin.
  - New NTFS fsim.
  - NLS support.
  - Container PV expand and shrink.
- Updates and bug-fixes
  - Disk manager
    - Recognize multipath-tools devices as disks.
  - Online replace
    - Recover and complete replace operations following an engine or system
      crash during an online replace.
  - LVM1 plugin.
    - Add rename for regions and containers.
  - Swap FSIM
    - Add swapon and swapoff functions.
  - Command Line UI
    - Add mount and unmount commands.
  - Updates for 2.6.8 and 2.4.27 kernels.
  - Updated documentation.

2.3.4 (6/3/20004)
- Bug-fixes for the 2.3.3 release.
  - Engine
    - Add ability to expand a volume/filesystem in the event a volume's
      object is replaced by a larger object.
    - Don't allow operations on compatibility volumes that have their
      corresponding kernel volume mounted.
    - Use pthread IDs instead of PIDs in the log timestamps.
    - Fix memory-deallocate bug in object-replace.
    - Various clustering bug-fixes.
  - DOS
    - Fix segment naming inconsistency during comparison with kernel mappings.
  - CSM
    - Allow expanding and shrinking CSM containers.
    - Fix seg-fault caused by improperly initialized option-descriptor.
  - Local Disk Manager
    - Minor code restructuring.
  - MD
    - Properly handle arrays that were purposely created with missing disks.
    - Improved log and user messages.
  - GUI
    - Add a workaround for a GTK timer bug.
  - Installation
    - Check for either /etc/ha.d or /etc/heartbeat when checking for Linux-HA.
      [Matt Zimmerman]
- New evms_query tool.
- Updated documentation.

2.3.3 (5/11/2004)
- Bug-fixes for the 2.3.2 release.
  - Engine
    - Fix for online-replace. When replacing an object directly under an EVMS
      volume, the volume needs to be reactivated so it maps to the copy object.
    - Fix problem with sem_wait() returning due to a SIGCONT signal.
  - S390 segment manager
    - Remove out-of-date multipath detection code.
  - XFS FSIM
    - Add a "force" option for mkfs.
    - Display the error output if mkfs fails.
    - Correctly get "extra" extended information.
  - LVM
    - Fix incorrect return code when expanding a striped region.
  - Snapshot
    - Fix endian conversions during snapshot rollback.
  - GUI
    - Replace some help menu items with a new panel containing links to
      documentation on the EVMS web site.
  - CSM
    - Fix a bug with creating a CSM container with multiple disks.
  - Linux-HA
    - evms_failover script
      - Fix using old option name for setting the node for a private container.
      - Remove redundant calls to commit changes.
- Improvements to the evms_gather_info script.
- Additional test-suite test-cases.
- Updated documentation.

2.3.2 (4/26/2004)
- Bug-fixes for the 2.3.1 release.
  - Engine
    - Fix minor deactivation bug. Engine was trying to deactivate volumes that
      didn't have their own DM device, causing spurious kernel error messages.
  - GUI
    - Fix seg-fault caused by a potentially uninitialized mutex.
  - HA Cluster Manager
    - Allow EVMS to use HA 1.0 or 1.2.
    - Fix some memory allocation/deallocation problems.
  - Snapshotting
    - Fix activation problem caused by the kernel module not getting loaded.
    - Snapshot-rollback bug-fix.
  - Command-Line UI
    - Improved method for displaying the CLI output, based on the width of the
      terminal session.
    - Add "replace" command.
    - General cleanup.
- New test suite. See tests/suite/README for more details.
- Install plugins in /lib/evms/x.y.z/ instead of just /lib/evms/.
- Updated kernel patches and documentation.

2.3.1 (3/31/2004)
- Bug-fixes for the 2.3.0 release.
  - Engine
    - Fixes in API-remoting code.
    - Fix in make_directory for top-level directories.
    - Start pthreads detached. [Steve Landherr]
    - Use waitpid to terminate the daemon worker process. [Steve Landherr]
    - Use usleep instead of sleep to avoid being woken up by a signal.
    - Improved error checking when activating objects.
  - Cluster Segment Manager
    - Improved options for creation and reassignment.
    - Add rename capability.
    - Fixes in segment-discard.
  - HA Cluster Manager
    - Improved handling of membership events.
    - Improved method for launching the failover script.
    - Fix seg-fault in processing list of threads waiting for responses.
    - Better error logging.
    - Always install evms_failover. [Matt Zimmerman]
  - Software-RAID
    - Fix in removing stale disks.
    - Wait for recovery process to begin before rediscovery.
    - Fix segfault when discovering RAID-linear and RAID-0 regions
      with missing children.
  - Multipath
    - Improved path recovery detection.
    - Fixes and improvements in delete and discard.
  - LVM
    - Fix seg-fault while expanding striped regions. [Steve Landherr]
  - S/390 Segment Manager
    - Build fix [Bastian Blank, Matt Zimmerman]
  - Disk
    - Improved search for sysfs.
  - Snapshot
    - Disallow creation of snapshots of cluster-shared volumes.
- Minor changes to engine logging.
  - Move ENTRY_EXIT before DEBUG
  - Print log level as part of message timestamp.
  - Note: Run the EVMS UIs with "-d debug" instead of "-d everything" now to
    generate a detailed trace log.
- Remove get_dev_num utility.
- Updated kernel patches and documentation.

2.3.0 (3/3/2004)
- Clustering enhancements
  - Remote APIs
  - Object discard
  - Internal rediscover
- Multipath
  - Convert MD-multipath to use the new Device-Mapper multipath module.
  - Add a new plugin for detecting multipath LVM PVs.
- Software-RAID
  - Convert RAID-linear and RAID-0 to use Device-Mapper instead of MD.
- OpenGFS FSIM
- Enable online move for the LVM plugin.
- Replace dlist with new engine services.

2.2.2 (1/19/2004)
- Bug fixes for the 2.2.1 release.
  - Command Line UI
    - When querying for the parent of an object, display the volume info if the
      object has a volume but no parent objects.
    - Make the CLI output unbuffered, so it works properly over sockets
      [Mike Snitzer]
  - MD Plugin
    - Add the ability to forceably reconstruct a corrupt RAID-5 array.
    - Fix the "No Device" error when trying to add a spare to an MD region.
    - Fix some macro definitions.
  - 390 Segment Manager
    - Fixes to allow plugin to build properly with 2.6 kernel headers.
- Kernel updates
  - Update to the 2.4.24 and 2.6.1 kernels.
- Init-ramdisk updates
  - Updated busybox to version 1.00-pre5.
  - Reduced size of initrd by half.

2.2.1 (12/11/2003)
- Bug fixes for the 2.2.0 release.
  - Engine: Fix compile bug when building on systems with NPTL.
  - GUI: Fix a hang in the option window display.
  - BBR plug-in: Use the Engine's read_object and write_object services.
  - Disk and MD plug-ins: Fix definitions of BLKGETSIZE64, BLKBSZGET
    and BLKBSZSET.
  - Filesystem plug-ins: Fix memory leaks.
  - Drivelink plug-in: Fix discovery ordering issue.
  - Snapshot plug-in: Change naming scheme for snapshot sibling object.
- Kernel updates.
  - Update to device-mapper-1.00.07.
  - Update to 2.4.23 kernel.

2.2.0 (11/12/2003)
- Snapshot Expand
  - Increase available storage space for a snapshot on the fly.
- New DriveLink plugin (same metadata format)
- Clustering Enhancements
  - CSM disk-group name-spaces.
  - Don't allow new objects or containers to span CSM disk-groups.
- Online Move
  - Certain move operations can now be done with the volume mounted.
    - Object replace
    - Segment-manager moves (DOS, GPT, S390)
  - LVM regions must still be moved offline.
- Add --devnum option to evms_activate to print the device-number of a
  specified volume.
- Check for /proc and /sys at engine-open.
  - Mount if they aren't already mounted (and unmount at engine-close).
- New installation instructions.
- Bug-Fixes
  - Rewrite RAID-1 and RAID-5 failure handling.
  - Correctly link with dlist during build process.
  - Command-Line UI output formatting fixes.
  - Check device-number as well as name when checking if a volume is mounted.
  - Fix segfaults in MD plugin when checking for plugin-functions.
- Cleanups
  - Consolidated several common plugin macros into one place.
  - Only export the plugin-record symbol from the plugin shared-objects.
  - Fix -q option for evms_activate.

2.1.1 (2003-08-15):
- First maintenance release for 2.1.0.
- Allow EVMS to run with version 3 or 4 of the Device-Mapper ioctl interface.
- Update Snapshot activation sequence to work with DMv4.
- Update BBR and Sparse kernel modules to use new dm-io and dm-daemon modules.
- New APIs for mounting volumes to allow mounting and checking mounts on
  remote machines in a cluster.
- Add -fno-strict-aliasing to compiler flags to prevent warnings when building
  with gcc 3.3.
- Allow disk-manager to discover loop devices as disks.
- Add instructions for patching LILO to work with EVMS volumes.
  - Based on Christophe Saout's lilo-devmapper patches.
- Miscellaneous bug fixes.

2.1.0 (2003-06-30):
- Second major release of the new EVMS design
- New Features
  - Clustering
    - RSCT plugin - allow EVMS to operate in RSCT clusters.
  - Snapshotting
    - Reset - reset a snapshot volume without needing to
              delete and recreate the snapshot.
    - Rollback - copy the saved contents of the snapshot back to the origin.
  - Software-RAID
    - RAID-1 reconfigure
    - RAID-1 resize
    - RAID-Linear resize
    - New Multipath plugin
  - UIs
    - When saving changes, add a "Details" button to display the list of
      items that have changes to save.
  - Macintosh Segment Manager - recognize Macintosh-native disk partitions.
- Bug Fixes
  - Allow the engine to open if the lock-file cannot be created and the
    filesystem is read-only.
  - Fix problems with using O_DIRECT on 2.4 kernels.
  - Improvements to the HA plugin due to fixes in Linux-HA.
  - Better support for discovering disks on systems using devfs.
  - Remove evms_deactivate as a UI utility. This program should only be
    used for testing.

2.0.1 (2003-05-02):
- First bug-fix release for 2.0
- Core Engine
  - Attempt to load Device-Mapper kernel module if not present.
  - Prevent error messages from modprobe when trying to check for the
    EVMS 1.2 kernel driver by checking for the /proc/evms directory first.
- Clustering
  - Several minor fixes in the cluster-segment-manager.
- GUI and Text-Mode
  - Add command to mount volumes from the EVMS UIs.
- Disk Manager
  - Accepts "*" and "?" wild cards and bracket notation ("[...]") when
    specifying block devices in evms.conf.
  - Combine the 2.4-kernel and 2.5-kernel versions into a single plugin.
- LVM
  - New "Move-PV" interface to complement the "Move-Extent" interface.
  - Fix bug with some migrating some setups from LVM1 directly to EVMS 2.0.
  - Fix bug with activation of certain striped LVM regions.
- MD
  - Fix bug with RAID-5 on BBR segments.
- Kernel
  - Fix bug with loading the BBR kernel component as a module.

2.0.0 (2003-03-29):
- First full release of new EVMS design
- Completed new text-mode UI
- Completed clustering failover testing
- Updated Users-Guide
  - Clustering information
  - Plug-in appendices
- Various testing and bug fixes

1.9.2 (2003-03-17):
- Third beta release
- Clustering / HA Plug-in
  - Improved failover script.
  - Testing various failover and loss-of-quorum scenarios.
- Core Engine
  - Allow engine to open if Device-Mapper isn't loaded.
- Move Support (Offline)
  - Add move support to the MD plug-in.
  - Add move support to the GPT plug-in.
- Text-Mode UI
  - Support "Create Feature" from context popup menu.
  - Support "Modify Properties".
  - Support volume conversions.
- Snapshotting
  - Lots of testing and bug-fixes.
- DOS Segment Manager
  - Resolve differences between active DM devices and partition-table metadata.
- Disk Manager
  - Support for devfs without requiring devfsd.
- Configuration File
  - New entries affecting the engine log.
  - Better comments explaining disk-manager entries wrt devfs.
- Documentation
  - Instructions for creating init-ramdisks for use with EVMS, along with a
    sample /linuxrc script.

1.9.1 (2003-03-04):
- Second beta release
- Clustering / HA Plug-in
  - Finished remote administration capabilities
  - Add necessary reassign support to the cluster-segment-manager
  - Adding support for failover and loss-of-quorum recovery.
- Move Support (Offline)
  - Add move support to Drive-Linking.
- Text-Mode UI
  - Most functionality complete.
  - Still working on:
    - Convert volume
    - Modify attributes
    - Display details "extra" information
    - Tree views
- Snapshotting
  - Initial support for snapshotting using Device-Mapper
  - Currently on supported on 2.4 kernels.
- Bad-Block-Relocation
  - Reworked BBR Device-Mapper module.
- Various bug reports and feedback from users
  - Steve Centrone, Erik Tews, Matt Zimmerman

1.9.0 (2003-02-14):
- First beta release
- Clustering / HA Plug-in
  - Improved handling for large messages.
  - Add installation instructions for settig up EVMS on Linux-HA clusters.
  - Add failover script for reassigning a cluster-container after a node
    failure.
- Engine Core
  - Updates to allow remote administration within a cluster.
- Move Support (Offline)
  - New plugin and services to assist in copying data from source to
    destination.
  - DOS Segment Manager
    - Enable moving existing segments into available freespace on the same disk.
  - LVM Plugin
    - Enable moving logical extents to new physical extent location.
- S/390 Segment Manager
  - Enable DASD formatting.
- New Text-Mode UI
  - Supports most common operations
    - Create, delete
- Installation
  - New default installation directories. See INSTALL for details.

1.9.0-pre3 (2003-02-04):
- Third alpha release
- Clustering / HA Plug-in
  - Add evmsd, a small command line UI that simply launches the engine in
    daemon mode.
  - First successful tests of launching engine and locking all remote daemons.
  - Lots of testing and bug fixes.
- Disk Manager
  - Fixes to properly handle symlinks to device files.
- MD
  - Add option to restore original major/minor numbers of children in MD
    objects. This allows full backwards-compatibility with MD raidtools.
- Text-Mode UI
  - Initial re-write of the ncurses-based UI.
  - Still working towards full functionality.
  - Old ncurses UI is still available, but does not build by default.
- AIX
  - Add initial support for activating AIX regions using Device-Mapper.
- BSD
  - New plugin for managing disks partitioned by the BSD operating systems.
- New engine configuration and build scripts.


1.9.0-pre2 (2003-01-21):
- Second alpha release
- Clustering
  - Initial code for HA plugin, for interfacing with the Linux
    High-Availability clustering package. This plugin will help support
    basic fail-over capabilities for EVMS.
  - Add cluster-segment-manager
    - Provides support for defining disk groups when a cluster has access to
      shared storage.
- D-List
  - Lots of updates to simplify several APIs and remove a lot of internal
    code.
- OS/2
  - Add initial support for activating OS/2 regions with Device-Mapper.


1.9.0-pre1 (2002-12-31):
- First alpha release of EVMS running with Device-Mapper and MD/Software-RAID.
- All plug-ins ported to new design except:
  - Snapshot
  - OS/2
  - AIX
- Issue with backwards-compatibility with MD.
