On 01/21/14 at 04:32pm, Vivek Goyal wrote:
On Mon, Jan 13, 2014 at 06:23:09PM +0800, WANG Chao wrote:
> If the system is configured fence kdump, we need to update kdump
> initramfs if cluster or fence_kdump config is newer.
>
> In RHEL7, cluster config is no longer keeping locally but stored
> remotely. Fortunately we can use a pcs tool to retrieve the xml based
> config and parse the last changed time from that.
>
> /etc/sysconfig/fence_kdump is used to configure runtime arguments to
> fence_kdump_send. So We have to pass the arguments to 2nd kernel.
>
> When cluster config or /etc/sysconfig/fence_kdump is newer than local
> kdump initramfs, we must rebuild initramfs to adapt changes in cluster.
>
> For example:
>
> Detected change(s) the following file(s):
>
> cluster-cib /etc/sysconfig/fence_kdump
Chao,
What is cluster-cib file and what info does it contain?
Hi, Vivek
AFAICT cib.xml is a cluster configuration file, functioning just like
/etc/cluster.conf does in RHEL6. In RHEL7, /etc/cluster.conf is no
longer exists, instead user can run `pcs cluster cib > cib.xml` retrieve
it as a xml format file.
I was given a sample cib.xml by Marek. Here it is:
<cib epoch="5" num_updates="11" admin_epoch="0"
validate-with="pacemaker-1.2" cib-last-written="Wed Oct 23 12:12:32
2014" update-origin="slovan" update-client="cibadmin"
crm_feature_set="3.0.7" have-quorum="1" dc-uuid="1">
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
<nvpair id="cib-bootstrap-options-dc-version"
name="dc-version" value="1.1.9-3.fc19-781a388"/>
<nvpair id="cib-bootstrap-options-cluster-infrastructure"
name="cluster-infrastructure" value="corosync"/>
</cluster_property_set>
</crm_config>
<nodes>
<node id="1" uname="slovan"/>
<node id="2" uname="sparta"/>
</nodes>
<resources>
<primitive class="stonith" id="fence_kkk"
type="fence_kdump">
<instance_attributes id="fence_kkk-instance_attributes">
<nvpair id="fence_kkk-instance_attributes-ipaddr"
name="ipaddr" value="pdu-bar.englab.brq.redhat.com"/>
<nvpair id="fence_kkk-instance_attributes-login"
name="login" value="labapc"/>
<nvpair id="fence_kkk-instance_attributes-passwd"
name="passwd" value="labapc"/>
<nvpair id="fence_kkk-instance_attributes-port"
name="port" value="9"/>
</instance_attributes>
</primitive>
</resources>
<constraints/>
</configuration>
<status>
<node_state id="2" uname="sparta" in_ccm="true"
crmd="online" crm-debug-origin="do_update_resource"
join="member" expected="member">
<lrm id="2">
<lrm_resources>
<lrm_resource id="fence_kkk" type="fence_kdump"
class="stonith">
<lrm_rsc_op id="fence_kkk_last_0"
operation_key="fence_kkk_stop_0" operation="stop"
crm-debug-origin="do_update_resource" crm_feature_set="3.0.7"
transition-key="1:10:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
transition-magic="0:0;1:10:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
call-id="11" rc-code="0" op-status="0"
interval="0" last-run="1382523178"
last-rc-change="1382523178" exec-time="0" queue-time="0"
op-digest="43708ee5920e76e9ae2d5bb37d67dae6"/>
<lrm_rsc_op id="fence_kkk_last_failure_0"
operation_key="fence_kkk_start_0" operation="start"
crm-debug-origin="do_update_resource" crm_feature_set="3.0.7"
transition-key="5:9:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
transition-magic="4:1;5:9:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
call-id="8" rc-code="1" op-status="4" interval="0"
last-run="1382523164" last-rc-change="1382523164"
exec-time="12519" queue-time="0"
op-digest="43708ee5920e76e9ae2d5bb37d67dae6"/>
</lrm_resource>
</lrm_resources>
</lrm>
<transient_attributes id="2">
<instance_attributes id="status-2">
<nvpair id="status-2-probe_complete"
name="probe_complete" value="true"/>
<nvpair id="status-2-fail-count-fence_kkk"
name="fail-count-fence_kkk" value="INFINITY"/>
<nvpair id="status-2-last-failure-fence_kkk"
name="last-failure-fence_kkk" value="1382523177"/>
</instance_attributes>
</transient_attributes>
</node_state>
<node_state id="1" uname="slovan" in_ccm="true"
crmd="online" crm-debug-origin="do_update_resource"
join="member" expected="member">
<lrm id="1">
<lrm_resources>
<lrm_resource id="fence_kkk" type="fence_kdump"
class="stonith">
<lrm_rsc_op id="fence_kkk_last_0"
operation_key="fence_kkk_stop_0" operation="stop"
crm-debug-origin="do_update_resource" crm_feature_set="3.0.7"
transition-key="1:8:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
transition-magic="0:0;1:8:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
call-id="11" rc-code="0" op-status="0"
interval="0" last-run="1382523164"
last-rc-change="1382523164" exec-time="0" queue-time="0"
op-digest="43708ee5920e76e9ae2d5bb37d67dae6"/>
<lrm_rsc_op id="fence_kkk_last_failure_0"
operation_key="fence_kkk_start_0" operation="start"
crm-debug-origin="do_update_resource" crm_feature_set="3.0.7"
transition-key="7:7:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
transition-magic="4:1;7:7:0:3177ca3b-4aef-4266-ab43-a8c51f9565dc"
call-id="8" rc-code="1" op-status="4" interval="0"
last-run="1382523154" last-rc-change="1382523154"
exec-time="8406" queue-time="0"
op-digest="43708ee5920e76e9ae2d5bb37d67dae6"/>
</lrm_resource>
</lrm_resources>
</lrm>
<transient_attributes id="1">
<instance_attributes id="status-1">
<nvpair id="status-1-probe_complete"
name="probe_complete" value="true"/>
<nvpair id="status-1-fail-count-fence_kkk"
name="fail-count-fence_kkk" value="INFINITY"/>
<nvpair id="status-1-last-failure-fence_kkk"
name="last-failure-fence_kkk" value="1382523164"/>
</instance_attributes>
</transient_attributes>
</node_state>
</status>
</cib>
Thanks
WANG Chao
Thanks
Vivek
> Rebuilding /boot/initramfs-xxxkdump.img
> [..]
>
> Signed-off-by: WANG Chao <chaowang(a)redhat.com>
> ---
> kdumpctl | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/kdumpctl b/kdumpctl
> index 46ae633..abcdffd 100755
> --- a/kdumpctl
> +++ b/kdumpctl
> @@ -132,6 +132,25 @@ function check_config()
> return 0
> }
>
> +# check_fence_kdump <image timestamp>
> +# return 0 if fence_kdump is configured and kdump initrd needs to be rebuilt
> +function check_fence_kdump()
> +{
> + local image_time=$1
> + local cib_time
> +
> + is_fence_kdump || return 1
> +
> + cib_time=`pcs cluster cib | xmllint --xpath
'string(/cib/@cib-last-written)' - | \
> + xargs -0 date +%s --date`
> +
> + if [ -z $cib_time -o $cib_time -le $image_time ]; then
> + return 1
> + fi
> +
> + return 0
> +}
> +
> function check_rebuild()
> {
> local extra_modules modified_files=""
> @@ -167,6 +186,9 @@ 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"
> +
> EXTRA_BINS=`grep ^kdump_post $KDUMP_CONFIG_FILE | cut -d\ -f2`
> CHECK_FILES=`grep ^kdump_pre $KDUMP_CONFIG_FILE | cut -d\ -f2`
> EXTRA_BINS="$EXTRA_BINS $CHECK_FILES"
> @@ -174,6 +196,10 @@ 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"
> + fi
> +
> check_exist "$files" && check_executable
"$EXTRA_BINS"
> [ $? -ne 0 ] && return 1
>
> --
> 1.8.4.2
>
> _______________________________________________
> kexec mailing list
> kexec(a)lists.fedoraproject.org
>
https://lists.fedoraproject.org/mailman/listinfo/kexec