|
| 1 | +################################################################################# |
| 2 | +# # |
| 3 | +# iscsi-ha - High Availability framework for iSCSI cluster used in conjunction # |
| 4 | +# with XAPI based Xen Virtualization Environment (Xen Cloud Platform/XenServer) # |
| 5 | +# Copyright 2024 Salvatore Costantino # |
| 6 | +# ha@ixi0.com # |
| 7 | +# # |
| 8 | +# # |
| 9 | +# iscsi-ha is free software: you can redistribute it and/or modify # |
| 10 | +# it under the terms of the GNU General Public License as published by # |
| 11 | +# the Free Software Foundation, either version 3 of the License, or # |
| 12 | +# (at your option) any later version. # |
| 13 | +# # |
| 14 | +# iscsi-ha is distributed in the hope that it will be useful, # |
| 15 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of # |
| 16 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # |
| 17 | +# GNU General Public License for more details. # |
| 18 | +# # |
| 19 | +# You should have received a copy of the GNU General Public License # |
| 20 | +# along with iscsi-ha. If not, see <http://www.gnu.org/licenses/>. # |
| 21 | +# # |
| 22 | +################################################################################# |
| 23 | +Initial Public Release - June 2013 |
| 24 | +Version 1.2.11 |
| 25 | + |
| 26 | +- Added auto plugging of iscsi SR to deal with XenServer failing to properly plug SR on boot |
| 27 | + |
| 28 | +Version 1.2.12 - August 6, 2013 |
| 29 | +- Build/added DRBD RPMs compatible with XenServer 6.2. RPMs are now provided for XCP 1.6, XenServer 6.1 and XenServer 6.2 |
| 30 | + |
| 31 | +Version 1.2.14 - September 1, 2013 |
| 32 | +- Resolved errant ping notice in log |
| 33 | +- Added exit timeout to email alerting |
| 34 | +- Moved environment out of config file to more transparently deal with upgrades |
| 35 | +- Added logic to replug PBD to resolve issues with Xenserver not properly plugging iscsi SR after a hard reboot or shutdown. |
| 36 | + |
| 37 | +Version 1.2.15 |
| 38 | +- Some email alerts had truncated content. Resolved |
| 39 | +- Updated installer to save configuration settings when upgrading |
| 40 | + |
| 41 | +Version 1.3.1 - October 2013 |
| 42 | +- Resolved race condition on poor performing dom0s when attemping to plug PBD |
| 43 | +- Added DRBD kernel module to distribution package for update XS62E004 kernel version 2.6.32.43-0.4.1.xs1.8.0.839.170780xen |
| 44 | +- Updated email alert logic to prevent hanging when network or DNS is down |
| 45 | +- New python driven MTA replaces mailx from previous version. Mailx is no longer required for alerts |
| 46 | +- Suppress email alerts to avoid sending useless alerts while iscsi-ha initializes services that |
| 47 | + were not really failed - were just stopped since service may not have been running |
| 48 | +- Updated installer not to check/prompt for mailx dependancy |
| 49 | +- Validated support for kernel version 2.6.32.43-0.4.1.xs1.8.0.839.170780xen |
| 50 | + |
| 51 | +Version 1.3.7 - December 2013 |
| 52 | +- Clear potential dangling logger processes that could occur on unclean exit or bad configuration parameters |
| 53 | +- Updated init script now manages logger processes |
| 54 | +- replug_pbd updated - will exit if the master is not reachable by a calling slave |
| 55 | +- Support for XenServer 6.2 SP1 kernel version - added DRBD compatible kernel RPM to package |
| 56 | + |
| 57 | +Version 1.4.2 - April 2014 |
| 58 | +- Resove minor display bug (warning) when manually starting service for the first time. |
| 59 | + Init script updated to first check whether directory exists in RAM before attempting to write to it. |
| 60 | +- Added manual operating mode which allows an administrator to temporarily disable automatic management of |
| 61 | + storage location (eg. exposed on master or slave). Manual mode provides the ability to move storage |
| 62 | + as needed to allow for rolling pool updates or server maintenance/reboots without any VM downtime. |
| 63 | +- Expanded CLI 'iscsi-cfg' with additional command line arguments to deal with manual mode |
| 64 | + New arguments include manual-mode-enable, manual-mode-disable, become-primary, become-secondary |
| 65 | +- Updated CLI to detect status when operating in manual mode |
| 66 | +- Updated installation script to better deal with noSAN automated installer requirements |
| 67 | +- Updated init to prevent starting service while in manual mode |
| 68 | + |
| 69 | +Version 1.4.3 - June 2014 |
| 70 | +- Resolved bug in replug_pbd which was not parsing SR UUIDs correctly when more than one iSCSI SR exists. |
| 71 | +- Resolved minor bug in CLI when viewing status. Incorrect IP list was being displayed while in |
| 72 | + manual mode if using an interface other than xenbr1 for replication. Status will now dynamically |
| 73 | + display the correct IPs based on the interface name set in the configuration. |
| 74 | + |
| 75 | +Version 1.4.4 - July 2014 |
| 76 | +- Added DRBD kernel module to distribution package for version 2.6.32.43-0.4.1.xs1.8.0.853.170791xen |
| 77 | + |
| 78 | +Version 1.4.5 - September 2014 |
| 79 | +- Resolved minor bug in CLI which displayed IP data incorrectly when using an interface other than xenbr1 |
| 80 | +- Added DRBD kernel module to distribution package for version 2.6.32.43-0.4.1.xs1.8.0.855.170800xen |
| 81 | + |
| 82 | +Version 1.5.4 - April 2015 |
| 83 | +- Support for DRBD 8.4.3 |
| 84 | +- Updated installer for noSAN installer support |
| 85 | +- Improved email handler removes dependancy for sendmail |
| 86 | +- Centralized email configuration settings dynamically pull email and SMTP settings from ha-lizard/xapi DB |
| 87 | + When using iscsi-ha with ha-lizard, email settings can now be set in only one place - via ha-cfg CLI |
| 88 | +- Tab completion added for ha-cfg CLI tool |
| 89 | +- Improved layout of status monitor |
| 90 | +- Added DRBD live status to iscsi-cfg status monitor |
| 91 | + |
| 92 | +Version 1.5.5 - August 2015 |
| 93 | +- Added compiled DRBD modules for XenSever kernel version 2.6.32.43-0.4.1.xs1.8.0.861.170802xen |
| 94 | + |
| 95 | +Version 1.5.6 - September 2015 |
| 96 | +- Significantly improved switchover time on failure or manual-mode role reversal |
| 97 | +- Cleaned up IP address(es) displayed while in manual-mode |
| 98 | +- Bug fix: replug_pbd was limited to deal with only 2 iSCSI SRs. Update allows for any number of configured iSCSI SRs |
| 99 | + |
| 100 | +Version 1.5.7 - May 2016 |
| 101 | +- Bug fix: under certain conditions, iscsi target started before DRBD primary role was asserted. TGT will now only start |
| 102 | + after DRBD role has successfully transitioned to primary. |
| 103 | +- Added DRBD kernel module and RPMS for latest 6.2 kernel 2.6.32.43-0.4.1.xs1.8.0.865.170810xen |
| 104 | +- iSCSI-HA now allows for a seamless transition of the pool master into maintenance mode allowing the slave (new master) |
| 105 | + to take over management of the storage. |
| 106 | + |
| 107 | +Version 2.0 - July 2016 |
| 108 | + |
| 109 | +Version 2.0.2_beta |
| 110 | +- New build compatible with XenServer 7 (Centos 7 style dom0) - !! not backward compatible with XenServer 6.x !! |
| 111 | +- Improved manual mode validations now provide stateful updates of expected manually assigned roles. |
| 112 | + State changes and errors are now handled in real time |
| 113 | +- init updated for systemd compatibility |
| 114 | +- DRBD RPMs no longer packaged with releases |
| 115 | + |
| 116 | +Version 2.1.0 - November 2016 |
| 117 | +- Bug fix: display error when transitioning host to secondary role while in manual mode. Path to status function was being overwritten at runtime |
| 118 | +- Bug Fix: iscsi-cfg status was displaying erroneous PID. Resolved |
| 119 | +- Bug Fix: iscsi-ha and watchdog init scripts were storing wrong PID in pid file. Resolved |
| 120 | +- Bug Fix: Status was displaying wrong running state of iscsi-ha daemon |
| 121 | +- Added daemon-reload on success of drop-in file creation |
| 122 | + |
| 123 | +Version 2.1.1 - November 2016 |
| 124 | +- Added frequent ARP updates from host that is exposing storage on replication network. Resolves issues with replication networks |
| 125 | + using bonds that fail to initialize after certain simulated network crashes. |
| 126 | +- Added DRBD split brain recovery tool |
| 127 | +- Added -v option to CLI for checking version |
| 128 | + |
| 129 | +Version 2.1.2 - December 2016 |
| 130 | +- Merged with version 1.5.7 for backward compatibility |
| 131 | +- Bug Fix - MAC address parsing selected IPv6 address in some cases. Resolved |
| 132 | +- Bug Fix - Watchdog was not sourcing environment at runtime |
| 133 | +- cli tool status now displays version |
| 134 | +- updated target daemon controller for backward compatibility |
| 135 | +- updated init for support in both xenserver 6 and 7 environemnts |
| 136 | + |
| 137 | +Version 2.1.3 - December 2016 |
| 138 | +- Bug Fix - installer was adding an invalid character to tgt drop-in config which created delay when stopping daemon - resolved. |
| 139 | +- Bug Fix - ARP updates were in some cases excluding some interfaces in a bond - resolved. |
| 140 | +- Bug Fix - Build 29877, updated daemon controller to be backward compatible when full path to init scripts declared |
| 141 | + |
| 142 | +Version 2.1.4 - Jan 2017 |
| 143 | +- Bug Fix - #1142 - cli status when in manual mode displayed errored run state of iscsi target daemon due to unpopulated manual mode role |
| 144 | + in manual mode lock file. Fix now bootstraps ../state/manual with an initial role based on the host's master/slave status in the pool. |
| 145 | +- Failed attempts to start DRBD daemon will now be retried in a loop until the daemon starts successfully. |
| 146 | +- Reverted to old method (pre version 2) of updating ARP on replication interface. Due to known ARP update issues on network bridges with |
| 147 | + a bond - it is advised that replication bond mode be set to active/passive |
| 148 | +- Added XenServer 6.5 DRBD RPMs to package |
| 149 | + |
| 150 | +Version 2.1.5 - August 2017 |
| 151 | +- Bug Fix - in XenServer 7.x deployments, systemd could start DRBD before the network is ready causing DRBD to start with no resources loaded. |
| 152 | +- Bug fix: updated init to wait for xapi to fully initialize before starting iscsi-ha |
| 153 | + |
| 154 | +Version 2.2.0 - October 2018 |
| 155 | +- Various bug fixes that could cause erroneous warnings. |
| 156 | +- Added stateful configuration manager which preserves all settings when running in a 2-node hyperconverged pool. |
| 157 | + Settings are stored in a central DB that will survive dom0 upgrades without loss of configuration data. Two |
| 158 | + new CLI commands have been introduced for managing lvm, tgt, drbd and iscsi-ha configuration data; <backup|restore> |
| 159 | + Stateful storage of configuration data makes it possible to more easliy manage major version upgrades to dom0 ensuring |
| 160 | + that all configuration data remains with the pool. |
| 161 | +- Removed requirement to manually patch default iptables rules to allow replication. Firewall is now statelessly managed |
| 162 | + at runtime of iscsi-ha service. IMPORTANT - FW logic drives from the configured floating IP address (DRBD_VIRTUAL_IP) and |
| 163 | + assumes a /24 CIDR. Example. A replication IP of 10.10.10.3 will result in a FW rule allowing 10.10.10.0/24 |
| 164 | +- Updated init script waits for xapi and fw to fully initialize before allowing service startup. |
| 165 | +- Updated init script to initialize proper state after a dom0 upgrade |
| 166 | +- Tested for compatibility with XenServer 7.x and XCP-ng 7.5 |
| 167 | +- Added alerts functionality that can be viewed from within XenCenter or from ha-cfg CLI tool |
| 168 | +- Display bug resolved. When watching status with iscsi-cfg while DRBD is resyncing, % |
| 169 | + character caused a printf error |
| 170 | + |
| 171 | +Version 2.2.1 - October 2019 |
| 172 | +- Added new logic to detect and correct ARP failing to update peer on replication interface which could occur when a bonded link |
| 173 | + is used inside a linux bridge. |
| 174 | +- Upated fw_init for backward compatibility with pre version 7 hosts using SystemV to address |
| 175 | + https://halizard.com/forum/suggestion-box/337-etc-iscsi-ha-scripts-fw-init-line-65-systemctl-command-not-found |
| 176 | +- Added SSL support to email handler |
| 177 | + |
| 178 | +Version 2.2.2 - October 2019 |
| 179 | +- removed dependancy on networkctl since xcp/xenserver v8 no longer include it in default dom0 |
| 180 | + |
| 181 | +Version 2.2.3 - October 2019 |
| 182 | +- Bug Fix #1926: function replication_link_check was not parsing the host interface list correctly when dealing with a bond with more than 2 interfaces. |
| 183 | +- restore_replication_link updated to deal with bonds with more than 2 interfaces |
| 184 | + |
| 185 | +Version 2.2.4 - November 2019 |
| 186 | +- Bug Fix - function manage_db_manual_mode updated to better deal with missing param when installed on top of a very old version of HA-Lizard |
| 187 | + |
| 188 | +Version 2.2.5 - Feb 2021 |
| 189 | +- Bug Fix - manual mode tracking could produce a "unary operator expected" error if state file is missing or empty |
| 190 | +- Added DRBD disk state tracking and alerting |
| 191 | +- Added DRBD split-brain alerting via XenCenter/XCP-ng Center. Alert script can be found in |
| 192 | + /etc/iscsi-ha/scripts/drbd-split-brain-alert. Newly installed systems utilizing the noSAN auto installer |
| 193 | + script will have this functionality enabled by default. Existing systems can enable DRBD split-brain notification |
| 194 | + by adding "handlers { split-brain "/etc/iscsi-ha/scripts/drbd-split-brain-alert"; }" to each host's DRBD resource. |
| 195 | + |
| 196 | +Version 2.2.6 - August 2024 |
| 197 | +- Bug Fix - IFS was not restored before calling replication_link_check - causing interface looping to break |
| 198 | +- Bug Fix - Resolved race condition with DRBD and multipathd which was introduced in XCP 8.2.1 release |
| 199 | + |
| 200 | +Version 2.2.7 - Nov 2024 |
| 201 | +- Code preparation for moving project to github. No logic changes. Only some comments added/removed |
| 202 | + |
| 203 | +Version 2.3.0 - Dec 2024 |
| 204 | +- Initial release for github |
0 commit comments