heartbeat-vl.spec 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384
  1. %define ENABLE_SNMP_SUBAGENT 0
  2. %define ENABLE_MGMT 1
  3. %define uid 24
  4. %define gname haclient
  5. %define uname hacluster
  6. Summary: Heartbeat subsystem for High-Availability Linux
  7. Summary(ja): 高可用性 Linux のための HeartBeat サブシステム
  8. Name: heartbeat
  9. Version: 2.0.8
  10. Release: 7%{_dist_release}
  11. Group: System Environment/Daemons
  12. License: GPL/LGPL
  13. URL: http://linux-ha.org/
  14. Source0: http://linux-ha.org/download/%{name}-%{version}.tar.gz
  15. Patch0: heartbeat-fedora-pam.patch
  16. Patch1: heartbeat-fedora-chkconfig.patch
  17. BuildRoot: %{_tmppath}/%{name}-%{version}-root
  18. BuildRequires: glib2-devel
  19. BuildRequires: iputils
  20. BuildRequires: libnet-devel
  21. BuildRequires: libtool-ltdl-devel
  22. BuildRequires: net-snmp-devel
  23. BuildRequires: bzip2-devel
  24. BuildRequires: ncurses-devel
  25. %if %{ENABLE_MGMT}
  26. BuildRequires: gnutls-devel > 2
  27. BuildRequires: pam-devel
  28. BuildRequires: python-devel
  29. BuildRequires: swig
  30. BuildRequires: curl-devel
  31. BuildRequires: libuuid-devel
  32. BuildRequires: libxml2-devel
  33. %endif
  34. Requires: stonith = %{version}-%{release}
  35. Requires: pils = %{version}-%{release}
  36. Requires: ldirectord = %{version}-%{release}
  37. Requires: pygtk2 >= 2.4
  38. Requires(post): /sbin/chkconfig
  39. Requires(preun): /sbin/chkconfig
  40. %if %{ENABLE_MGMT}
  41. Requires: gettext
  42. %endif
  43. %description
  44. heartbeat is a basic high-availability subsystem for Linux-HA.
  45. It will run scripts at initialization, and when machines go up or down.
  46. This version will also perform IP address takeover using gratuitous ARPs.
  47. It supports "n-node" clusters with significant capabilities for managing
  48. resources and dependencies.
  49. In addition it continues to support the older release 1 style of
  50. 2-node clustering.
  51. It implements the following kinds of heartbeats:
  52. - Serial ports
  53. - UDP/IP multicast (ethernet, etc)
  54. - UDP/IP broadcast (ethernet, etc)
  55. - UDP/IP heartbeats
  56. - "ping" heartbeats (for routers, switches, etc.)
  57. (to be used for breaking ties in 2-node systems)
  58. %package -n ldirectord
  59. Summary: Monitor daemon for maintaining high availability resources
  60. Summary(ja): 高可用リソースを管理するための監視デーモン
  61. Group: System Environment/Daemons
  62. Requires: ipvsadm
  63. Requires: %{name} = %{version}
  64. Requires(post): /sbin/chkconfig
  65. Requires(preun): /sbin/chkconfig
  66. %description -n ldirectord
  67. ldirectord is a stand-alone daemon to monitor services of real
  68. for virtual services provided by The Linux Virtual Server
  69. (http://www.linuxvirtualserver.org/). It is simple to install
  70. and works with the heartbeat code (http://www.linux-ha.org/).
  71. %package -n stonith
  72. Summary: Provides an interface to Shoot The Other Node In The Head
  73. Group: System Environment/Daemons
  74. Requires: pils = %{version}-%{release}
  75. %description -n stonith
  76. The STONITH module (a.k.a. STOMITH) provides an extensible interface
  77. for remotely powering down a node in the cluster. The idea is quite simple:
  78. When the software running on one machine wants to make sure another
  79. machine in the cluster is not using a resource, pull the plug on the other
  80. machine. It's simple and reliable, albeit admittedly brutal.
  81. #'
  82. %package -n pils
  83. Summary: Provides a general plugin and interface loading library
  84. Group: System Environment/Daemons
  85. %description -n pils
  86. PILS is an generalized and portable open source Plugin and Interface Loading
  87. System. PILS was developed as part of the Open Cluster Framework reference
  88. implementation, and is designed to be directly usable by a wide variety of
  89. other applications.
  90. PILS manages both plugins (loadable objects), and the interfaces these plugins
  91. implement. PILS is designed to support any number of plugins implementing any
  92. number of interfaces.
  93. %package devel
  94. Summary: Heartbeat development package
  95. Summary(ja): Heartbeat 開発パッケージ
  96. Group: Development/Libraries
  97. Requires: heartbeat = %{version}-%{release}
  98. %description devel
  99. Heartbeat development package
  100. %prep
  101. %setup -q
  102. %patch0 -p1
  103. %patch1 -p1
  104. %build
  105. # disable-fatal-warnings flag used to disable gcc4.x warnings of 'difference in signedness'
  106. CFLAGS=${RPM_OPT_FLAGS} \
  107. %configure \
  108. --disable-fatal-warnings \
  109. --disable-static \
  110. %if %{ENABLE_MGMT}
  111. --enable-mgmt
  112. %else
  113. --disable-mgmt
  114. %endif
  115. make
  116. %install
  117. rm -rf $RPM_BUILD_ROOT
  118. mkdir -p $RPM_BUILD_ROOT
  119. make DESTDIR=$RPM_BUILD_ROOT install
  120. (
  121. cd $RPM_BUILD_ROOT/etc/ha.d/resource.d
  122. ln -s /usr/sbin/ldirectord ldirectord
  123. )
  124. mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/ha.d/conf
  125. # cleanup
  126. [ -d $RPM_BUILD_ROOT/usr/man ] && rm -rf $RPM_BUILD_ROOT/usr/man
  127. [ -d $RPM_BUILD_ROOT/usr/share/libtool ] && rm -rf $RPM_BUILD_ROOT/usr/share/libtool
  128. find $RPM_BUILD_ROOT -type f -name *.la -exec rm -f {} ';'
  129. sed -i -e '1i# -*-Shell-script-*-' $RPM_BUILD_ROOT/%{_libdir}/heartbeat/ocf-shellfuncs
  130. sed -i -e '1i# -*-Shell-script-*-' $RPM_BUILD_ROOT/%{_sysconfdir}/ha.d/shellfuncs
  131. chmod -x $RPM_BUILD_ROOT/%{_libdir}/heartbeat/ocf-shellfuncs
  132. chmod -x $RPM_BUILD_ROOT/%{_sysconfdir}/ha.d/shellfuncs
  133. chmod -x $RPM_BUILD_ROOT/%{_libdir}/heartbeat-gui/pymgmt.py
  134. %clean
  135. if [ -n "${RPM_BUILD_ROOT}" -a "${RPM_BUILD_ROOT}" != "/" ]; then
  136. rm -rf $RPM_BUILD_ROOT
  137. fi
  138. %pre
  139. /usr/sbin/groupadd -g %{uid} %{gname} &>/dev/null || :
  140. /usr/sbin/useradd -M -r -u %{uid} -s /sbin/nologin -d /var/lib/heartbeat/cores/hacluster \
  141. -c 'heartbeat user' -g %{gname} %{uname} &>/dev/null || :
  142. %post
  143. /sbin/ldconfig
  144. /sbin/chkconfig --add heartbeat
  145. %preun
  146. /sbin/chkconfig --del heartbeat
  147. %postun
  148. /sbin/ldconfig
  149. test "$1" != 0 || /usr/sbin/userdel %{uname} &>/dev/null || :
  150. test "$1" != 0 || /usr/sbin/groupdel %{gname} &>/dev/null || :
  151. %post -n ldirectord
  152. /sbin/chkconfig --add ldirectord
  153. %preun -n ldirectord
  154. /sbin/chkconfig --del ldirectord
  155. %post -n stonith -p /sbin/ldconfig
  156. %postun -n stonith -p /sbin/ldconfig
  157. %files
  158. %doc %{_datadir}/doc/%{name}-%{version}
  159. %defattr(-,root,root)
  160. %dir %{_sysconfdir}/ha.d
  161. %{_sysconfdir}/ha.d/harc
  162. %config(noreplace) %{_sysconfdir}/ha.d/shellfuncs
  163. %{_sysconfdir}/ha.d/rc.d
  164. %config(noreplace) %{_sysconfdir}/ha.d/README.config
  165. %{_libdir}/heartbeat
  166. %{_libdir}/heartbeat-gui
  167. %{_libdir}/libapphb.so.*
  168. %{_libdir}/libccmclient.so.*
  169. %{_libdir}/libcib.so.*
  170. %{_libdir}/libclm.so.*
  171. %{_libdir}/libcrmcommon.so.*
  172. %{_libdir}/libtransitioner.so.*
  173. %{_libdir}/libhbclient.so.*
  174. %{_libdir}/liblrm.so.*
  175. %{_libdir}/libpengine.so.*
  176. %{_libdir}/libplumb.so.*
  177. %{_libdir}/libplumbgpl.so.*
  178. %{_libdir}/librecoverymgr.so.*
  179. %{_libdir}/libstonithd.so.*
  180. %{_prefix}/lib/ocf
  181. %{_sysconfdir}/ha.d/resource.d/
  182. %exclude %{_sysconfdir}/ha.d/resource.d/ldirectord
  183. %{_sysconfdir}/init.d/heartbeat
  184. %config(noreplace) %{_sysconfdir}/logrotate.d/heartbeat
  185. %dir %{_var}/lib/heartbeat
  186. %dir %{_var}/lib/heartbeat/cores
  187. %dir %attr (0755, root, root) %{_var}/lib/heartbeat/cores/root
  188. %dir %attr (0755, nobody, nobody) %{_var}/lib/heartbeat/cores/nobody
  189. %dir %attr (0755, hacluster, haclient) %{_var}/lib/heartbeat/cores/hacluster
  190. %dir %{_var}/run/heartbeat
  191. %attr (0755, hacluster, haclient) %{_bindir}/cl_status
  192. %{_bindir}/cl_respawn
  193. %{_sbindir}/crmadmin
  194. %{_sbindir}/cibadmin
  195. %{_sbindir}/ccm_tool
  196. %{_sbindir}/crm_diff
  197. %{_sbindir}/crm_uuid
  198. %{_sbindir}/crm_mon
  199. %{_sbindir}/crm_sh
  200. %{_sbindir}/iso8601
  201. %{_sbindir}/crm_master
  202. %{_sbindir}/crm_standby
  203. %{_sbindir}/crm_attribute
  204. %{_sbindir}/crm_resource
  205. %{_sbindir}/crm_verify
  206. %{_sbindir}/attrd_updater
  207. %{_sbindir}/crm_failcount
  208. %{_sbindir}/ocf-tester
  209. %dir %attr (755, hacluster, haclient) %{_var}/run/heartbeat/ccm
  210. %dir %attr (755, hacluster, haclient) %{_var}/run/heartbeat/crm
  211. %dir %attr (755, hacluster, haclient) %{_var}/lib/heartbeat/crm
  212. %dir %attr (755, hacluster, haclient) %{_var}/lib/heartbeat/pengine
  213. %{_mandir}/man1/cl_status.1*
  214. %{_mandir}/man1/ha_logger.1*
  215. %{_mandir}/man1/hb_standby.1*
  216. %{_mandir}/man1/hb_takeover.1*
  217. %{_mandir}/man1/hb_addnode.1*
  218. %{_mandir}/man1/hb_delnode.1*
  219. %{_mandir}/man8/heartbeat.8*
  220. %{_mandir}/man8/apphbd.8*
  221. %{_mandir}/man8/ha_logd.8*
  222. %{_mandir}/man8/cibadmin.8*
  223. %{_mandir}/man8/crm_resource.8*
  224. %if %{ENABLE_SNMP_SUBAGENT}
  225. /LINUX-HA-MIB.mib
  226. %endif
  227. %if %{ENABLE_MGMT}
  228. %{_libdir}/libhbmgmt.so.*
  229. %{_libdir}/libhbmgmtclient.so.*
  230. %{_libdir}/libhbmgmtcommon.so.*
  231. %{_libdir}/libhbmgmttls.so.*
  232. %config(noreplace) %{_sysconfdir}/pam.d/hbmgmtd
  233. %{_datadir}/locale/zh_CN/LC_MESSAGES/haclient.mo
  234. %endif
  235. %files -n ldirectord
  236. %doc doc/COPYING
  237. %doc doc/README
  238. %doc ldirectord/ldirectord.cf
  239. %defattr(-,root,root)
  240. %{_sysconfdir}/ha.d/conf
  241. %{_sbindir}/ldirectord
  242. %{_sbindir}/supervise-ldirectord-config
  243. %config(noreplace) %{_sysconfdir}/logrotate.d/ldirectord
  244. %{_sysconfdir}/init.d/ldirectord
  245. %{_sysconfdir}/ha.d/resource.d/ldirectord
  246. %{_mandir}/man8/ldirectord.8*
  247. %{_mandir}/man8/supervise-ldirectord-config.8*
  248. %files -n stonith
  249. %doc doc/COPYING
  250. %doc doc/README
  251. %defattr(-,root,root)
  252. %{_libdir}/*.so.*
  253. %{_libdir}/stonith/
  254. %{_sbindir}/stonith
  255. %{_sbindir}/meatclient
  256. %{_mandir}/man8/stonith.8*
  257. %{_mandir}/man8/meatclient.8*
  258. %files -n pils
  259. %doc doc/COPYING
  260. %doc doc/README
  261. %defattr(-,root,root)
  262. /usr/include/pils
  263. %{_libdir}/libpils.*
  264. %{_libdir}/pils/
  265. %files devel
  266. %doc %{_datadir}/doc/%{name}-%{version}
  267. %defattr(-,root,root)
  268. %{_includedir}/heartbeat/
  269. %{_includedir}/clplumbing/
  270. %{_includedir}/saf/
  271. %{_includedir}/ocf/
  272. %{_includedir}/stonith/
  273. %{_includedir}/pils/
  274. %{_libdir}/*.so
  275. %changelog
  276. * Wed Mar 07 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.0.8-7
  277. - rebuild with net-snmp-5.7.1
  278. * Sun Mar 20 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.0.8-6
  279. - rebuild with openssl-1.0.0d
  280. - add BuildRequires: libuuid-devel, libxml2-devel
  281. * Sun Oct 3 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 2.0.8-5
  282. - rebuilt with new toolchain
  283. * Sun May 17 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 2.0.8-4
  284. - spec in UTF-8
  285. - changed devel Group to Development/Libraries
  286. * Tue May 05 2009 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 2.0.8-3
  287. - new versioning policy
  288. - rebuild with gnutls 2.6.6, libtool 2.2.6 and curl 7.19.4
  289. - add BuildRequires: curl-devel
  290. * Sun Jan 06 2008 Shu KONNO <owa@bg.wakwak.com> 2.0.8-0vl2
  291. - rebuilt with net-snmp-5.4.1
  292. * Sat May 19 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 2.0.8-0vl1
  293. - new upstream release
  294. - build with new environment
  295. * Mon Oct 30 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 2.0.7-0vl2
  296. - rebuild with gnutls-1.4
  297. - add Japanese summaries
  298. * Mon Oct 23 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 2.0.7-0vl1
  299. - initial build for Vine Linux based on FE package.
  300. * Wed Aug 30 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.7-2
  301. - rebuild for Fedora Extras 6
  302. * Wed Aug 16 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.7-1
  303. - upstream version 2.0.7
  304. * Sat Jul 15 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.6-2
  305. - added BuildReqs: ncurses-devel
  306. * Fri Jul 14 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.6-1
  307. - upstream version 2.0.6
  308. * Fri Jun 16 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.5-2
  309. - bump for gnutls change in devel
  310. * Thu Apr 27 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.5-1
  311. - upstream version 2.0.5
  312. - removed patch2 - ownership of /heartbeat/crm/cib.xml is no longer
  313. set in cts/CM_LinuxHAv2.py.in
  314. * Wed Mar 29 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.4-2
  315. - Version 2.0.4
  316. * Wed Mar 1 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-9
  317. - changed user creation
  318. - added patch2 heartbeat-2.0.3-fedora-ccmuser.patch
  319. * Wed Mar 1 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-8
  320. - specifically excluded ldirectord symlink from heartbeat package
  321. - removed user and group deletion in postun
  322. - renamed subpackages ldirectord, pils and stonith to lose prefix heartbeat
  323. by using -n
  324. * Tue Feb 28 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-7
  325. - fixed more rpmlint errors and warnings
  326. * Sat Feb 25 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-6
  327. - fixed number of rpmlint warnings and errors (still ignores some..)
  328. - generate 'predictable' uid and gid with fedora-usermgmt to use with
  329. configure flag -with-ccmuser-id and groupadd, useradd
  330. - added Buildreq's: libtool-ltdl-devel, fedora-usermgmt-setup
  331. net-snmp-devel, bzip2-devel
  332. - removed *.so duplication in heartbeat and heartbeat-devel
  333. - changed file sections
  334. * Fri Feb 24 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-5
  335. - useradd with fedora-usermgmt
  336. - added *.so file to -devel sub-package
  337. * Sat Feb 18 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-4
  338. - removed all perl requires; should be picked up by rpmbuild automagically
  339. - changed system user creation hacluster part to use baseid:
  340. (http://fedoraproject.org/wiki/Packaging/UserCreation)
  341. * Thu Feb 16 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-3
  342. - removed Requires: python and gnutls
  343. - changed _libdir/ocf -> _prefix/lib/ocf
  344. - reversed subpackages depend on basepackage
  345. - removed Req swig (kept BuildReq)
  346. - added Req pygtk2
  347. * Wed Feb 15 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-2
  348. - fixes for various rpmlint errors and warnings
  349. - fixed setup -q
  350. - make subpackages depend on basepackage, not reverse
  351. - clean buildroot at beginning of install
  352. - replaced a number of hardcoded paths with RPM macros
  353. - Changed Group from Networking/Daemons to System Environment/Daemons
  354. - enable mgmt option
  355. * Sun Feb 12 2006 Joost Soeterbroek <fedora@soeterbroek.com> - 2.0.3-1
  356. - rebuilt for Fedora Extras
  357. * Fri Feb 10 2006 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  358. + Version 2.0.3 - Bug fixes and significant new features.
  359. + Management Daemon/Library and GUI client
  360. + provide a management library for manamgement daemon and CIM provider
  361. + provide a management daemon and a basic GUI management tool
  362. + CIM enablement
  363. + CIM (Common Information Model) enablement - works with
  364. sblim-sfcb, OpenWBEM, and Pegasus CIMOMs
  365. - not yet compiled into our binary RPMs because of dependencies
  366. + CRM (Cluster Resource Manager) General
  367. + All shutdowns go via the PE/TE - preserves inter-resource ordering
  368. + Support for future changes to the CIB (depreciation of cib_fragment)
  369. + Overhaul of IPC and HA channel callback logic
  370. + Many improvments to the quality and quantity (reduced) of logging
  371. + CRMd
  372. + Timerless elections - when everyone has voted we're done
  373. + Use the replace notification from the CIB to re-update our copy with
  374. our view of our peers.
  375. + Reliably detect if the LRM connection is still active.
  376. + Elections
  377. + newer versions defer to older ones in DC elections
  378. (opposite of current behavior)
  379. + this means that only once the complete cluster has been upgraded will
  380. we start acting like the new version and accept new config options
  381. + it also means newer PE's and TE's (the most complex pieces) don't need
  382. "act like the old version" options and can rely on all slaves being at
  383. least as up-to-date as they are
  384. + people can run mixed clusters as long as they want
  385. (until they want the new PE features)
  386. + new DCs only update the version number in the CIB if they have a
  387. higher value
  388. + nodes that start and have a lower version than that stored in the CIB
  389. shut themselves down (the CRM part anyway)
  390. + this prevents an admin from introducing old nodes back into an upgraded
  391. cluster. It probably doesn't fully understand the config and may not
  392. support the actions the PE/TE requires.
  393. + CIB (Common Information Base daemon)
  394. + Make sure "query only" connections cant modify the CIB
  395. + Periodically dump some stats about what the CIB has been doing.
  396. + Verify there are no memory leaks
  397. + Performance enhancements
  398. + Prevent a single CIB client from blocking everyone else
  399. + Clients Can be notified of full CIB replacements
  400. + record_config_changes option in ha.cf for those worried about
  401. the amount of logging. Defaults to "on".
  402. + suppress_cib_writes CIB option replaced with in enable_config_writes ha.cf
  403. (enable_config_writes to be removed in 2.0.4)
  404. + Never write the status section to disk
  405. + Check permissions for the on-disk CIB at startup
  406. + Dont trash unreadable on-disk CIBs
  407. + Fix for updates made against the whole CIB (not just one section)
  408. + PEngine (Policy Engine)
  409. + Many improvements to the handling of resource groups
  410. + Support "anonymous" clones
  411. + Fix stonith ordering
  412. + Order DC shutdowns after everyone else's
  413. + Support short resource names (for group and clone resources)
  414. + The ordering and colocation of grouped resources is now optional
  415. + Support probing new nodes for active resources.
  416. + All "probe" actions are controlled by the PE.
  417. + No resource may be started until the probing is complete.
  418. + Do not probe for resources we know to be active on unprobed nodes
  419. + When looking for monitor ops, only mark it optional if it was already
  420. active on the node we're interested in.
  421. + Detect changes to class/type/provider/parameters and force a restart
  422. of the resource
  423. + New record_pengine_inputs option in ha.cf for those worried about
  424. the amount of logging. Defaults to "on".
  425. + Differentiate between config and processing errors
  426. + reduces the frequency that we need to log the complete CIB
  427. + Make notify for master/slave work
  428. + New CIB option: stop_orphan_actions (boolean)
  429. If a resource is no longer defined, we can optionally stop it
  430. + New CIB option: stop_orphan_actions (boolean)
  431. If a monitor op for a given interval is no longer defined, we can
  432. optionally stop it
  433. + Add support for time and phase-of-the-moon based constraints
  434. + Improved failure handling: avoiding false positives
  435. + Always create orphaned resources - so they show up in crm_mon
  436. + Do not require sequential clone numbers starting at 0
  437. + TEngine (transition engine)
  438. + Detect old stonith ops
  439. + CLIs (Command Line interfaces)
  440. + Create a --one-shot option for crm_mon
  441. + Switch a number of CLI tools to use the new syncronous connections
  442. + Log errors to stderr where they will be seen and therefore useful
  443. + Support migration and un-migration of resources and resource groups
  444. + Create crm_verify for checking configuration validity
  445. + Simplify the passing of XML to cibadmin
  446. + Known open bugs worth mentioning:
  447. + 1075, 1080, 1081, 1084, 1085, 1064, 1069, 756, 984
  448. + 1050, 1082, 1037, 1079
  449. * Thu Sep 22 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  450. + Version 2.0.2 - small bug fix only release
  451. + Fixed a bug in ping directive - it works again
  452. + Added a check to BasicSanityCheck to check ping and ping_group directives
  453. + fixed cl_status nodestatus to return 0 if a node has status "ping"
  454. + fixed a memory leak in the CRM's LRM interface code
  455. + fixed code which deterimines which version of the CRM becomes
  456. the DC when basic CIB schema versions differ. It now prefers
  457. the older version to be DC instead of the newer version.
  458. * Wed Sep 14 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  459. + Version 2.0.1 -
  460. + Communication Layer
  461. + netstring encoding format is changed to be more efficient
  462. + add compression capability for big messages
  463. + Add man pages for hb_standby/hb_takeover
  464. + The assert triggered by 2.0.0 has been fixed
  465. + CIB can now contain XML comments and/or be in DOS format
  466. + Includes implementation of the ISO8601 date format
  467. + New CLI tools for changing cluster preferences, node attributes
  468. and node standby
  469. + Improved recovery and placement of group resources
  470. + Detection of failed nodes by the Policy Engine is fixed
  471. + New Policy Engine features
  472. http://www.linux-ha.org/ClusterResourceManager/DTD1.0/Annotated :
  473. sections 1.5.[8,9,10,12]
  474. + Constraints and instance attributes can now be active conditionally
  475. + Rules can now contain other rules
  476. + Date/Time based expressions are supported
  477. + Cloned resources can now optionally be notified before and after
  478. any of its peers are stopped or started.
  479. + The cluster can re-evaluate the configuration automatically after
  480. a defined interval of idleness
  481. + Removed a flow control message which was very annoying when operating
  482. in a mixed 1.x/2.x environment
  483. -- Known Bugs :-( --
  484. - Bug 859 - FSA took too long to complete action - fully recovered from
  485. - Bug 882 - IPC channel not connected during shutdown - harmless
  486. - Bug 879 - Failed actions cause extra election - harmless
  487. Each of these occurs about once or twice in 5000 test iterations
  488. - This is probably > 10K failovers
  489. - rsc_location constraints cannot have rules that contain other rules
  490. (fixed in CVS after release)
  491. * Fri Jul 29 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  492. + Version 2.0.0 - First stable release of the next generation of the Linux-HA project
  493. + Basic Characteristics described here:
  494. http://linux-ha.org/FactSheetv2
  495. + Core infrastructure improvments:
  496. + Messaging (message acknowledging and flow control)
  497. + Logging (logging daemon)
  498. + Release 1.x style (2-node) clusters fully supported
  499. + Multi-node support (so far up to 16-node clusters tested)
  500. See http://linux-ha.org/GettingStartedV2 for more information
  501. + New components:
  502. + Cluster Information Base (replicated resource configuration)
  503. + Cluster Resource Manager (supporting 1->N nodes)
  504. + Modular Policy Engine (controlling resource placement)
  505. + Local Resource Manager (policy free, not cluster aware)
  506. + Stonith Daemon (stand-alone fencing subsytem)
  507. + Support for OCF and LSB resource agents
  508. + Support for composite resource types (groups, clones)
  509. + Support for a rich set of resource location and ordering constraints
  510. + Conversion tool for existing haresources
  511. + Resources monitored by request
  512. + Resource "maintenance" mode
  513. + Several failback, failure and "No Quorum" behaviours to choose from
  514. (global defaults and per action or resource)
  515. + Sample cluster state and configuration monitoring tools
  516. Known issues in 2.0.0:
  517. - Under some rare circumstances the cluster manager will time out
  518. while stabilizing a new cluster state. This appears to be
  519. otherwise harmless - the cluster is actually fine.
  520. http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=770
  521. - Under some rare circumstances, a dev assert will be triggered
  522. in unpack.c. This results in the pengine getting restarted.
  523. This is annoying, but not a disaster.
  524. http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=797
  525. * Tue May 23 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  526. + Version 1.99.5 - Near-final beta of 2.0.0 release
  527. + many bug fixes - code looks very stable at this point
  528. -- well tested at this point on 4 and 8 node clusters.
  529. * Thu Apr 07 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  530. + Version 1.99.4 - Near-final beta of 2.0.0 release
  531. + many bug fixes since 1.99.1
  532. + new external STONITH model - fully supports scripting interface
  533. + tested through 12 node clusters successfully
  534. + No serious defects found in testing
  535. + Easier-to-understand locational constraints model
  536. + Many bug fixes of many kinds
  537. + Important bug fixes to OCF IPaddr resource agent
  538. + Resources are monitored only on request
  539. + See http://wiki.linux-ha.org/ClusterResourceManager/Setup
  540. for basic ideas about getting started.
  541. + Release 1 style (2-node) clusters still fully supported
  542. + Release 2 style clusters support 1-N node clusters
  543. (where N is probably something like 8-32)
  544. * Tue Mar 20 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  545. + Version 1.99.3 - Near-final beta "technology preview" of 2.0.0 release
  546. + many bug fixes since 1.99.1
  547. + tested through 12 node clusters with reasonable success
  548. + new STONITH API
  549. * Sun Feb 20 2005 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  550. + Version 1.99.2 - Near-final beta "technology preview" of 2.0.0 release
  551. + Many many many changes. Far too many to describe here.
  552. + See http://wiki.linux-ha.org/ClusterResourceManager/Setup
  553. for certain basic ideas about getting started.
  554. * Mon Oct 11 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  555. + Version 1.99.1 - *early* beta series - preparing for 2.0.0
  556. + Andrew provided a number of fixes to the CRM and 2.0 features
  557. + Fixed a problem with retrying failed STONITH operations
  558. * Mon Oct 11 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  559. + Version 1.99.0 - *early* beta series - preparing for 2.0.0
  560. + All STABLE changes noted below have been ported to this branch
  561. + Included in this release is a beta of the next generation of Heartbeat
  562. resource manager developed by Andrew Beekhof.
  563. http://linuxha.trick.ca/NewHeartbeatDesign is a good place to learn
  564. more about this effort. Please examine crm/README, crm/test/README
  565. and crm/crm-1.0.dtd for example usage and configuration.
  566. + Also included is the L(ocal) R(esource) M(anager) developed by IBM China
  567. which is an integral part of the NewHeartbeatDesign.
  568. + Known caveats:
  569. - STONITH as a whole has seen a code cleanup and should be tested
  570. carefully.
  571. - The external STONITH plug-in has undergone major surgery and
  572. probably doesn't work yet.
  573. - the new CRM is not perfectly stable with 3 nodes yet.
  574. + PLEASE see http://osdl.org/developer_bugzilla/enter_bug.cgi?product=Linux-HA
  575. and use it to report quirks and issues you find!
  576. * Sat Sep 18 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  577. + Version 1.2.3 (stable)
  578. + fixed a serious error which causes heartbeat to misbehave after about
  579. 10 months of continuous operation
  580. + Made our ARP packets more RFC compliant
  581. + Extended apcmastersnmp code to deal with new devices
  582. + fixed a bug concerning simultaneous stops of both machines causing one
  583. of them to not shut down.
  584. + added an option to suppress reporting on packet corruption
  585. + fixed it so that we don't create the FIFO by the RPM
  586. + made cl_status setgid so anyone can run it, and fixed exit codes
  587. + eliminated a serious memory leak associated with client code
  588. + packaged doc files which had been missed before
  589. + fixed many many small bugs and memory leaks detected by BEAM
  590. + added several new test cases
  591. + fixed longstanding bug in plugin unloading
  592. + fixed a shutdown hang problem
  593. + several fixes for Solaris, FreeBSD
  594. + Solaris packaging now included in base
  595. + fixed a bug related to the apache resource agent not handling
  596. quoted parameters
  597. + added use_apphbd parameter to have heartbeat register
  598. with apphbd instead of watchdog device when desired
  599. + changed apphbd to default its config file to /etc
  600. + added snmp subagent code
  601. + added hbaping communications plugin
  602. + added external STONITH plugin
  603. + ldirectord: fixed a bug where real servers that were are
  604. present in multiple virtual services will only be added
  605. to one virtual service.
  606. * Mon May 11 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  607. + Version 1.2.2 (stable)
  608. + Fixed several format string errors in communication plugins
  609. + Fixed a bug which kept us from diagnosing errors in non-aliased interfaces
  610. + Fixed a bug in ipaddr which caused an infinite loop when auto_failback on
  611. + Updated Debian things...
  612. + Added IPv6addr resource agent
  613. + Added ibmhmc STONITH plugin
  614. + Added cl_status command
  615. + Fixed a bug regarding restarts when auto_failback is on...
  616. + Fixed a couple of bugs in sha1 authentication method for very long keys
  617. + Fixed a bug in the portblock resource agent so that it no longer blocks
  618. ports on the loopback interface
  619. + Increased the time allowed for split brain test before it declares failure
  620. + Version 1.2.1 (stable)
  621. + Netstrings can now be used for our on-the-wire data format
  622. + Perl/SWIG bindings added for some heartbeat libraries
  623. + Significant improvements to SAF data checkpointing API
  624. + Implemented unbuffered ipcsocket code for SAF APIs
  625. + Many Solaris fixes -- except for ipfail, Solaris works
  626. + Significant library restructuring
  627. + Watchdog device NOWAYOUT is now overridded if defaulted
  628. + Watchdog device now kills machine instantly after deadtime
  629. instead of after one minute
  630. + Hostnames should now be treated case-independently...
  631. + Added new client status APIs - client_status() and cstatus_callback()
  632. + Fixed bug with auto_failback and quick full restarts
  633. + We now automatically reboot when resources fail to stop correctly...
  634. + We now check the status of the configured STONITH device hourly...
  635. + STONITH operations repeat after a 5 second delay, not immediately...
  636. + Added hb_takeover command - complement to hb_standby
  637. + Added documentation on how to use evlog/TCP to enable testing to
  638. take place without losing messages due to UDP message forwarding
  639. + Several new tests from Mi, Jun - split brain, bandwidth, failure
  640. detection time.
  641. + Fix to LVM resource from Harald Milz <hm@muc.de>
  642. + Fixed FreeBSD authentication problems breaking ipfail
  643. + Fixed .so loading on Debian
  644. + Fixed false complaints about resource scripts (from Jens Schmalzing)
  645. + Fixed false stop failure from LinuxSCSI (from Jens Schmalzing <j.s@lmu.de>)
  646. * Thu Apr 15 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  647. + Version 1.3.0 - beta series
  648. + Netstrings can now be used for our on-the-wire data format
  649. + Perl/SWIG bindings added for some heartbeat libraries
  650. + Significant improvements to SAF data checkpointing API
  651. + Implemented unbuffered ipcsocket code for SAF APIs
  652. + Many Solaris fixes -- except for ipfail, Solaris works
  653. + Significant library restructuring
  654. + Watchdog device NOWAYOUT is now overridded if defaulted
  655. + Watchdog device now kills machine instantly after deadtime
  656. instead of after one minute
  657. + Hostnames should now be treated case-independently...
  658. + Added new client status APIs - client_status() and cstatus_callback()
  659. + Fixed bug with auto_failback and quick full restarts
  660. + We now automatically reboot when resources fail to stop correctly...
  661. + We now check the status of the configured STONITH device hourly...
  662. + STONITH operations repeat after a 5 second delay, not immediately...
  663. + Added hb_takeover command - complement to hb_standby
  664. + Added documentation on how to use evlog/TCP to enable testing to
  665. take place without losing messages due to UDP message forwarding
  666. + Several new tests from Mi, Jun - split brain, bandwidth, failure
  667. detection time.
  668. + Fix to LVM resource from Harald Milz <hm@muc.de>
  669. * Tue Feb 16 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  670. + Version 1.2.0
  671. + Replaced the nice_failback option with the auto_failback option.
  672. THIS OBSOLETES THE NICE_FAILBACK OPTION. READ THE DOCS FOR HOW
  673. TO UPGRADE SMOOTHLY.
  674. + Added a new feature to hb_standby which allows you to give up
  675. any specific category of resources: local, foreign, or all.
  676. The old behavior is "all" which is the default.
  677. This allows you to put a auto_failback no cluster into
  678. an active/active configuration on demand.
  679. + ipfail now works properly with auto_failback on (active/active)
  680. + ipfail now has "hysteresis" so that it doesn't respond immediately
  681. to a network failure, but waits a little while so that the
  682. damage can be properly assessed and extraneous takeovers avoided
  683. + Added new ping node timeout directive "deadping"
  684. + Made sure heartbeat preallocated stack and heap, and printed a
  685. message if we allocate heap once we're started up...
  686. + IPMILan STONITH plugin added to CVS
  687. + Added IPaddr2 resource script
  688. + Made the APC smart UPS ups code compatible with more UPSes
  689. + Added a (preliminary?) ordered messaging facility from Yi Zhu
  690. + Changed IPaddr's method of doing ARPs in background so that
  691. certain timing windows were closed.
  692. + Added OCF (wrapper) resource script
  693. + Allow respawn programs to take arguments
  694. + Added pinggroups (where any node being up is OK)
  695. + SIGNIFICANT amount of internal rearchitecture.
  696. + Many bug fixes.
  697. + Several documentation updates.
  698. * Tue Feb 10 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  699. + Version 1.1.5
  700. + ipfail now has "hysteresis" so that it doesn't respond immediately
  701. to a network failure, but waits a little while so that the
  702. damage can be properly assessed and extraneous takeovers avoided
  703. + Several fixes to cl_poll()
  704. + More fixes to the IPC code - especially handling data reception
  705. after EOF
  706. + removed some unclean code from GSource for treating EOF conditions
  707. + Several bugs concerning hanging when shutting down early during startup
  708. + A few BasicSanityCheck bug fixes
  709. + CTS now allows a single machine to be able to monitor several clusters
  710. + Most former CTS options are now either unneeded or on the command line
  711. + Increased number of ARPs and how long they're being sent out
  712. + Fixed uncommon (authorization) memory leak
  713. + Some Solaris portability fixes.
  714. + Made init script handle standby correctly for new config files
  715. + Improved the fast failure detection test
  716. + Added some backwards compatibility for nice_failback and some default
  717. authentication directives
  718. + Corrected the 1.1.4 change log
  719. * Fri Jan 22 2004 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  720. + Version 1.1.4
  721. + ipfail now works properly with auto_failback on (active/active)
  722. + Changed the API to use sockets (IPC library) instead of FIFOs.
  723. + Added new apiauth directives to provide authorization information
  724. formerly provided by the FIFO permissions.
  725. + Added Intel's implementation of the SAF data checkpointing API and daemon
  726. + Added a cleanup suggested by Emily Ratliff.
  727. + IPMILan STONITH plugin added to CVS
  728. + Added IPaddr2 resource script
  729. + Various cleanups due to horms.
  730. + Fixed authentication to work on 64-bit platforms(!)
  731. + Fixed the cl_poll() code to handle corner cases better
  732. + Made heartbeat close watchdog device before re-execing itself
  733. + New CTS improvements from Mi, Jun <jun.mi@intel.com>
  734. + Various minor bug fixes.
  735. . Several shutdown bugs addressed
  736. . fixed sendarp to make a pid file, so we can shut it down
  737. when we shut everything else down in case it's still running.
  738. . Lots of minor bug fixes to IPC code
  739. . Lots of minor bug fixes to ipctest program
  740. . made BasicSanityCheck more tolerant of delays
  741. . Fixed IPC code to authenticate based on ints, not int*s.
  742. . Check properly for strnlen instead of strlen...
  743. . Several signed/unsigned fixes
  744. . A few uninitialized vars now are inited
  745. . Switched to compiling lex/yacc sources the automake way
  746. . Lots of minor CTS fixes...
  747. + ldirectord bug fixes:
  748. . When new real servers are added on initialisation or when
  749. the configuration file is reread they are marked with status
  750. of -1 (uninitialised) so they will be checked and inserted
  751. into the virtual service as required
  752. . All checks use the checkport if set, otherwise the port set for
  753. the individual real server. This was the case for http and
  754. connect checks, but others had variations on this theme.
  755. . When the configuration file is reread because it changed
  756. on disk and autoreload is set, check the real servers
  757. immediately rather than waiting for checkinterval to expire
  758. . Already running message sent to stderr instead of stdout
  759. . Support alternate server in real-server specific URL
  760. . Treat the same real server with different weights as a different
  761. real server. Fixes bug reported by Philip Hayward whereby the same
  762. real-server would always have the same weight, regardless of
  763. the ldirectord.cf
  764. * Fri Sep 26 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  765. + Version 1.1.3
  766. + Bugfix for heartbeat starting resources twice concurrently if
  767. auto_failback was set to "legacy".
  768. + Bugfix for messages getting lost if messages were sent in quick
  769. succession. (Kurosawa Takahiro)
  770. + Bugfix for Filesystem resource checking for presence of filesystem
  771. support before loading the module.
  772. + BasicSanityCheck extended to cover more basic tests.
  773. + Bugfix for findif not working correctly for CIDR netmasks.
  774. + Minor bugfix for ldirectord recognizing new schedulers correctly and
  775. timeout settings are now being honoured.
  776. + Enhanced the message giving a better explanation of how to set up node
  777. names properly when current node not found in the ha.cf file
  778. + Send a message to the cluster whenever we have a node which doesn't
  779. need STONITHing - even though it's gone down. This fix needed
  780. by CCM, which is in turn needed by EVMS.
  781. + Enhanced the messages for missing ha.cf and missing haresources files
  782. explaining that sample config files are found in the documentation.
  783. + Fix for memory leak from Forrest Zhao<forrest.zhao@intel.com>
  784. + Added a (preliminary?) ordered messaging facility from Yi Zhu
  785. + FAQ updates
  786. + Added Xinetd resource script
  787. + Added OCF (wrapper) resource script
  788. + Allow respawn programs to take arguments
  789. + Added pinggroups (where any node being up is OK)
  790. + fixed ldirectord negotiatetimeout for HTTP
  791. + fixed a bug which caused -d flag to be ignored
  792. + failing resource scripts are now ERRORs not WARNings
  793. + now shuts down correctly when auto_failback == legacy
  794. * Mon Jul 13 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  795. + Version 1.1.2
  796. + Replaced the nice_failback option with the auto_failback option.
  797. THIS OBSOLETES THE NICE_FAILBACK OPTION. READ THE DOCS FOR HOW
  798. TO UPGRADE SMOOTHLY.
  799. + Changed IPaddr to not do ARPs in background, and shortened time
  800. between ARPs. Also made these things tunable...
  801. + changed our comm ttys to not become our controlling TTYs
  802. + Enhanced the ServeRAID script to fix a critical bug by using a new feature
  803. + Added a new DirectoryMap to CVS - tells where everything is...
  804. + significantly enhanced the BasicSanityCheck script, and the tests
  805. it calls.
  806. + added a new option to use a replacement poll function for improved
  807. real-time performance.
  808. + added the ability to have a cluster node's name be different
  809. from it's uname -n
  810. + Moved where CTS gets installed to /usr/lib/heartbeat/cts
  811. + Big improvements to the CTS README from IBM test labs in Austin.
  812. + bug fixes to the WTI NPS power switch
  813. + new client API calls:
  814. return arbitrary configuration parameters
  815. return current resource status
  816. + Added a new clplumbing function: mssleep()
  817. + added new capabilities for supporting pseudo-resources
  818. + added new messages which come out after initial takeover is done
  819. (improves CTS results)
  820. + LOTS of documentation updates.
  821. + fixed a security vulnerability
  822. + fixed a bug where heartbeat would shut down while in the middle
  823. of processing resource movement requests.
  824. + changed compilation flags to eliminate similar future security
  825. issues
  826. + went to even-more-strict gcc flags
  827. + fixed several "reload" bugs. Now reload works ;-)
  828. + fixed STONITH bug when other node never heard from.
  829. + Minor bug fixes (cleaned up corrupted message)
  830. + Two different client API bugs fixed.
  831. + changed the configure script to test which warning flags are
  832. supported by the current gcc.
  833. + enhanced the API test program to test new capabilities...
  834. * Wed May 21 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  835. + Version 1.1.1
  836. + Significant restructuring of the processes in heartbeat
  837. + Added a new feature to hb_standby which allows you to give up
  838. any specific category of resources: local, foreign, or all.
  839. The old behavior is "all" which is the default.
  840. This allows you to put a nice_failback cluster into
  841. an active/active configuration
  842. + Enhancements to the ServeRAID code to make it work with the new
  843. (supported) version of IPSSEND from the ServeRAID folks...
  844. + Added STONITH code for the Dell remote access controller
  845. + Fixed a major bug which kept it from taking over correctly after 246
  846. days or so
  847. + Fixed a major bug where heartbeat didn't lock itself into memory
  848. properly
  849. + Added new ping node timeout directive "deadping"
  850. + Made sure heartbeat preallocated stack and heap, and printed a
  851. message if we allocate heap once we're started up...
  852. + Minor heartbeat API bug fixes
  853. + Minor documentation fixes
  854. + Minor fix to allow IP addresses with /32 masks...
  855. + Fixed a timing window for !nice_failback resource acquisition
  856. + Added several CCM bug fixes
  857. + Made the APC smart UPS ups code compatible with more UPSes
  858. + Fixed a bug in respawn
  859. + Enhanced internal checking for malloc errors...
  860. + Added IP alias search optimization from Sean Reifscheneider
  861. * Wed Mar 19 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  862. + Version 1.0.2:
  863. + Fixed comment errors in heartbeat init script to allow it to run on RH 8.0
  864. + Changed apphbd to use poll(2) instead of sigtimedwait(2)
  865. + Put missing files into tarball
  866. + Documentation improvements for IPaddr and other things
  867. + Fixed an error in hb_standby which kept it from working if releasing
  868. resources takes more than 10 seconds
  869. + Added a fix to allow heartbeat to run on systems without writable disk
  870. (like routers booting from CD-ROM)
  871. + Added configuration file for apphbd
  872. + Added fix from Adam Li to keep recoverymgr stop looping at high priority
  873. + Added fix to ServeRAID resource to make it work with (new) supported
  874. hardware
  875. + Added Delay resource script
  876. + Added fix to Filesystem to allow it to support NFS mounts and allow
  877. user to specify mount options
  878. + Added fix to IPaddr to make tmp directory for restoring loopback device
  879. + Added fix to ipcsocket code to deal correctly with EAGAIN when sending
  880. message body
  881. * Mon Feb 17 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  882. + Version 1.0.1:
  883. + Fixed some compile errors on different platforms, and library versions
  884. + Disable ccm from running on 'ping' nodes
  885. + Put in Steve Snodgrass' fix to send_arp to make it work on non-primary
  886. interfaces.
  887. * Thu Feb 13 2003 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  888. + Version 1.0.1 beta series
  889. 0.4.9g:
  890. + Changed default deadtime, warntime, and heartbeat interval
  891. + Auto* tool updates
  892. + VIP loopback fixes for IP address takeover
  893. + Various Solaris and FreeBSD fixes
  894. + added SNMP agent
  895. + Several CCM bug fixes
  896. + two new heartbeat API calls
  897. + various documentation fixes, including documentation for ipfail
  898. + Numerous minor cleanups.
  899. + Fixed a few bugs in the IPC code.
  900. + Fixed the (IPC) bug which caused apphbd to hang the whole machine.
  901. + Added a new IPC call (waitout)
  902. + Wrote a simple IPC test program.
  903. + Clarified several log messages.
  904. + Cleaned up the ucast communications plugin
  905. + Cleaned up for new C compilers
  906. + Fixed permissions bug in IPC which caused apphbd to not be usable by all
  907. + Added a new rtprio option to the heartbeat config file
  908. + updated apphbtest program
  909. + Changed ipfail to log things at same level heartbeat does
  910. * Sat Nov 30 2002 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  911. + Version 0.5 beta series (now renamed to 1.0.1 beta series).
  912. 0.4.9f:
  913. + Added pre-start, pre-stop, post-stop and pre-stop constructs in init script
  914. + various IPC fixes
  915. + Fix to STONITH behavior: STONITH unresponsive node right after we reboot
  916. + Fixed extreme latency in IPC code
  917. + various configure.in cleanups
  918. + Fixed memory leak in IPC socket code
  919. + Added streamlined mainloop/IPC integration code
  920. + Moved more heartbeat internal communication to IPC library
  921. + Added further support for ipfail
  922. + Added supplementary groups to the respawn-ed clients
  923. + Added standby to init script actions
  924. + Lots of minor CCM fixes
  925. + Split (most) resource management code into a separate file.
  926. + Fixes to accommodate different versions of libraries
  927. + Heartbeat API client headers fixup
  928. + Added new API calls
  929. + Simplified (and fixed) handling of local status. This would sometimes cause
  930. obscure failures on startup.
  931. + Added new IPsrcaddr resource script
  932. KNOWN BUGS:
  933. + apphbd goes into an infinite loop on some platforms
  934. * Wed Oct 9 2002 Alan Robertson <alanr@unix.sh> (see doc/AUTHORS file)
  935. 0.4.9e:
  936. + Changed client code to keep write file descriptor open at all times
  937. (realtime improvement)
  938. + Added a "poll replacement" function based on sigtimedwait(2), which
  939. should be faster for those cases that can use it.
  940. + Added a hb_warntime() call to the application heartbeat API.
  941. + Changed all times in the configuration file to be in milliseconds
  942. if specified with "ms" at the end. (seconds is still the default).
  943. + Fixes to serious security issue due to Nathan Wallwork <nwallwo@pnm.com>
  944. + Changed read/write child processes to run as nobody.
  945. + Fixed a bug where ping packets are printed incorrectly when debugging.
  946. + Changed heartbeat code to preallocate a some heap space.
  947. + CCM daemon API restructuring
  948. + Added ipc_channel_pair() function to the IPC library.
  949. + Changed everything to use longclock_t instead of clock_t
  950. + Fixed a bug concerning the ifwalk() call on ping nodes in the API
  951. + Made apphbd run at high priority and locked into memory
  952. + Made a library for setting priority up.
  953. + Made ucast comm module at least be configurable and loadable.
  954. + Fixed a startup/shutdown timing problem.
  955. 0.4.9d:
  956. + removed an "open" call for /proc/loadavg (improve realtime behavior)
  957. + changed API code to not 1-char reads from clients
  958. + Ignored certain error conditions from API clients
  959. + fixed an obscure error message about trying to retransmit a packet
  960. which we haven't sent yet. This happens after restarts.
  961. + made the PILS libraries available in a separate package
  962. + moved the stonith headers to stonith/... when installed
  963. + improved debugging for NV failure cases...
  964. + updated AUTHORS file and simplified the changelog authorship
  965. (look in AUTHORS for the real story)
  966. + Added Ram Pai's CCM membership code
  967. + Added the application heartbeat code
  968. + Added the Kevin Dwyer's ipfail client code to the distribution
  969. + Many fixes for various tool versions and OS combinations.
  970. + Fixed a few bugs related to clients disconnecting.
  971. + Fixed some bugs in the CTS test code.
  972. + Added BasicSanityCheck script to tell if built objects look good.
  973. + Added PATH-like capabilities to PILS
  974. + Changed STONITH to use the new plugin system.
  975. + *Significantly* improved STONITH usage message (from Lorn Kay)
  976. + Fixed some bugs related to restarting.
  977. + Made exit codes more LSB-compliant.
  978. + Fixed various things so that ping nodes don't break takeovers.
  979. 0.4.9c and before:
  980. + Cluster partitioning now handled correctly (really!)
  981. + Complete rearchitecture of plugin system
  982. + Complete restructure of build system to use automake and port things
  983. to AIX, FreeBSD and solaris.
  984. + Added Lclaudio's "standby" capability to put a node into standby
  985. mode on demand.
  986. + Added code to send out gratuitous ARP requests as well as gratuitous
  987. arp replies during IP address takeover.
  988. + Suppress stonith operations for nodes which went down gracefully.
  989. + Significantly improved real-time performance
  990. + Added new unicast heartbeat type.
  991. + Added code to make serial ports flush stale data on new connections.
  992. + The Famous CLK_TCK compile time fixes (really!)
  993. + Added a document which describes the heartbeat API
  994. + Changed the code which makes FIFOs to not try and make the FIFOs for
  995. named clients, and several other minor API client changes.
  996. + Fixed a fairly rare client API bug where it would shut down the
  997. client for no apparent reason.
  998. + Added stonith plugins for: apcmaster, apcmastersnmp switches, and ssh
  999. module (for test environments only)
  1000. + Integrated support for the Baytech RPC-3 switch into baytech module
  1001. + Fixes to APC UPS plugin
  1002. + Got rid of "control_process: NULL message" message
  1003. + Got rid of the "controlfifo2msg: cannot create message" message
  1004. + Added -h option to give usage message for stonith command...
  1005. + Wait for successful STONITH completion, and retry if its configured.
  1006. + Sped up takeover code.
  1007. + Several potential timing problems eliminated.
  1008. + Cleaned up the shutdown (exit) code considerably.
  1009. + Detect the death of our core child processes.
  1010. + Changed where usage messages go depending on exit status from usage().
  1011. + Made some more functions static.
  1012. + Real-time performance improvement changes
  1013. + Updated the faqntips document
  1014. + Added a feature to heartbeat.h so that log messages get checked as
  1015. printf-style messages on GNU C compilers
  1016. + Changed several log messages to have the right parameters (discovered
  1017. as a result of the change above)
  1018. + Numerous FreeBSD, Solaris and OpenBSD fixes.
  1019. + Added backwards compatibility kludge for udp (versus bcast)
  1020. + Queued messages to API clients instead of throwing them away.
  1021. + Added code to send out messages when clients join, leave.
  1022. + Added support for spawning and monitoring child clients.
  1023. + Cleaned up error messages.
  1024. + Added support for DB2, ServeRAID and WAS, LVM, and Apache (IBMhttp too),
  1025. also ICP Vortex controller.
  1026. + Added locking when creating new IP aliases.
  1027. + Added a "unicast" media option.
  1028. + Added a new SimulStart and standby test case.
  1029. + Diddled init levels around...
  1030. + Added an application-level heartbeat API.
  1031. + Added several new "plumbing" subsystems (IPC, longclock_t, proctrack, etc.)
  1032. + Added a new "contrib" directory.
  1033. + Fixed serious (but trivial) bug in the process tracking code which caused
  1034. it to exit heartbeat - this occured repeatably for STONITH operations.
  1035. + Write a 'v' to the watchdog device to tell it not to reboot us when
  1036. we close the device.
  1037. + Various ldirectord fixes due to Horms
  1038. + Minor patch from Lorn Kay to deal with loopback interfaces which might
  1039. have been put in by LVS direct routing
  1040. + Updated AUTHORS file and moved list of authors over
  1041. * Fri Mar 16 2001 Alan Robertson <alanr@unix.sh>
  1042. + Version 0.4.9
  1043. + Split into 3 rpms - heartbeat, heartbeat-stonith heartbeat-ldirectord
  1044. + Made media modules and authentication modules and stonith modules
  1045. dynamically loadable.
  1046. + Added Multicast media support
  1047. + Added ping node/membership/link type for tiebreaking. This will
  1048. be useful when implementing quorum on 2-node systems.
  1049. (not yet compatible with nice_failback(?))
  1050. + Removed ppp support
  1051. + Heartbeat client API support
  1052. + Added STONITH API library
  1053. + support for the Baytech RPC-3A power switch
  1054. + support for the APCsmart UPS
  1055. + support for the VACM cluster management tool
  1056. + support for WTI RPS10
  1057. + support for Night/Ware RPC100S
  1058. + support for "Meatware" (human intervention) module
  1059. + support for "null" (testing only) module
  1060. + Fixed startup timing bugs
  1061. + Fixed shutdown sequence bugs: takeover occured before
  1062. resources were released by other system
  1063. + Fixed various logging bugs
  1064. + Closed holes in protection against replay attacks
  1065. + Added checks that complain if all resources aren't idle on startup.
  1066. + IP address takeover fixes
  1067. + Endian fixes
  1068. + Removed the 8-alias limitation
  1069. + Takeovers now occur faster (ARPs occur asynchronously)
  1070. + Port number changes
  1071. + Use our IANA port number (694) by default
  1072. + Recognize our IANA port number ("ha-cluster") if it's in /etc/services
  1073. + Moved several files, etc. from /var/run to /var/lib/heartbeat
  1074. + Incorporated new ldirectord version
  1075. + Added late heartbeat warning for late-arriving heartbeats
  1076. + Added detection of and partial recovery from cluster partitions
  1077. + Accept multiple arguments for resource scripts
  1078. + Added Raid1 and Filesystem resource scripts
  1079. + Added man pages
  1080. + Added debian package support
  1081. * Fri Jun 30 2000 Alan Robertson <alanr@unix.sh>
  1082. + Version 0.4.8
  1083. + Incorporated ldirectord version 1.9 (fixes memory leak)
  1084. + Made the order of resource takeover more rational: Takeover is now
  1085. left-to-right, and giveup is right-to-left
  1086. + Changed the default port number to our official IANA port number (694)
  1087. + Regularized more messages, eliminated some redundant ones.
  1088. + Print the version of heartbeat when starting.
  1089. + Print exhaustive version info when starting with debug on.
  1090. + Hosts now have 3 statuses {down, up, active} active means that it knows
  1091. that all its links are operational, and it's safe to send cluster
  1092. messages
  1093. + Significant revisions to nice_failback (mainly due to lclaudio)
  1094. + More SuSE-compatibility. Thanks to Friedrich Lobenstock <fl@fl.priv.at>
  1095. + Tidied up logging so it can be to files, to syslog or both (Horms)
  1096. + Tidied up build process (Horms)
  1097. + Updated ldirectord to produce and install a man page and be
  1098. compatible with the fwmark options to The Linux Virtual Server (Horms)
  1099. + Added log rotation for ldirectord and heartbeat using logrotate
  1100. if it is installed
  1101. + Added Audible Alarm resource by Kirk Lawson <lklawson@heapy.com>
  1102. and myself (Horms)
  1103. + Added init script for ldirectord so it can be run independently
  1104. of heartbeat (Horms)
  1105. + Added sample config file for ldirectord (Horms)
  1106. + An empty /etc/ha.d/conf/ is now part of the rpm distribution
  1107. as this is where ldirectord's configuration belongs (Horms)
  1108. + Minor startup script tweaks. Hopefully, we should be able to make core
  1109. files should we crash in the future. Thanks to Holger Kiehl for diagnosing
  1110. the problem!
  1111. + Fixed a bug which kept the "logfile" option from ever working.
  1112. + Added a TestCluster test utility. Pretty primitive so far...
  1113. + Fixed the serial locking code so that it unlocks when it shuts down.
  1114. + Lock heartbeat into memory, and raise our priority
  1115. + Minor, but important fix from lclaudio to init uninited variable.
  1116. * Sat Dec 25 1999 Alan Robertson <alanr@unix.sh>
  1117. + Version 0.4.7
  1118. + Added the nice_failback feature. If the cluster is running when
  1119. the primary starts it acts as a secondary. (Luis Claudio Goncalves)
  1120. + Put in lots of code to make lost packet retransmission happen
  1121. + Stopped trying to use the /proc/ha interface
  1122. + Finished the error recovery in the heartbeat protocol (and got it to work)
  1123. + Added test code for the heartbeat protocol
  1124. + Raised the maximum length of a node name
  1125. + Added Jacob Rief's ldirectord resource type
  1126. + Added Stefan Salzer's <salt@cin.de> fix for a 'grep' in IPaddr which
  1127. wasn't specific enough and would sometimes get IPaddr confused on
  1128. IP addresses that prefix-matched.
  1129. + Added Lars Marowsky-Bree's suggestion to make the code almost completely
  1130. robust with respect to jumping the clock backwards and forwards
  1131. + Added code from Michael Moerz <mike@cubit.at> to keep findif from
  1132. core dumping if /proc/route can't be read.
  1133. * Mon Nov 22 1999 Alan Robertson <alanr@unix.sh>
  1134. + Version 0.4.6
  1135. + Fixed timing problem in "heartbeat restart" so it's reliable now
  1136. + Made start/stop status compatible with SuSE expectations
  1137. + Made resource status detection compatible with SuSE start/stop expectations
  1138. + Fixed a bug relating to serial and ppp-udp authentication (it never worked)
  1139. + added a little more substance to the error recovery for the HB protocol.
  1140. + Fixed a bug for logging from shell scripts
  1141. + Added a little logging for initial resource acquisition
  1142. + Added #!/bin/sh to the front of shell scripts
  1143. + Fixed Makefile, so that the build root wasn't compiled into pathnames
  1144. + Turned on CTSRTS, enabling for flow control for serial ports.
  1145. + Fixed a bug which kept it from working in non-English environments
  1146. * Wed Oct 13 1999 Alan Robertson <alanr@unix.sh>
  1147. + Version 0.4.5
  1148. + Mijta Sarp added a new feature to authenticate heartbeat packets
  1149. using a variety of strong authentication techniques
  1150. + Changed resource acquisition and relinquishment to occur in heartbeat,
  1151. instead of in the start/stop script. This means you don't *really*
  1152. have to use the start/stop script if you don't want to.
  1153. + Added -k option to gracefully shut down current heartbeat instance
  1154. + Added -r option to cause currently running heartbeat to reread config files
  1155. + Added -s option to report on operational status of "heartbeat"
  1156. + Sped up resource acquisition on master restart.
  1157. + Added validation of ipresources file at startup time.
  1158. + Added code to allow the IPaddr takeover script to be given the
  1159. interface to take over, instead of inferring it. This was requested
  1160. by Lars Marowsky-Bree
  1161. + Incorporated patch from Guenther Thomsen to implement locking for
  1162. serial ports used for heartbeats
  1163. + Incorporated patch from Guenther Thomsen to clean up logging.
  1164. (you can now use syslog and/or file logs)
  1165. + Improved FreeBSD compatibility.
  1166. + Fixed a bug where the FIFO doesn't get created correctly.
  1167. + Fixed a couple of uninitialized variables in heartbeat and /proc/ha code
  1168. + Fixed longstanding crash bug related to getting a SIGALRM while in malloc
  1169. or free.
  1170. + Implemented new memory management scheme, including memory stats
  1171. * Thu Sep 16 1999 Alan Robertson <alanr@unix.sh>
  1172. + Version 0.4.4
  1173. + Fixed a stupid error in handling CIDR addresses in IPaddr.
  1174. + Updated the documentation with the latest from Rudy.
  1175. * Wed Sep 15 1999 Alan Robertson <alanr@unix.sh>
  1176. + Version 0.4.3
  1177. + Changed startup scripts to create /dev/watchdog if needed
  1178. + Turned off loading of /proc/ha module by default.
  1179. + Incorporated bug fix from Thomas Hepper <th@ant.han.de> to IPaddr for
  1180. PPP configurations
  1181. + Put in a fix from Gregor Howey <ghowey@bremer-nachrichten.de>
  1182. where Gregor found that I had stripped off the ::resourceid part
  1183. of the string in ResourceManager resulting in some bad calls later on.
  1184. + Made it compliant with the FHS (filesystem hierarchy standard)
  1185. + Fixed IP address takeover so we can take over on non-eth0 interface
  1186. + Fixed IP takeover code so we can specify netmasks and broadcast addrs,
  1187. or default them at the user's option.
  1188. + Added code to report on message buffer usage on SIGUSR[12]
  1189. + Made SIGUSR1 increment debug level, and SIGUSR2 decrement it.
  1190. + Incorporated Rudy's latest "Getting Started" document
  1191. + Made it largely Debian-compliant. Thanks to Guenther Thomsen, Thomas
  1192. Hepper, I単aki Fern叩ndez Villanueva and others.
  1193. + Made changes to work better with Red Hat 6.1, and SMP code.
  1194. + Sometimes it seems that the Master Control Process dies :-(
  1195. * Sat Aug 14 1999 Alan Robertson <alanr@unix.sh>
  1196. + Version 0.4.2
  1197. + Implemented simple resource groups
  1198. + Implemented application notification for groups starting/stopping
  1199. + Eliminated restriction on floating IPs only being associated with eth0
  1200. + Added a uniform resource model, with IP resources being only one kind.
  1201. (Thanks to Lars Marowsky-Bree for a good suggestion)
  1202. + Largely rewrote the IP address takeover code, making it clearer, fit
  1203. into the uniform resource model, and removing some restrictions.
  1204. + Preliminary "Getting Started" document by Rudy Pawul
  1205. + Improved the /proc/ha code
  1206. + Fixed memory leak associated with serial ports, and problem with return
  1207. of control to the "master" node.
  1208. (Thanks to Holger Kiehl for reporting them, and testing fixes!)
  1209. * Tue Jul 6 1999 Alan Robertson <alanr@unix.sh>
  1210. + Version 0.4.1
  1211. + Fixed major memory leak in 0.4.0 (oops!)
  1212. + Added code to eliminate duplicate packets and log lost ones
  1213. + Tightened up PPP/UDP startup/shutdown code
  1214. + Made PPP/UDP peacefully coexist with "normal" udp
  1215. + Made logs more uniform and neater
  1216. + Fixed several other minor bugs
  1217. + Added very preliminary kernel code for monitoring and controlling
  1218. heartbeat via /proc/ha. Very cool, but not really done yet.
  1219. * Wed Jun 30 1999 Alan Robertson <alanr@unix.sh>
  1220. + Version 0.4.0
  1221. + Changed packet format from single line positional parameter style
  1222. to a collection of {name,value} pairs. A vital change for the future.
  1223. + Fixed some bugs with regard to forwarding data around rings
  1224. + We now modify /etc/ppp/ip-up.local, so PPP-udp works out of the box
  1225. (at least for Red Hat)
  1226. + Includes the first version of Volker Wiegand's Hardware Installation Guide
  1227. (it's pretty good for a first version!)
  1228. * Wed Jun 09 1999 Alan Robertson <alanr@unix.sh>
  1229. + Version 0.3.2
  1230. + Added UDP/PPP bidirectional serial ring heartbeat
  1231. (PPP ensures data integrity on the serial links)
  1232. + fixed a stupid bug which caused shutdown to give unpredictable
  1233. results
  1234. + added timestamps to /var/log/ha-log messages
  1235. + fixed a couple of other minor oversights.
  1236. * Sun May 10 1999 Alan Robertson <alanr@unix.sh>
  1237. + Version 0.3.1
  1238. + Make ChangeLog file from RPM specfile
  1239. + Made ipresources only install in the DOC directory as a sample
  1240. * Sun May 09 1999 Alan Robertson <alanr@unix.sh>
  1241. + Version 0.3.0
  1242. + Added UDP broadcast heartbeat (courtesy of Tom Vogt)
  1243. + Significantly restructured code making it easier to add heartbeat media
  1244. + added new directives to config file:
  1245. + udp interface-name
  1246. + udpport port-number
  1247. + baud serial-baud-rate
  1248. + made manual daemon shutdown easier (only need to kill one)
  1249. + moved the sample ha.cf file to the Doc directory
  1250. * Sat Mar 27 1999 Alan Robertson <alanr@unix.sh>
  1251. + Version 0.2.0
  1252. + Make an RPM out of it
  1253. + Integrated IP address takeover gotten from Horms
  1254. + Added support to tickle a watchdog timer whenever our heart beats
  1255. + Integrated enough basic code to allow a 2-node demo to occur
  1256. + Integrated patches from Andrew Hildebrand <andrew@pdi.com> to allow it
  1257. to run under IRIX.
  1258. - Known Bugs
  1259. - Only supports 2-node clusters
  1260. - Only supports a single IP interface per node in the cluster
  1261. - Doesn't yet include Tom Vogt's ethernet heartbeat code
  1262. - No documentation
  1263. - Not very useful yet :-)
  1264. ###########################################################