Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- dracut-kdump.sh | 4 ++-- dracut-module-setup.sh | 2 +- kdump-lib.sh | 2 +- kdumpctl | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index d9e65ac..06e41bc 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -292,8 +292,8 @@ fence_kdump_notify() local nodes
if [ -f $FENCE_KDUMP_NODES ]; then - if [ -f $FENCE_KDUMP_CONFIG ]; then - . $FENCE_KDUMP_CONFIG + if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then + . $FENCE_KDUMP_CONFIG_FILE fi
read nodes < $FENCE_KDUMP_NODES diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index bdadf7c..cd60cf1 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -444,7 +444,7 @@ kdump_check_fence_kdump () {
echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES dracut_install $FENCE_KDUMP_SEND - dracut_install -o $FENCE_KDUMP_CONFIG + dracut_install -o $FENCE_KDUMP_CONFIG_FILE }
# Install a random seed used to feed /dev/urandom diff --git a/kdump-lib.sh b/kdump-lib.sh index 384f7b4..db0615f 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -3,7 +3,7 @@ # Kdump common variables and functions #
-FENCE_KDUMP_CONFIG="/etc/sysconfig/fence_kdump" +FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" FENCE_KDUMP_NODES="/etc/fence_kdump_nodes"
diff --git a/kdumpctl b/kdumpctl index 8d5498a..24fb988 100755 --- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then - files="$files $FENCE_KDUMP_CONFIG" + if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then + files="$files $FENCE_KDUMP_CONFIG_FILE" fi
check_exist "$files" && check_executable "$EXTRA_BINS"
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- dracut-kdump.sh | 4 ++-- dracut-module-setup.sh | 2 +- kdump-lib.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 06e41bc..4bac088 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -291,12 +291,12 @@ fence_kdump_notify() { local nodes
- if [ -f $FENCE_KDUMP_NODES ]; then + if [ -f $FENCE_KDUMP_NODES_FILE ]; then if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then . $FENCE_KDUMP_CONFIG_FILE fi
- read nodes < $FENCE_KDUMP_NODES + read nodes < $FENCE_KDUMP_NODES_FILE $FENCE_KDUMP_SEND $FENCE_KDUMP_OPTS $nodes & fi } diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index cd60cf1..0ce3885 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -442,7 +442,7 @@ kdump_check_fence_kdump () { done echo
- echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES + echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES_FILE dracut_install $FENCE_KDUMP_SEND dracut_install -o $FENCE_KDUMP_CONFIG_FILE } diff --git a/kdump-lib.sh b/kdump-lib.sh index db0615f..8b72823 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -5,7 +5,7 @@
FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" -FENCE_KDUMP_NODES="/etc/fence_kdump_nodes" +FENCE_KDUMP_NODES_FILE="/etc/fence_kdump_nodes"
is_ssh_dump_target() {
Move fence_kdump nodes filtering (they cannot contain `hostname`) into separate function get_list_of_nodes_to_notify. This will be also used by generic cluster fence_kdump configuration introduced in following patch.
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- dracut-module-setup.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 0ce3885..4aef4f8 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -415,6 +415,19 @@ kdump_check_iscsi_targets () { } }
+# filter node list not to contain hostname +get_list_of_nodes_to_notify() { + local nodes + + for node in $1; do + if [ "$node" = `hostname` ]; then + continue + fi + nodes="$nodes $node" + done + + echo "$nodes" +}
# setup fence_kdump in cluster # setup proper network and install needed files @@ -431,14 +444,14 @@ kdump_check_fence_kdump () { for node in ${nodelist}; do # convert $node from 'uname="nodeX"' to 'nodeX' eval $node - nodename=$uname - # Skip its own node name - if [ "$nodename" = `hostname` ]; then - continue - fi - nodes="$nodes $nodename" + nodes="$nodes $uname" + done + + nodes=$( get_list_of_nodes_to_notify "$nodes" )
- kdump_install_net $nodename + # setup network to reach each node + for node in ${nodes}; do + kdump_install_net $node done echo
On Wed, Mar 26, 2014 at 10:24:09AM +0100, Martin Perina wrote:
Move fence_kdump nodes filtering (they cannot contain `hostname`) into separate function get_list_of_nodes_to_notify. This will be also used by generic cluster fence_kdump configuration introduced in following patch.
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
dracut-module-setup.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 0ce3885..4aef4f8 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -415,6 +415,19 @@ kdump_check_iscsi_targets () { } }
+# filter node list not to contain hostname +get_list_of_nodes_to_notify() {
- local nodes
- for node in $1; do
if [ "$node" = `hostname` ]; then
continue
fi
nodes="$nodes $node"
- done
- echo "$nodes"
+}
# setup fence_kdump in cluster # setup proper network and install needed files @@ -431,14 +444,14 @@ kdump_check_fence_kdump () { for node in ${nodelist}; do # convert $node from 'uname="nodeX"' to 'nodeX' eval $node
nodename=$uname
# Skip its own node name
if [ "$nodename" = `hostname` ]; then
continue
fi
nodes="$nodes $nodename"
nodes="$nodes $uname"
- done
- nodes=$( get_list_of_nodes_to_notify "$nodes" )
A minor nit. Don't give spaces after bracket. Use.
nodes=$(get_list_of_nodes_to_notify "$nodes")
Otherwise patch looks good to me.
Vivek
kdump_install_net $nodename
- # setup network to reach each node
- for node in ${nodes}; do
done echokdump_install_net $node
-- 1.8.3.1
----- Original Message -----
From: "Vivek Goyal" vgoyal@redhat.com To: "Martin Perina" mperina@redhat.com Cc: kexec@lists.fedoraproject.org Sent: Thursday, March 27, 2014 8:51:59 PM Subject: Re: [PATCH 3/6] fence_kdump for generic clusters v3: Move fence_kdump nodes filtering into separate function
On Wed, Mar 26, 2014 at 10:24:09AM +0100, Martin Perina wrote:
Move fence_kdump nodes filtering (they cannot contain `hostname`) into separate function get_list_of_nodes_to_notify. This will be also used by generic cluster fence_kdump configuration introduced in following patch.
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
dracut-module-setup.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 0ce3885..4aef4f8 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -415,6 +415,19 @@ kdump_check_iscsi_targets () { } }
+# filter node list not to contain hostname +get_list_of_nodes_to_notify() {
- local nodes
- for node in $1; do
if [ "$node" = `hostname` ]; then
continue
fi
nodes="$nodes $node"
- done
- echo "$nodes"
+}
# setup fence_kdump in cluster # setup proper network and install needed files @@ -431,14 +444,14 @@ kdump_check_fence_kdump () { for node in ${nodelist}; do # convert $node from 'uname="nodeX"' to 'nodeX' eval $node
nodename=$uname
# Skip its own node name
if [ "$nodename" = `hostname` ]; then
continue
fi
nodes="$nodes $nodename"
nodes="$nodes $uname"
- done
- nodes=$( get_list_of_nodes_to_notify "$nodes" )
A minor nit. Don't give spaces after bracket. Use.
nodes=$(get_list_of_nodes_to_notify "$nodes")
Otherwise patch looks good to me.
Vivek
Ok, I will fix this
kdump_install_net $nodename
- # setup network to reach each node
- for node in ${nodes}; do
done echokdump_install_net $node
-- 1.8.3.1
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- dracut-module-setup.sh | 4 ++-- kdump-lib.sh | 4 ++-- kdumpctl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 4aef4f8..7951121 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -20,7 +20,7 @@ depends() { _dep="$_dep drm" fi
- if is_fence_kdump; then + if is_pcs_fence_kdump; then _dep="$_dep network" fi
@@ -434,7 +434,7 @@ get_list_of_nodes_to_notify() { # also preserve '[node list]' for 2nd kernel /etc/fence_kdump_nodes kdump_check_fence_kdump () { local nodes - is_fence_kdump || return 1 + is_pcs_fence_kdump || return 1
# get cluster nodes from cluster cib, get interface and ip address nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -` diff --git a/kdump-lib.sh b/kdump-lib.sh index 8b72823..6f8b991 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -27,8 +27,8 @@ strip_comments() echo $@ | sed -e 's/(.*)#.*/\1/' }
-# Check if fence kdump is configured in cluster -is_fence_kdump() +# Check if fence kdump is configured in Pacemaker cluster +is_pcs_fence_kdump() { # no pcs or fence_kdump_send executables installed? type -P pcs > /dev/null || return 1 diff --git a/kdumpctl b/kdumpctl index 24fb988..eb6bdbc 100755 --- a/kdumpctl +++ b/kdumpctl @@ -192,7 +192,7 @@ function check_fence_kdump() local image_time=$1 local cib_time
- is_fence_kdump || return 1 + is_pcs_fence_kdump || return 1
cib_time=`pcs cluster cib | xmllint --xpath 'string(/cib/@cib-last-written)' - | \ xargs -0 date +%s --date`
On Wed, Mar 26, 2014 at 10:24:10AM +0100, Martin Perina wrote:
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
Couple of lines of changelog will help. Otherwise patch looks good.
Vivek
dracut-module-setup.sh | 4 ++-- kdump-lib.sh | 4 ++-- kdumpctl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 4aef4f8..7951121 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -20,7 +20,7 @@ depends() { _dep="$_dep drm" fi
- if is_fence_kdump; then
- if is_pcs_fence_kdump; then _dep="$_dep network" fi
@@ -434,7 +434,7 @@ get_list_of_nodes_to_notify() { # also preserve '[node list]' for 2nd kernel /etc/fence_kdump_nodes kdump_check_fence_kdump () { local nodes
- is_fence_kdump || return 1
is_pcs_fence_kdump || return 1
# get cluster nodes from cluster cib, get interface and ip address nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -`
diff --git a/kdump-lib.sh b/kdump-lib.sh index 8b72823..6f8b991 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -27,8 +27,8 @@ strip_comments() echo $@ | sed -e 's/(.*)#.*/\1/' }
-# Check if fence kdump is configured in cluster -is_fence_kdump() +# Check if fence kdump is configured in Pacemaker cluster +is_pcs_fence_kdump() { # no pcs or fence_kdump_send executables installed? type -P pcs > /dev/null || return 1 diff --git a/kdumpctl b/kdumpctl index 24fb988..eb6bdbc 100755 --- a/kdumpctl +++ b/kdumpctl @@ -192,7 +192,7 @@ function check_fence_kdump() local image_time=$1 local cib_time
- is_fence_kdump || return 1
is_pcs_fence_kdump || return 1
cib_time=`pcs cluster cib | xmllint --xpath 'string(/cib/@cib-last-written)' - | \ xargs -0 date +%s --date`
-- 1.8.3.1
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- kdumpctl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kdumpctl b/kdumpctl index eb6bdbc..3058171 100755 --- a/kdumpctl +++ b/kdumpctl @@ -186,8 +186,8 @@ function check_config() }
# check_fence_kdump <image timestamp> -# return 0 if fence_kdump is configured and kdump initrd needs to be rebuilt -function check_fence_kdump() +# return 0 if fence_kdump is configured in Pacemaker cluster and kdump initrd needs to be rebuilt +function check_pcs_fence_kdump() { local image_time=$1 local cib_time @@ -239,8 +239,8 @@ function check_rebuild() image_time=0 fi
- #also rebuild when cluster conf is changed and fence kdump is enabled. - check_fence_kdump $image_time && modified_files="cluster-cib" + #also rebuild when Pacemaker cluster conf is changed and fence kdump is enabled. + check_pcs_fence_kdump $image_time && modified_files="cluster-cib"
EXTRA_BINS=`grep ^kdump_post $KDUMP_CONFIG_FILE | cut -d\ -f2` CHECK_FILES=`grep ^kdump_pre $KDUMP_CONFIG_FILE | cut -d\ -f2`
Adds two new options to kdump.conf to be able to configure fence_kdump support for generic clusters:
fence_kdump_args <arg(s)> - Command line arguments for fence_kdump_send (it can contain all valid arguments except hosts to send notification to)
fence_kdump_nodes <node(s)> - List of cluster node(s) separated by space to send fence_kdump notification to (this option is mandatory to enable fence_kdump)
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com --- dracut-kdump.sh | 19 ++++++----- dracut-module-setup.sh | 69 ++++++++++++++++++++++++++-------------- kdump-in-cluster-environment.txt | 35 +++++++++++++++++--- kdump-lib.sh | 8 +++++ kdump.conf | 11 +++++++ kdump.conf.5 | 15 +++++++++ kdumpctl | 2 +- 7 files changed, 119 insertions(+), 40 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 4bac088..cb13d92 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -246,6 +246,12 @@ read_kdump_conf() kdump_post) KDUMP_POST="$config_val" ;; + fence_kdump_args) + FENCE_KDUMP_ARGS="$config_val" + ;; + fence_kdump_nodes) + FENCE_KDUMP_NODES="$config_val" + ;; default) case $config_val in shell) @@ -289,20 +295,13 @@ read_kdump_conf()
fence_kdump_notify() { - local nodes - - if [ -f $FENCE_KDUMP_NODES_FILE ]; then - if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then - . $FENCE_KDUMP_CONFIG_FILE - fi - - read nodes < $FENCE_KDUMP_NODES_FILE - $FENCE_KDUMP_SEND $FENCE_KDUMP_OPTS $nodes & + if [ -n "$FENCE_KDUMP_NODES" ]; then + $FENCE_KDUMP_SEND $FENCE_KDUMP_ARGS $FENCE_KDUMP_NODES & fi }
-fence_kdump_notify read_kdump_conf +fence_kdump_notify
if [ -z "$CORE_COLLECTOR" ];then CORE_COLLECTOR=$DEFAULT_CORE_COLLECTOR diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 7951121..cba3539 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -20,7 +20,7 @@ depends() { _dep="$_dep drm" fi
- if is_pcs_fence_kdump; then + if [ is_generic_fence_kdump -o is_pcs_fence_kdump ]; then _dep="$_dep network" fi
@@ -263,7 +263,8 @@ kdump_install_net() {
#install kdump.conf and what user specifies in kdump.conf kdump_install_conf() { - sed -ne '/^#/!p' /etc/kdump.conf > /tmp/$$-kdump.conf + # filter comments and fence_kdump settings + sed -ne '/^#|^fence_kdump/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
while read config_opt config_val; do @@ -282,10 +283,16 @@ kdump_install_conf() { core_collector) dracut_install "${config_val%%[[:blank:]]*}" ;; + fence_kdump_args) + FENCE_KDUMP_ARGS="$config_val" + ;; + fence_kdump_nodes) + FENCE_KDUMP_NODES="$config_val" + ;; esac done < /etc/kdump.conf
- kdump_check_fence_kdump + kdump_check_fence_kdump "/tmp/$$-kdump.conf" inst "/tmp/$$-kdump.conf" "/etc/kdump.conf" rm -f /tmp/$$-kdump.conf } @@ -431,33 +438,47 @@ get_list_of_nodes_to_notify() {
# setup fence_kdump in cluster # setup proper network and install needed files -# also preserve '[node list]' for 2nd kernel /etc/fence_kdump_nodes +# save fence_kdump settings to kdump config file if fence_kdump is configured kdump_check_fence_kdump () { - local nodes - is_pcs_fence_kdump || return 1 + local kdump_cfg_file=$1 + + if [ -z "$FENCE_KDUMP_NODES" ]; then + if is_pcs_fence_kdump; then + # get cluster nodes from cluster cib, get interface and ip address + nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -` + + # nodelist is formed as 'uname="node1" uname="node2" ... uname="nodeX"' + # we need to convert each to node1, node2 ... nodeX in each iteration + for node in ${nodelist}; do + # convert $node from 'uname="nodeX"' to 'nodeX' + eval $node + FENCE_KDUMP_NODES="$FENCE_KDUMP_NODES $uname" + done + fi + fi
- # get cluster nodes from cluster cib, get interface and ip address - nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -` + FENCE_KDUMP_NODES=$( get_list_of_nodes_to_notify "$FENCE_KDUMP_NODES" )
- # nodelist is formed as 'uname="node1" uname="node2" ... uname="nodeX"' - # we need to convert each to node1, node2 ... nodeX in each iteration - for node in ${nodelist}; do - # convert $node from 'uname="nodeX"' to 'nodeX' - eval $node - nodes="$nodes $uname" - done + if [ -n "$FENCE_KDUMP_NODES" ]; then + # setup network to reach each node + for node in ${FENCE_KDUMP_NODES}; do + kdump_install_net $node + done
- nodes=$( get_list_of_nodes_to_notify "$nodes" ) + dracut_install $FENCE_KDUMP_SEND
- # setup network to reach each node - for node in ${nodes}; do - kdump_install_net $node - done - echo + echo "fence_kdump_nodes $FENCE_KDUMP_NODES" >> ${kdump_cfg_file}
- echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES_FILE - dracut_install $FENCE_KDUMP_SEND - dracut_install -o $FENCE_KDUMP_CONFIG_FILE + if [ -z "$FENCE_KDUMP_ARGS" ]; then + if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then + . $FENCE_KDUMP_CONFIG_FILE + FENCE_KDUMP_ARGS=$FENCE_KDUMP_OPTS + fi + fi + if [ -n "$FENCE_KDUMP_ARGS" ]; then + echo "fence_kdump_options $FENCE_KDUMP_ARGS" >> ${kdump_cfg_file} + fi + fi }
# Install a random seed used to feed /dev/urandom diff --git a/kdump-in-cluster-environment.txt b/kdump-in-cluster-environment.txt index c27a5d7..46c8614 100644 --- a/kdump-in-cluster-environment.txt +++ b/kdump-in-cluster-environment.txt @@ -34,9 +34,9 @@ recovery service, fence_kdump_send will periodically send messages to all cluster nodes. When the fence_kdump agent receives a valid message from the failed nodes, fencing is complete.
-How to configure cluster environment: +How to configure Pacemaker cluster environment:
-If we want to use kdump in cluster environment, fence-agents-kdump should be +If we want to use kdump in Pacemaker cluster, fence-agents-kdump should be installed in every nodes in the cluster. You can achieve this via the following command:
@@ -61,6 +61,31 @@ Then enable stonith
How to configure kdump:
-Actually there is nothing special in configuration between normal kdump and -cluster environment kdump. So please refer to Kexec-Kdump-howto file for more -information. +Actually there are two ways how to configure fence_kdump support: + +1) Pacemaker based clusters + If you have successfully configured fence_kdump in Pacemaker, there is + no need to add some special configuration in kdump. So please refer to + Kexec-Kdump-howto file for more information. + +2) Generic clusters + For other types of clusters there are two configuration options in + kdump.conf which enables fence_kdump support: + + fence_kdump_nodes <node(s)> + Contains list of cluster node(s) separated by space to send + fence_kdump notification to (this option is mandatory to enable + fence_kdump) + + fence_kdump_args <arg(s)> + Command line arguments for fence_kdump_send (it can contain + all valid arguments except hosts to send notification to) + + These options will most probably be configured by your cluster software, + so please refer to your cluster documentation how to enable fence_kdump + support. + +Please be aware that these two ways cannot be combined and 2) has precedence +over 1): if you specify fence_kdump_nodes option, it will be used to configure +fence_kdump even if you configured fence_kdump in Pacemaker cluster! + diff --git a/kdump-lib.sh b/kdump-lib.sh index 6f8b991..bbaba64 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -38,6 +38,14 @@ is_pcs_fence_kdump() (pcs cluster cib | grep -q 'type="fence_kdump"') &> /dev/null || return 1 }
+# Check if fence_kdump is configured using kdump options +is_generic_fence_kdump() +{ + [ -x $FENCE_KDUMP_SEND ] || return 1 + + grep -q "^fence_kdump_nodes" /etc/kdump.conf +} + get_user_configured_dump_disk() { local _target diff --git a/kdump.conf b/kdump.conf index a106462..08bbe2a 100644 --- a/kdump.conf +++ b/kdump.conf @@ -123,6 +123,15 @@ # dracut_args <arg(s)> # - Pass extra dracut options when rebuilding kdump # initrd. +# +# fence_kdump_args <arg(s)> +# - Command line arguments for fence_kdump_send (it can contain +# all valid arguments except hosts to send notification to). +# +# fence_kdump_nodes <node(s)> +# - List of cluster node(s) separated by space to send fence_kdump +# notification to (this option is mandatory to enable fence_kdump). +#
#raw /dev/vg/lv_kdump #ext4 /dev/vg/lv_kdump @@ -141,3 +150,5 @@ core_collector makedumpfile -l --message-level 1 -d 31 #default shell #force_rebuild 1 #dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3" +#fence_kdump_args -p 7410 -f auto -c 0 -i 10 +#fence_kdump_nodes node1 node2 diff --git a/kdump.conf.5 b/kdump.conf.5 index 7eaf9dd..69628bd 100644 --- a/kdump.conf.5 +++ b/kdump.conf.5 @@ -177,6 +177,21 @@ Kdump uses dracut to generate initramfs for second kernel. This option allows a user to pass arguments to dracut directly. .RE
+ +.B fence_kdump_args <arg(s)> +.RS +Command line arguments for fence_kdump_send (it can contain all valid +arguments except hosts to send notification to). +.RE + + +.B fence_kdump_nodes <node(s)> +.RS +List of cluster node(s) separated by space to send fence_kdump notification +to (this option is mandatory to enable fence_kdump). +.RE + + .SH DEPRECATED OPTIONS
.B net <nfs mount>|user@server diff --git a/kdumpctl b/kdumpctl index 3058171..6e02328 100755 --- a/kdumpctl +++ b/kdumpctl @@ -166,7 +166,7 @@ function check_config() case "$config_opt" in #* | "") ;; - raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args) + raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args|fence_kdump_args|fence_kdump_nodes) [ -z "$config_val" ] && { echo "Invalid kdump config value for option $config_opt." return 1;
On Wed, Mar 26, 2014 at 10:24:12AM +0100, Martin Perina wrote:
Adds two new options to kdump.conf to be able to configure fence_kdump support for generic clusters:
fence_kdump_args <arg(s)> - Command line arguments for fence_kdump_send (it can contain all valid arguments except hosts to send notification to)
fence_kdump_nodes <node(s)> - List of cluster node(s) separated by space to send fence_kdump notification to (this option is mandatory to enable fence_kdump)
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
dracut-kdump.sh | 19 ++++++----- dracut-module-setup.sh | 69 ++++++++++++++++++++++++++-------------- kdump-in-cluster-environment.txt | 35 +++++++++++++++++--- kdump-lib.sh | 8 +++++ kdump.conf | 11 +++++++ kdump.conf.5 | 15 +++++++++ kdumpctl | 2 +- 7 files changed, 119 insertions(+), 40 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 4bac088..cb13d92 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -246,6 +246,12 @@ read_kdump_conf() kdump_post) KDUMP_POST="$config_val" ;;
fence_kdump_args)
FENCE_KDUMP_ARGS="$config_val"
;;
fence_kdump_nodes)
FENCE_KDUMP_NODES="$config_val"
;; default) case $config_val in shell)
@@ -289,20 +295,13 @@ read_kdump_conf()
fence_kdump_notify() {
- local nodes
- if [ -f $FENCE_KDUMP_NODES_FILE ]; then
if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
. $FENCE_KDUMP_CONFIG_FILE
fi
read nodes < $FENCE_KDUMP_NODES_FILE
$FENCE_KDUMP_SEND $FENCE_KDUMP_OPTS $nodes &
- if [ -n "$FENCE_KDUMP_NODES" ]; then
fi$FENCE_KDUMP_SEND $FENCE_KDUMP_ARGS $FENCE_KDUMP_NODES &
}
-fence_kdump_notify read_kdump_conf +fence_kdump_notify
if [ -z "$CORE_COLLECTOR" ];then CORE_COLLECTOR=$DEFAULT_CORE_COLLECTOR diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 7951121..cba3539 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -20,7 +20,7 @@ depends() { _dep="$_dep drm" fi
- if is_pcs_fence_kdump; then
- if [ is_generic_fence_kdump -o is_pcs_fence_kdump ]; then _dep="$_dep network" fi
@@ -263,7 +263,8 @@ kdump_install_net() {
#install kdump.conf and what user specifies in kdump.conf kdump_install_conf() {
- sed -ne '/^#/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
- # filter comments and fence_kdump settings
- sed -ne '/^#|^fence_kdump/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
Why should we get rid of fence_kdump options?
Even if we have to please do it in two lines. Retain the old line of getting rid of comments. It is just easier to read.
while read config_opt config_val; do
@@ -282,10 +283,16 @@ kdump_install_conf() { core_collector) dracut_install "${config_val%%[[:blank:]]*}" ;;
fence_kdump_args)
FENCE_KDUMP_ARGS="$config_val"
;;
fence_kdump_nodes)
FENCE_KDUMP_NODES="$config_val"
done < /etc/kdump.conf;; esac
- kdump_check_fence_kdump
- kdump_check_fence_kdump "/tmp/$$-kdump.conf" inst "/tmp/$$-kdump.conf" "/etc/kdump.conf" rm -f /tmp/$$-kdump.conf
} @@ -431,33 +438,47 @@ get_list_of_nodes_to_notify() {
# setup fence_kdump in cluster # setup proper network and install needed files -# also preserve '[node list]' for 2nd kernel /etc/fence_kdump_nodes +# save fence_kdump settings to kdump config file if fence_kdump is configured kdump_check_fence_kdump () {
Can we rename above function to kdump_configure_fence_kdump().
- local nodes
- is_pcs_fence_kdump || return 1
- local kdump_cfg_file=$1
- if [ -z "$FENCE_KDUMP_NODES" ]; then
Why do we need to check for zero FENE_KDUMP_NODES? Will following call of is_pcs_fence_kdump() not take care of it.
if is_pcs_fence_kdump; then
# get cluster nodes from cluster cib, get interface and ip address
nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -`
# nodelist is formed as 'uname="node1" uname="node2" ... uname="nodeX"'
# we need to convert each to node1, node2 ... nodeX in each iteration
for node in ${nodelist}; do
# convert $node from 'uname="nodeX"' to 'nodeX'
eval $node
FENCE_KDUMP_NODES="$FENCE_KDUMP_NODES $uname"
done
fi
- fi
Can we move this code in a function. In general how about following structure.
kdump_configure_fence_kdump() { if !is_generic_fence_kdump || !is_pcs_fence_kdump return;
if is_generic_fence_kdump;then nodes = get_generic_fence_kdump_nodes(); else nodes = get_pcs_fence_kdump_nodes;
for node in $nodes kdump_install_net $node
dracut_install $FENCE_KDUMP_SEND
/* Take care of installing pcs cluster nodes in kdump.conf */ if is_pcs_fence_kdump install_nodes_in_kdump_conf; }
And we should not have to modify /etc/kdump.conf in case of generic cluster. Nodes are already configured by user.
If you like in kdumpctl, you can go through that list and do some error checking making sure host is not listed as node to notify.
- # get cluster nodes from cluster cib, get interface and ip address
- nodelist=`pcs cluster cib | xmllint --xpath "/cib/status/node_state/@uname" -`
- FENCE_KDUMP_NODES=$( get_list_of_nodes_to_notify "$FENCE_KDUMP_NODES" )
- # nodelist is formed as 'uname="node1" uname="node2" ... uname="nodeX"'
- # we need to convert each to node1, node2 ... nodeX in each iteration
- for node in ${nodelist}; do
# convert $node from 'uname="nodeX"' to 'nodeX'
eval $node
nodes="$nodes $uname"
- done
- if [ -n "$FENCE_KDUMP_NODES" ]; then
# setup network to reach each node
for node in ${FENCE_KDUMP_NODES}; do
kdump_install_net $node
done
- nodes=$( get_list_of_nodes_to_notify "$nodes" )
dracut_install $FENCE_KDUMP_SEND
- # setup network to reach each node
- for node in ${nodes}; do
kdump_install_net $node
- done
- echo
echo "fence_kdump_nodes $FENCE_KDUMP_NODES" >> ${kdump_cfg_file}
- echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES_FILE
- dracut_install $FENCE_KDUMP_SEND
- dracut_install -o $FENCE_KDUMP_CONFIG_FILE
if [ -z "$FENCE_KDUMP_ARGS" ]; then
if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
. $FENCE_KDUMP_CONFIG_FILE
FENCE_KDUMP_ARGS=$FENCE_KDUMP_OPTS
In fedora we should be able to change the behavior to enforce pcs users to specify options in kdump.conf instead of a file. I don't think any tool saves options in a file? Does it?
fi
fi
if [ -n "$FENCE_KDUMP_ARGS" ]; then
echo "fence_kdump_options $FENCE_KDUMP_ARGS" >> ${kdump_cfg_file}
fi
- fi
}
# Install a random seed used to feed /dev/urandom diff --git a/kdump-in-cluster-environment.txt b/kdump-in-cluster-environment.txt index c27a5d7..46c8614 100644 --- a/kdump-in-cluster-environment.txt +++ b/kdump-in-cluster-environment.txt @@ -34,9 +34,9 @@ recovery service, fence_kdump_send will periodically send messages to all cluster nodes. When the fence_kdump agent receives a valid message from the failed nodes, fencing is complete.
-How to configure cluster environment: +How to configure Pacemaker cluster environment:
-If we want to use kdump in cluster environment, fence-agents-kdump should be +If we want to use kdump in Pacemaker cluster, fence-agents-kdump should be installed in every nodes in the cluster. You can achieve this via the following command:
@@ -61,6 +61,31 @@ Then enable stonith
How to configure kdump:
-Actually there is nothing special in configuration between normal kdump and -cluster environment kdump. So please refer to Kexec-Kdump-howto file for more -information. +Actually there are two ways how to configure fence_kdump support:
+1) Pacemaker based clusters
If you have successfully configured fence_kdump in Pacemaker, there is
no need to add some special configuration in kdump. So please refer to
Kexec-Kdump-howto file for more information.
Doesn't user need to specify options to fence_kdump_send in /etc/sysconfig/fence_kdump* file?
+2) Generic clusters
For other types of clusters there are two configuration options in
kdump.conf which enables fence_kdump support:
fence_kdump_nodes <node(s)>
Contains list of cluster node(s) separated by space to send
fence_kdump notification to (this option is mandatory to enable
fence_kdump)
fence_kdump_args <arg(s)>
Command line arguments for fence_kdump_send (it can contain
all valid arguments except hosts to send notification to)
These options will most probably be configured by your cluster software,
so please refer to your cluster documentation how to enable fence_kdump
support.
+Please be aware that these two ways cannot be combined and 2) has precedence +over 1): if you specify fence_kdump_nodes option, it will be used to configure +fence_kdump even if you configured fence_kdump in Pacemaker cluster!
So for the vdsm case, don't we have fence_kdump running somewhere which receives messages from fence_kdump_send.
diff --git a/kdump-lib.sh b/kdump-lib.sh index 6f8b991..bbaba64 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -38,6 +38,14 @@ is_pcs_fence_kdump() (pcs cluster cib | grep -q 'type="fence_kdump"') &> /dev/null || return 1 }
+# Check if fence_kdump is configured using kdump options +is_generic_fence_kdump() +{
- [ -x $FENCE_KDUMP_SEND ] || return 1
- grep -q "^fence_kdump_nodes" /etc/kdump.conf
+}
get_user_configured_dump_disk() { local _target diff --git a/kdump.conf b/kdump.conf index a106462..08bbe2a 100644 --- a/kdump.conf +++ b/kdump.conf @@ -123,6 +123,15 @@ # dracut_args <arg(s)> # - Pass extra dracut options when rebuilding kdump # initrd. +# +# fence_kdump_args <arg(s)> +# - Command line arguments for fence_kdump_send (it can contain +# all valid arguments except hosts to send notification to). +# +# fence_kdump_nodes <node(s)> +# - List of cluster node(s) separated by space to send fence_kdump +# notification to (this option is mandatory to enable fence_kdump). +#
#raw /dev/vg/lv_kdump #ext4 /dev/vg/lv_kdump @@ -141,3 +150,5 @@ core_collector makedumpfile -l --message-level 1 -d 31 #default shell #force_rebuild 1 #dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3" +#fence_kdump_args -p 7410 -f auto -c 0 -i 10 +#fence_kdump_nodes node1 node2 diff --git a/kdump.conf.5 b/kdump.conf.5 index 7eaf9dd..69628bd 100644 --- a/kdump.conf.5 +++ b/kdump.conf.5 @@ -177,6 +177,21 @@ Kdump uses dracut to generate initramfs for second kernel. This option allows a user to pass arguments to dracut directly. .RE
+.B fence_kdump_args <arg(s)> +.RS +Command line arguments for fence_kdump_send (it can contain all valid +arguments except hosts to send notification to). +.RE
+.B fence_kdump_nodes <node(s)> +.RS +List of cluster node(s) separated by space to send fence_kdump notification +to (this option is mandatory to enable fence_kdump). +.RE
.SH DEPRECATED OPTIONS
.B net <nfs mount>|user@server diff --git a/kdumpctl b/kdumpctl index 3058171..6e02328 100755 --- a/kdumpctl +++ b/kdumpctl @@ -166,7 +166,7 @@ function check_config() case "$config_opt" in #* | "") ;;
raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args)
raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args|fence_kdump_args|fence_kdump_nodes) [ -z "$config_val" ] && { echo "Invalid kdump config value for option $config_opt." return 1;
-- 1.8.3.1
----- Original Message -----
From: "Vivek Goyal" vgoyal@redhat.com To: "Martin Perina" mperina@redhat.com Cc: kexec@lists.fedoraproject.org Sent: Thursday, March 27, 2014 10:40:15 PM Subject: Re: [PATCH 6/6] fence_kdump for generic clusters v3: Add fence_kdump support for generic clusters
On Wed, Mar 26, 2014 at 10:24:12AM +0100, Martin Perina wrote:
Adds two new options to kdump.conf to be able to configure fence_kdump support for generic clusters:
fence_kdump_args <arg(s)> - Command line arguments for fence_kdump_send (it can contain all valid arguments except hosts to send notification to)
fence_kdump_nodes <node(s)> - List of cluster node(s) separated by space to send fence_kdump notification to (this option is mandatory to enable fence_kdump)
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
dracut-kdump.sh | 19 ++++++----- dracut-module-setup.sh | 69 ++++++++++++++++++++++++++-------------- kdump-in-cluster-environment.txt | 35 +++++++++++++++++--- kdump-lib.sh | 8 +++++ kdump.conf | 11 +++++++ kdump.conf.5 | 15 +++++++++ kdumpctl | 2 +- 7 files changed, 119 insertions(+), 40 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 4bac088..cb13d92 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -246,6 +246,12 @@ read_kdump_conf() kdump_post) KDUMP_POST="$config_val" ;;
fence_kdump_args)
FENCE_KDUMP_ARGS="$config_val"
;;
fence_kdump_nodes)
FENCE_KDUMP_NODES="$config_val"
;; default) case $config_val in shell)
@@ -289,20 +295,13 @@ read_kdump_conf()
fence_kdump_notify() {
- local nodes
- if [ -f $FENCE_KDUMP_NODES_FILE ]; then
if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
. $FENCE_KDUMP_CONFIG_FILE
fi
read nodes < $FENCE_KDUMP_NODES_FILE
$FENCE_KDUMP_SEND $FENCE_KDUMP_OPTS $nodes &
- if [ -n "$FENCE_KDUMP_NODES" ]; then
fi$FENCE_KDUMP_SEND $FENCE_KDUMP_ARGS $FENCE_KDUMP_NODES &
}
-fence_kdump_notify read_kdump_conf +fence_kdump_notify
if [ -z "$CORE_COLLECTOR" ];then CORE_COLLECTOR=$DEFAULT_CORE_COLLECTOR diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 7951121..cba3539 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -20,7 +20,7 @@ depends() { _dep="$_dep drm" fi
- if is_pcs_fence_kdump; then
- if [ is_generic_fence_kdump -o is_pcs_fence_kdump ]; then _dep="$_dep network" fi
@@ -263,7 +263,8 @@ kdump_install_net() {
#install kdump.conf and what user specifies in kdump.conf kdump_install_conf() {
- sed -ne '/^#/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
- # filter comments and fence_kdump settings
- sed -ne '/^#|^fence_kdump/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
Why should we get rid of fence_kdump options?
Because we have to check if it doesn't contain hostname. But as mentioned below, I will move hostname check to kdumpctl so this won't be needed at all.
Even if we have to please do it in two lines. Retain the old line of getting rid of comments. It is just easier to read.
while read config_opt config_val; do
@@ -282,10 +283,16 @@ kdump_install_conf() { core_collector) dracut_install "${config_val%%[[:blank:]]*}" ;;
fence_kdump_args)
FENCE_KDUMP_ARGS="$config_val"
;;
fence_kdump_nodes)
FENCE_KDUMP_NODES="$config_val"
done < /etc/kdump.conf;; esac
- kdump_check_fence_kdump
- kdump_check_fence_kdump "/tmp/$$-kdump.conf" inst "/tmp/$$-kdump.conf" "/etc/kdump.conf" rm -f /tmp/$$-kdump.conf
} @@ -431,33 +438,47 @@ get_list_of_nodes_to_notify() {
# setup fence_kdump in cluster # setup proper network and install needed files -# also preserve '[node list]' for 2nd kernel /etc/fence_kdump_nodes +# save fence_kdump settings to kdump config file if fence_kdump is configured kdump_check_fence_kdump () {
Can we rename above function to kdump_configure_fence_kdump().
OK
- local nodes
- is_pcs_fence_kdump || return 1
- local kdump_cfg_file=$1
- if [ -z "$FENCE_KDUMP_NODES" ]; then
Why do we need to check for zero FENE_KDUMP_NODES? Will following call of is_pcs_fence_kdump() not take care of it.
Configuration using fence_kdump_nodes option in kdump.conf has higher priority, so when it's configured, we will ignore old Pacemaker configuration
if is_pcs_fence_kdump; then
# get cluster nodes from cluster cib, get interface and ip
address
nodelist=`pcs cluster cib | xmllint --xpath
"/cib/status/node_state/@uname" -`
# nodelist is formed as 'uname="node1" uname="node2" ...
uname="nodeX"'
# we need to convert each to node1, node2 ... nodeX in each
iteration
for node in ${nodelist}; do
# convert $node from 'uname="nodeX"' to 'nodeX'
eval $node
FENCE_KDUMP_NODES="$FENCE_KDUMP_NODES $uname"
done
fi
- fi
Can we move this code in a function. In general how about following structure.
kdump_configure_fence_kdump() { if !is_generic_fence_kdump || !is_pcs_fence_kdump return;
if is_generic_fence_kdump;then nodes = get_generic_fence_kdump_nodes(); else nodes = get_pcs_fence_kdump_nodes;
for node in $nodes kdump_install_net $node
dracut_install $FENCE_KDUMP_SEND
/* Take care of installing pcs cluster nodes in kdump.conf */ if is_pcs_fence_kdump install_nodes_in_kdump_conf; }
OK, I will fix this
And we should not have to modify /etc/kdump.conf in case of generic cluster. Nodes are already configured by user.
If you like in kdumpctl, you can go through that list and do some error checking making sure host is not listed as node to notify.
Ok, I will move the hostname check to kdumpctl
- # get cluster nodes from cluster cib, get interface and ip address
- nodelist=`pcs cluster cib | xmllint --xpath
"/cib/status/node_state/@uname" -`
- FENCE_KDUMP_NODES=$( get_list_of_nodes_to_notify "$FENCE_KDUMP_NODES"
)
- # nodelist is formed as 'uname="node1" uname="node2" ...
uname="nodeX"'
- # we need to convert each to node1, node2 ... nodeX in each iteration
- for node in ${nodelist}; do
# convert $node from 'uname="nodeX"' to 'nodeX'
eval $node
nodes="$nodes $uname"
- done
- if [ -n "$FENCE_KDUMP_NODES" ]; then
# setup network to reach each node
for node in ${FENCE_KDUMP_NODES}; do
kdump_install_net $node
done
- nodes=$( get_list_of_nodes_to_notify "$nodes" )
dracut_install $FENCE_KDUMP_SEND
- # setup network to reach each node
- for node in ${nodes}; do
kdump_install_net $node
- done
- echo
echo "fence_kdump_nodes $FENCE_KDUMP_NODES" >> ${kdump_cfg_file}
- echo "$nodes" > ${initdir}/$FENCE_KDUMP_NODES_FILE
- dracut_install $FENCE_KDUMP_SEND
- dracut_install -o $FENCE_KDUMP_CONFIG_FILE
if [ -z "$FENCE_KDUMP_ARGS" ]; then
if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
. $FENCE_KDUMP_CONFIG_FILE
FENCE_KDUMP_ARGS=$FENCE_KDUMP_OPTS
In fedora we should be able to change the behavior to enforce pcs users to specify options in kdump.conf instead of a file. I don't think any tool saves options in a file? Does it?
fi
fi
if [ -n "$FENCE_KDUMP_ARGS" ]; then
echo "fence_kdump_options $FENCE_KDUMP_ARGS" >>
${kdump_cfg_file}
fi
- fi
}
# Install a random seed used to feed /dev/urandom diff --git a/kdump-in-cluster-environment.txt b/kdump-in-cluster-environment.txt index c27a5d7..46c8614 100644 --- a/kdump-in-cluster-environment.txt +++ b/kdump-in-cluster-environment.txt @@ -34,9 +34,9 @@ recovery service, fence_kdump_send will periodically send messages to all cluster nodes. When the fence_kdump agent receives a valid message from the failed nodes, fencing is complete.
-How to configure cluster environment: +How to configure Pacemaker cluster environment:
-If we want to use kdump in cluster environment, fence-agents-kdump should be +If we want to use kdump in Pacemaker cluster, fence-agents-kdump should be installed in every nodes in the cluster. You can achieve this via the following command:
@@ -61,6 +61,31 @@ Then enable stonith
How to configure kdump:
-Actually there is nothing special in configuration between normal kdump and -cluster environment kdump. So please refer to Kexec-Kdump-howto file for more -information. +Actually there are two ways how to configure fence_kdump support:
+1) Pacemaker based clusters
If you have successfully configured fence_kdump in Pacemaker, there
is
no need to add some special configuration in kdump. So please refer
to
Kexec-Kdump-howto file for more information.
Doesn't user need to specify options to fence_kdump_send in /etc/sysconfig/fence_kdump* file?
/etc/sysconfig/fence_kdump is needed only, if user want to change defaults (port, protocol, timeout).
+2) Generic clusters
For other types of clusters there are two configuration options in
kdump.conf which enables fence_kdump support:
fence_kdump_nodes <node(s)>
Contains list of cluster node(s) separated by space to send
fence_kdump notification to (this option is mandatory to
enable
fence_kdump)
fence_kdump_args <arg(s)>
Command line arguments for fence_kdump_send (it can contain
all valid arguments except hosts to send notification to)
These options will most probably be configured by your cluster
software,
so please refer to your cluster documentation how to enable
fence_kdump
support.
+Please be aware that these two ways cannot be combined and 2) has precedence +over 1): if you specify fence_kdump_nodes option, it will be used to configure +fence_kdump even if you configured fence_kdump in Pacemaker cluster!
So for the vdsm case, don't we have fence_kdump running somewhere which receives messages from fence_kdump_send.
Yes, configuration of this listener will be part of oVirt, but it doesn't have any direct impact on kdump configuration.
diff --git a/kdump-lib.sh b/kdump-lib.sh index 6f8b991..bbaba64 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -38,6 +38,14 @@ is_pcs_fence_kdump() (pcs cluster cib | grep -q 'type="fence_kdump"') &> /dev/null || return 1 }
+# Check if fence_kdump is configured using kdump options +is_generic_fence_kdump() +{
- [ -x $FENCE_KDUMP_SEND ] || return 1
- grep -q "^fence_kdump_nodes" /etc/kdump.conf
+}
get_user_configured_dump_disk() { local _target diff --git a/kdump.conf b/kdump.conf index a106462..08bbe2a 100644 --- a/kdump.conf +++ b/kdump.conf @@ -123,6 +123,15 @@ # dracut_args <arg(s)> # - Pass extra dracut options when rebuilding kdump # initrd. +# +# fence_kdump_args <arg(s)> +# - Command line arguments for fence_kdump_send (it can contain +# all valid arguments except hosts to send notification to). +# +# fence_kdump_nodes <node(s)> +# - List of cluster node(s) separated by space to send fence_kdump +# notification to (this option is mandatory to enable fence_kdump). +#
#raw /dev/vg/lv_kdump #ext4 /dev/vg/lv_kdump @@ -141,3 +150,5 @@ core_collector makedumpfile -l --message-level 1 -d 31 #default shell #force_rebuild 1 #dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3" +#fence_kdump_args -p 7410 -f auto -c 0 -i 10 +#fence_kdump_nodes node1 node2 diff --git a/kdump.conf.5 b/kdump.conf.5 index 7eaf9dd..69628bd 100644 --- a/kdump.conf.5 +++ b/kdump.conf.5 @@ -177,6 +177,21 @@ Kdump uses dracut to generate initramfs for second kernel. This option allows a user to pass arguments to dracut directly. .RE
+.B fence_kdump_args <arg(s)> +.RS +Command line arguments for fence_kdump_send (it can contain all valid +arguments except hosts to send notification to). +.RE
+.B fence_kdump_nodes <node(s)> +.RS +List of cluster node(s) separated by space to send fence_kdump notification +to (this option is mandatory to enable fence_kdump). +.RE
.SH DEPRECATED OPTIONS
.B net <nfs mount>|user@server diff --git a/kdumpctl b/kdumpctl index 3058171..6e02328 100755 --- a/kdumpctl +++ b/kdumpctl @@ -166,7 +166,7 @@ function check_config() case "$config_opt" in #* | "") ;;
- raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args)
- raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|dracut_args|fence_kdump_args|fence_kdump_nodes) [ -z "$config_val" ] && { echo "Invalid kdump config value for option $config_opt." return 1;
-- 1.8.3.1
[..]
- local nodes
- is_pcs_fence_kdump || return 1
- local kdump_cfg_file=$1
- if [ -z "$FENCE_KDUMP_NODES" ]; then
Why do we need to check for zero FENE_KDUMP_NODES? Will following call of is_pcs_fence_kdump() not take care of it.
Configuration using fence_kdump_nodes option in kdump.conf has higher priority, so when it's configured, we will ignore old Pacemaker configuration
Ok, so once you move to code structure as suggested below, you will not have to check for this. You will always check for generic cluster first and it gets priority.
if is_generic_fence_kdump;then nodes = get_generic_fence_kdump_nodes(); else nodes = get_pcs_fence_kdump_nodes;
[..]
+Please be aware that these two ways cannot be combined and 2) has precedence +over 1): if you specify fence_kdump_nodes option, it will be used to configure +fence_kdump even if you configured fence_kdump in Pacemaker cluster!
So for the vdsm case, don't we have fence_kdump running somewhere which receives messages from fence_kdump_send.
Yes, configuration of this listener will be part of oVirt, but it doesn't have any direct impact on kdump configuration.
I think I am not clear about the language of the text. What does following mean.
1) if you specify fence_kdump_nodes option, it will be used to configure fence_kdump even if you configured fence_kdump in Pacemaker cluster!
What are you referring to when you say "fence_kdump" above?
Thanks Vivek
On Wed, Mar 26, 2014 at 10:24:07AM +0100, Martin Perina wrote:
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
Can you provide changelog explaining what this patch is doing. We put appropriate changelog for every patch in the series.
Also in general, have you tested it? Last time you mentioned that from vdsm side you folks are still debating which method to use. I am assuming that means vdsm code is not ready yet and that probably means this patchset might be untested?
[..]
-FENCE_KDUMP_CONFIG="/etc/sysconfig/fence_kdump" +FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" FENCE_KDUMP_NODES="/etc/fence_kdump_nodes"
diff --git a/kdumpctl b/kdumpctl index 8d5498a..24fb988 100755 --- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
Thanks Vivek
On Thu, Mar 27, 2014 at 03:14:32PM -0400, Vivek Goyal wrote:
On Wed, Mar 26, 2014 at 10:24:07AM +0100, Martin Perina wrote:
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
Can you provide changelog explaining what this patch is doing. We put appropriate changelog for every patch in the series.
Also in general, have you tested it? Last time you mentioned that from vdsm side you folks are still debating which method to use. I am assuming that means vdsm code is not ready yet and that probably means this patchset might be untested?
[..]
-FENCE_KDUMP_CONFIG="/etc/sysconfig/fence_kdump" +FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" FENCE_KDUMP_NODES="/etc/fence_kdump_nodes"
diff --git a/kdumpctl b/kdumpctl index 8d5498a..24fb988 100755 --- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
We generate a kdump.conf internal to initramfs. We can start generating that file to put fence_kdump options and fence_kdump nodes in that file even for pacemaker.
So dracut-module-kdump.sh implementation will always expect that fence kdump optoins and nodes are passsed in /etc/kdump.conf.
It is only kdumpctl implementation which will look for these options in /etc/kdump.conf and if it is not there it will assume we are dealing with pacemaker and use existing code of pcs to get to list of nodes.
For fedora we can change options method even for pcs and now make it mandatory that fence kdump options need to be passed through /etc/kdump.conf file.
We should talk to pacemaker folks and figure out how can we pass nodes also using /etc/kdump.conf so that they also make use of this new API instead of kdump doing special processing for pcs.
Thanks Vivek
Thanks Vivek
Thanks Vivek
----- Original Message -----
From: "Vivek Goyal" vgoyal@redhat.com To: "Martin Perina" mperina@redhat.com Cc: kexec@lists.fedoraproject.org Sent: Thursday, March 27, 2014 8:34:57 PM Subject: Re: [PATCH 1/6] fence_kdump for generic clusters v3: Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE
On Thu, Mar 27, 2014 at 03:14:32PM -0400, Vivek Goyal wrote:
On Wed, Mar 26, 2014 at 10:24:07AM +0100, Martin Perina wrote:
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
Can you provide changelog explaining what this patch is doing. We put appropriate changelog for every patch in the series.
Also in general, have you tested it? Last time you mentioned that from vdsm side you folks are still debating which method to use. I am assuming that means vdsm code is not ready yet and that probably means this patchset might be untested?
[..]
-FENCE_KDUMP_CONFIG="/etc/sysconfig/fence_kdump" +FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" FENCE_KDUMP_NODES="/etc/fence_kdump_nodes"
diff --git a/kdumpctl b/kdumpctl index 8d5498a..24fb988 100755 --- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
We generate a kdump.conf internal to initramfs. We can start generating that file to put fence_kdump options and fence_kdump nodes in that file even for pacemaker.
So dracut-module-kdump.sh implementation will always expect that fence kdump optoins and nodes are passsed in /etc/kdump.conf.
Yes, that behavior is included in following patches.
It is only kdumpctl implementation which will look for these options in /etc/kdump.conf and if it is not there it will assume we are dealing with pacemaker and use existing code of pcs to get to list of nodes.
Yes
For fedora we can change options method even for pcs and now make it mandatory that fence kdump options need to be passed through /etc/kdump.conf file.
We should talk to pacemaker folks and figure out how can we pass nodes also using /etc/kdump.conf so that they also make use of this new API instead of kdump doing special processing for pcs.
Well, if you agree, I would prefer to get this generic API into Fedora 20 and RHEL 6.6 (as we need this to introduce fence_kdump support into oVirt/RHEVM products during June/July) and once this new API is in, Pacemaker could prepare new version, which will use this generic API. And after that we can drop old Pacemaker API.
Marek, what do you think of this approach?
On Fri, Mar 28, 2014 at 05:52:19AM -0400, Martin Perina wrote:
[..]
For fedora we can change options method even for pcs and now make it mandatory that fence kdump options need to be passed through /etc/kdump.conf file.
We should talk to pacemaker folks and figure out how can we pass nodes also using /etc/kdump.conf so that they also make use of this new API instead of kdump doing special processing for pcs.
Well, if you agree, I would prefer to get this generic API into Fedora 20
Let us first get this change in master and then we can discuss the F20 possibility. F20 was released long back and this is a feature and not a fix. So I think this is a candidate for F21 and not F20.
and RHEL 6.6 (as we need this to introduce fence_kdump support into oVirt/RHEVM products during June/July) and once this new API is in, Pacemaker could prepare new version, which will use this generic API. And after that we can drop old Pacemaker API.
This is fedora specific list. So let us not discuss rhel plans here. All rhel specific plans should be discussed in rhel internal list.
kexec-kdump-list@redhat.com
But I agree that for the time being we can continue to call "pcs" command and once this API goes in and stablize, then figure out how to make pacemaker use the new API.
Thanks Vivek
----- Original Message -----
From: "Vivek Goyal" vgoyal@redhat.com To: "Martin Perina" mperina@redhat.com Cc: kexec@lists.fedoraproject.org Sent: Thursday, March 27, 2014 8:14:32 PM Subject: Re: [PATCH 1/6] fence_kdump for generic clusters v3: Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE
On Wed, Mar 26, 2014 at 10:24:07AM +0100, Martin Perina wrote:
Bug-Url: https://bugzilla.redhat.com/1079821 Signed-off-by: Martin Perina mperina@redhat.com
Can you provide changelog explaining what this patch is doing. We put appropriate changelog for every patch in the series.
Vivek, what kind of changelog do you mean?
This is what I see on my git using git log:
commit b730272fb04de04f770cbfb9b6afc15dcfcbbcbd Author: Martin Perina mperina@redhat.com Date: Tue Mar 25 12:33:04 2014 +0100
Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE
Bug-Url: https://bugzilla.redhat.com/1078134 Signed-off-by: Martin Perina mperina@redhat.com
And this content is also included in the email. Or do you think, that "Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE" is not descriptive enaough?
Also in general, have you tested it? Last time you mentioned that from vdsm side you folks are still debating which method to use. I am assuming that means vdsm code is not ready yet and that probably means this patchset might be untested?
I successfully test those patches using:
1) Modify fence_kdump_nodes and fence_kdump_args in kdump.conf on host1 2) Execute 'kdumpctl restart' on host1
Above steps will be performed automatically by new VDSM module.
Then I execute this test:
1) I executed fence_kdump listener on host2 which is included in fence_kdump_nodes 2) I crashed kernel on host1 using 'echo c > /proc/sysrq-trigger' 3) I looked through IPMI to host1 console if kdump was executed sucessfully 4) I verified that required notification was received in host2
I also verified that without specifying fence_kdump the kdump process will work correctly.
I didn't test these patches with Pacemaker, but I think that once you will be satisfied with content of those paches, we can ask some one from Pacemake team to test them if those patches didn't create new regression.
Marek, do you agree?
[..]
-FENCE_KDUMP_CONFIG="/etc/sysconfig/fence_kdump" +FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump" FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send" FENCE_KDUMP_NODES="/etc/fence_kdump_nodes"
diff --git a/kdumpctl b/kdumpctl index 8d5498a..24fb988 100755 --- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
As we agreed in previous email, current API for Pacemaker will be untouched.
So in following patches, I will introduce new options in kdump.conf. With those patches kdump will not use /etc/fence_kdump_nodes file (this will be replaced with fence_kdump_nodes option in kdump.conf). But not to break Pacemaker API during Pacemaker fence_kdump configuration content of /etc/sysconfig/fence_kdump will be read and store into fence_kdump_args in kdump.conf in initial ramdisk.
On Fri, Mar 28, 2014 at 05:42:02AM -0400, Martin Perina wrote:
[..]
Can you provide changelog explaining what this patch is doing. We put appropriate changelog for every patch in the series.
Vivek, what kind of changelog do you mean?
This is what I see on my git using git log:
commit b730272fb04de04f770cbfb9b6afc15dcfcbbcbd Author: Martin Perina mperina@redhat.com Date: Tue Mar 25 12:33:04 2014 +0100
Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE Bug-Url: https://bugzilla.redhat.com/1078134 Signed-off-by: Martin Perina <mperina@redhat.com>
And this content is also included in the email. Or do you think, that "Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE" is not descriptive enaough?
Typically we follow following format.
commit 7f9b45002a940c3ba5604552cda4d687948cf443 Author: Arthur Zou zzou@redhat.com Date: Thu Mar 13 11:02:07 2014 +0800
Backport vmcore-dmsg stack smashing in extreme case
In exteme case vmcore-dmesg will overflow. upstream has fixed the some problem. so simply backport it
Signed-off-by: Arthur Zou zzou@redhat.com Acked-by: WANG Chao chaowang@redhat.com Acked-by: Vivek Goyal vgoyal@redhat.com
First line is subject of the mail. Which is more of a short description of the patch. And that is followed by the long description of patch. And the all the tags of signing and review follow. I like Bug-url: tag too.
I see that you are renaming a file but in long descpriton it would also help to know why are you renaming this file and how rest of the patch series is going to make use of it.
Also in general, have you tested it? Last time you mentioned that from vdsm side you folks are still debating which method to use. I am assuming that means vdsm code is not ready yet and that probably means this patchset might be untested?
I successfully test those patches using:
- Modify fence_kdump_nodes and fence_kdump_args in kdump.conf on host1
- Execute 'kdumpctl restart' on host1
Above steps will be performed automatically by new VDSM module.
Then I execute this test:
- I executed fence_kdump listener on host2 which is included in fence_kdump_nodes
- I crashed kernel on host1 using 'echo c > /proc/sysrq-trigger'
- I looked through IPMI to host1 console if kdump was executed sucessfully
- I verified that required notification was received in host2
I also verified that without specifying fence_kdump the kdump process will work correctly.
Excellent. That's a good enough test for this new API.
I didn't test these patches with Pacemaker, but I think that once you will be satisfied with content of those paches, we can ask some one from Pacemake team to test them if those patches didn't create new regression.
Marek, do you agree?
Some regression test to make sure pacemaker use case is not broken will be required too.
[..]
--- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
As we agreed in previous email, current API for Pacemaker will be untouched.
In Fedora generally we don't have the requirement of maintaing full backward compatibility with older fedora versions. And pacemaker code is so new in Fedora. It went in very recently.
So I would rather prefer to clean that up and ask pacemaker users to specify options in /etc/kdump.conf instead of using a file.
Otherwise we will be stuck with this code for a long time.
So in following patches, I will introduce new options in kdump.conf. With those patches kdump will not use /etc/fence_kdump_nodes file (this will be replaced with fence_kdump_nodes option in kdump.conf). But not to break Pacemaker API during Pacemaker fence_kdump configuration content of /etc/sysconfig/fence_kdump will be read and store into fence_kdump_args in kdump.conf in initial ramdisk.
Marek, are you particular about maintaining this file. No package owns this file so asking user to create this file and provide options here sounds bad.
Do you mind if we change it and ask user to specify options in /etc/kdump.conf using fence_kdump_args options.
Thanks Vivek
On Fri, Mar 28, 2014 at 01:11:48PM -0400, Vivek Goyal wrote:
[..]
--- a/kdumpctl +++ b/kdumpctl @@ -249,8 +249,8 @@ function check_rebuild() EXTRA_BINS="$EXTRA_BINS $CHECK_FILES" files="$KDUMP_CONFIG_FILE $kdump_kernel $EXTRA_BINS"
- if [ -f $FENCE_KDUMP_CONFIG ]; then
files="$files $FENCE_KDUMP_CONFIG"
- if [ -f $FENCE_KDUMP_CONFIG_FILE ]; then
fifiles="$files $FENCE_KDUMP_CONFIG_FILE"
why don't we get rid of this fence kdump config file. I thought we agreed that fence_kdump_send options will be specified in /etc/kdump.conf using a new option.
No package owns /etc/sysconfig/fence_kdump_send. So trying to retain it does not make sense.
As we agreed in previous email, current API for Pacemaker will be untouched.
In Fedora generally we don't have the requirement of maintaing full backward compatibility with older fedora versions. And pacemaker code is so new in Fedora. It went in very recently.
So I would rather prefer to clean that up and ask pacemaker users to specify options in /etc/kdump.conf instead of using a file.
Otherwise we will be stuck with this code for a long time.
Thinking more about it, let us maintain that file for some more time. Let us get this new API working and once we are confident that this API is working well then we should work with pacemaker team to move to new API and rid of old assumptions.
While writing code don't assume that pacemaker can't make use of /etc/kdump.conf fence_kdump_args. In fact that's how I want to document it so that all the new users use fence_kdump_args intead of a file to specify arguments.
Thanks Vivek
On 03/28/2014 06:11 PM, Vivek Goyal wrote:
So in following patches, I will introduce new options in kdump.conf. With those patches kdump will not use /etc/fence_kdump_nodes file (this will be replaced with fence_kdump_nodes option in kdump.conf). But not to break Pacemaker API during Pacemaker fence_kdump configuration content of /etc/sysconfig/fence_kdump will be read and store into fence_kdump_args in kdump.conf in initial ramdisk.
Marek, are you particular about maintaining this file. No package owns this file so asking user to create this file and provide options here sounds bad.
Do you mind if we change it and ask user to specify options in /etc/kdump.conf using fence_kdump_args options.
Fence agents do not use configuration files at all and they are not dependent on pacemaker or any other cluster software. So this change will not have any impact on them. imho the pacemaker team is the one who should answer your questions.
m,
On Mon, Mar 31, 2014 at 10:55:32AM +0200, Marek Grac wrote:
On 03/28/2014 06:11 PM, Vivek Goyal wrote:
So in following patches, I will introduce new options in kdump.conf. With those patches kdump will not use /etc/fence_kdump_nodes file (this will be replaced with fence_kdump_nodes option in kdump.conf). But not to break Pacemaker API during Pacemaker fence_kdump configuration content of /etc/sysconfig/fence_kdump will be read and store into fence_kdump_args in kdump.conf in initial ramdisk.
Marek, are you particular about maintaining this file. No package owns this file so asking user to create this file and provide options here sounds bad.
Do you mind if we change it and ask user to specify options in /etc/kdump.conf using fence_kdump_args options.
Fence agents do not use configuration files at all and they are not dependent on pacemaker or any other cluster software. So this change will not have any impact on them. imho the pacemaker team is the one who should answer your questions.
Would you know who should I talk to in pacemaker team?
Thanks Vivek
----- Original Message -----
From: "Vivek Goyal" vgoyal@redhat.com To: "Marek Grac" mgrac@redhat.com Cc: "Martin Perina" mperina@redhat.com, kexec@lists.fedoraproject.org Sent: Monday, March 31, 2014 11:22:03 PM Subject: Re: [PATCH 1/6] fence_kdump for generic clusters v3: Rename FENCE_KDUMP_CONFIG to FENCE_KDUMP_CONFIG_FILE
On Mon, Mar 31, 2014 at 10:55:32AM +0200, Marek Grac wrote:
On 03/28/2014 06:11 PM, Vivek Goyal wrote:
So in following patches, I will introduce new options in kdump.conf. With those patches kdump will not use /etc/fence_kdump_nodes file (this will be replaced with fence_kdump_nodes option in kdump.conf). But not to break Pacemaker API during Pacemaker fence_kdump configuration content of /etc/sysconfig/fence_kdump will be read and store into fence_kdump_args in kdump.conf in initial ramdisk.
Marek, are you particular about maintaining this file. No package owns this file so asking user to create this file and provide options here sounds bad.
Do you mind if we change it and ask user to specify options in /etc/kdump.conf using fence_kdump_args options.
Fence agents do not use configuration files at all and they are not dependent on pacemaker or any other cluster software. So this change will not have any impact on them. imho the pacemaker team is the one who should answer your questions.
Would you know who should I talk to in pacemaker team?
Thanks Vivek
Marek send me those names from Pacemaker team: Andrew Beekhof or David Vossel, I will send them email today.
Martin