[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    Re: [Linux-ha-dev] [Patch]Patch for LVM resource agents.
From:       renayama19661014 () ybb ! ne ! jp
Date:       2011-10-03 21:33:01
Message-ID: 224671.26495.qm () web200013 ! mail ! kks ! yahoo ! co ! jp
[Download RAW message or body]

Hi Dejan,

Many Thanks!!

Hideo Yamauchi.

--- On Tue, 2011/10/4, Dejan Muhamedagic <dejan@suse.de> wrote:

> Hi Hideo-san,
> 
> On Fri, Sep 30, 2011 at 11:17:19AM +0900, renayama19661014@ybb.ne.jp wrote:
> > Hi Dejan,
> > 
> > Sorry....
> > 
> > I sent the main body which was not a patch.
> > I send it again.
> 
> Patch applied.
> 
> Cheers,
> 
> Dejan
> 
> > Best Regards,
> > Hideo Yamauchi.
> > 
> > --- On Fri, 2011/9/30, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> \
> > wrote: 
> > > Hi Dejan,
> > > 
> > > Sorry....
> > > 
> > > There was still a mistake to the patch which I sent a while ago.
> > > With the patch which I sent a while ago, precious detailed log is canceled.
> > > Furthermore, I send the patch which I revised.
> > > 
> > > Best Regards,
> > > Hideo Yamauchi.
> > > 
> > > 
> > > --- On Fri, 2011/9/30, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> \
> > > wrote: 
> > > > Hi Dejan,
> > > > 
> > > > > > ocft test reports this:
> > > > > > 
> > > > > > 'LVM' case 7:   FAILED. Agent returns unexpected value: \
> > > > > > 'OCF_NOT_RUNNING'. See details below: 2011/09/29_17:00:49 WARNING: LVM \
> > > > > > Volume ocft-vg is not available (stopped).     Using volume group(s) on \
> > > > > > command line Finding volume group "ocft-vg"
> > > > > > --- Volume group ---
> > > > > > VG Name               ocft-vg
> > > > > > System ID
> > > > > > Format                lvm2
> > > > > > Metadata Areas        1
> > > > > > Metadata Sequence No  2
> > > > > > VG Access             read/write
> > > > > > VG Status             resizable
> > > > > > MAX LV                0
> > > > > > Cur LV                1
> > > > > > Open LV               0
> > > > > > Max PV                0
> > > > > > Cur PV                1
> > > > > > Act PV                1
> > > > > > VG Size               4.00 MiB
> > > > > > PE Size               4.00 KiB
> > > > > > Total PE              1024
> > > > > > Alloc PE / Size       150 / 600.00 KiB
> > > > > > Free  PE / Size       874 / 3.41 MiB
> > > > > > VG UUID               csVKm6-Bzdp-s40E-9O2S-uttx-PrcW-fq6Wtz
> > > > > > 
> > > > > > --- Logical volume ---
> > > > > > LV Name                /dev/ocft-vg/ocft-lv
> > > > > > VG Name                ocft-vg
> > > > > > LV UUID                XjMtXj-DLzy-J8Rb-6Bfb-HNoM-7o6x-VOPnMG
> > > > > > LV Write Access        read/write
> > > > > > LV Status              NOT available
> > > > > > LV Size                600.00 KiB
> > > > > > Current LE             150
> > > > > > Segments               1
> > > > > > Allocation             inherit
> > > > > > Read ahead sectors     auto
> > > > > > 
> > > > > > --- Physical volumes ---
> > > > > > PV Name               /dev/loop0
> > > > > > PV UUID               z6deWo-42uN-HPrZ-nLC4-wrba-34IZ-N98cmL
> > > > > > PV Status             allocatable
> > > > > > Total PE / Free PE    1024 / 874
> > > > > > 
> > > > > > 2011/09/29_17:00:49 INFO: LVM Volume ocft-vg is offline
> > > > > > 
> > > > > > That's for double stop, I think. OTOH, ocf-tester says that it
> > > > > > passed all tests. Somebody's lying :)
> > > > 
> > > > I do not know a lot about ocft.
> > > > I carried out ocft with -v option.
> > > > *  It is LVM which applied the patch which I attached to this email to have \
> > > > carried out. 
> > > > [root@bl460g1a heartbeat]# /usr/sbin/ocft test -v LVM 
> > > > Initialing LVM...done
> > > > (snip)
> > > > Starting 'LVM' case 7 'monitor when running':
> > > > Setting agent environment:    export \
> > > > OCFT_pv=/var/run/resource-agents/ocft-LVM-pv Setting agent environment:    \
> > > > export OCFT_vg=ocft-vg Setting agent environment:    export OCFT_lv=ocft-lv
> > > > Setting agent environment:    export OCFT_loop=/dev/loop0
> > > > Setting agent environment:    export OCF_RESKEY_volgrpname=ocft-vg
> > > > Running agent:                ./LVM stop ----> ?????
> > > > Running agent:                ./LVM monitor
> > > > Checking return value:        FAILED. The return value 'OCF_NOT_RUNNING' != \
> > > > 'OCF_SUCCESS'. See details below: 2011/09/30_10:16:49 INFO: LVM Volume \
> > > > ocft-vg is offline (snip)
> > > > 
> > > > After stop of LVM was carried out on 'monitor when running' test, monitor \
> > > > seems to be carried out. 
> > > > Is not it a problem of ocft?
> > > > 
> > > > > > When I tried by hand to stop a running VG:
> > > > > > 
> > > > > > # OCF_RESKEY_volgrpname=$OCFT_vg /usr/lib/ocf/resource.d/heartbeat/LVM \
> > > > > >                 stop
> > > > > > INFO: Deactivating volume group ocft-vg
> > > > > > INFO: 0 logical volume(s) in volume group "ocft-vg" now active
> > > > > > ERROR: LVM Volume ocft-vg is not available (stopped).     Using volume \
> > > > > > group(s) on command line Finding volume group "ocft-vg"
> > > > > > ...
> > > > > > # echo $?
> > > > > > 0
> > > > > > 
> > > > > > The exit code is OK, but there's an error message. Further stops
> > > > > > produced the same. Can you please verify this.
> > > > > > 
> > > > > > Hence, there seems to be a problem with the ocft test case.
> > > > 
> > > > This was a mistake of my patch.
> > > > I attached the patch which I revised.
> > > > 
> > > > Best Regards,
> > > > Hideo Yamauchi.
> > > > 
> > > > 
> > > > 
> > > > --- On Fri, 2011/9/30, renayama19661014@ybb.ne.jp \
> > > > <renayama19661014@ybb.ne.jp> wrote: 
> > > > > Hi Dejan,
> > > > > 
> > > > > Thank you for comment.
> > > > > I confirm your information and revise a patch again.
> > > > > 
> > > > > Best Regards,
> > > > > Hideo Yamauchi.
> > > > > 
> > > > > --- On Fri, 2011/9/30, Dejan Muhamedagic <dejan@suse.de> wrote:
> > > > > 
> > > > > > Hi Hideo-san,
> > > > > > 
> > > > > > On Mon, Sep 12, 2011 at 02:44:22PM +0900, renayama19661014@ybb.ne.jp \
> > > > > > wrote:
> > > > > > > Hi All, 
> > > > > > > 
> > > > > > > We made the patch of the LVM resource agent at the next point of view.
> > > > > > > 
> > > > > > > Point 1) The LVM resource agent outputs the details of the log at the \
> > > > > > > time of the error for a system administrator. Point 2) The LVM resource \
> > > > > > > agent uses OCF variable for a return code. Point 3) With a patch, the \
> > > > > > > LVM resource agent merge status processing and report_status \
> > > > > > > processing. 
> > > > > > > * We did not revise it about TODO of vgimport/vgexport in the LVM \
> > > > > > > resource agent. 
> > > > > > > Please examine this patch. 
> > > > > > 
> > > > > > ocft test reports this:
> > > > > > 
> > > > > > 'LVM' case 7:   FAILED. Agent returns unexpected value: \
> > > > > > 'OCF_NOT_RUNNING'. See details below: 2011/09/29_17:00:49 WARNING: LVM \
> > > > > > Volume ocft-vg is not available (stopped).     Using volume group(s) on \
> > > > > > command line Finding volume group "ocft-vg"
> > > > > > --- Volume group ---
> > > > > > VG Name               ocft-vg
> > > > > > System ID
> > > > > > Format                lvm2
> > > > > > Metadata Areas        1
> > > > > > Metadata Sequence No  2
> > > > > > VG Access             read/write
> > > > > > VG Status             resizable
> > > > > > MAX LV                0
> > > > > > Cur LV                1
> > > > > > Open LV               0
> > > > > > Max PV                0
> > > > > > Cur PV                1
> > > > > > Act PV                1
> > > > > > VG Size               4.00 MiB
> > > > > > PE Size               4.00 KiB
> > > > > > Total PE              1024
> > > > > > Alloc PE / Size       150 / 600.00 KiB
> > > > > > Free  PE / Size       874 / 3.41 MiB
> > > > > > VG UUID               csVKm6-Bzdp-s40E-9O2S-uttx-PrcW-fq6Wtz
> > > > > > 
> > > > > > --- Logical volume ---
> > > > > > LV Name                /dev/ocft-vg/ocft-lv
> > > > > > VG Name                ocft-vg
> > > > > > LV UUID                XjMtXj-DLzy-J8Rb-6Bfb-HNoM-7o6x-VOPnMG
> > > > > > LV Write Access        read/write
> > > > > > LV Status              NOT available
> > > > > > LV Size                600.00 KiB
> > > > > > Current LE             150
> > > > > > Segments               1
> > > > > > Allocation             inherit
> > > > > > Read ahead sectors     auto
> > > > > > 
> > > > > > --- Physical volumes ---
> > > > > > PV Name               /dev/loop0
> > > > > > PV UUID               z6deWo-42uN-HPrZ-nLC4-wrba-34IZ-N98cmL
> > > > > > PV Status             allocatable
> > > > > > Total PE / Free PE    1024 / 874
> > > > > > 
> > > > > > 2011/09/29_17:00:49 INFO: LVM Volume ocft-vg is offline
> > > > > > 
> > > > > > That's for double stop, I think. OTOH, ocf-tester says that it
> > > > > > passed all tests. Somebody's lying :)
> > > > > > 
> > > > > > When I tried by hand to stop a running VG:
> > > > > > 
> > > > > > # OCF_RESKEY_volgrpname=$OCFT_vg /usr/lib/ocf/resource.d/heartbeat/LVM \
> > > > > >                 stop
> > > > > > INFO: Deactivating volume group ocft-vg
> > > > > > INFO: 0 logical volume(s) in volume group "ocft-vg" now active
> > > > > > ERROR: LVM Volume ocft-vg is not available (stopped).     Using volume \
> > > > > > group(s) on command line Finding volume group "ocft-vg"
> > > > > > ...
> > > > > > # echo $?
> > > > > > 0
> > > > > > 
> > > > > > The exit code is OK, but there's an error message. Further stops
> > > > > > produced the same. Can you please verify this.
> > > > > > 
> > > > > > Hence, there seems to be a problem with the ocft test case.
> > > > > > 
> > > > > > Cheers,
> > > > > > 
> > > > > > Dejan
> > > > > > 
> > > > > > > Best Regards,
> > > > > > > Hideo Yamauchi.
> > > > > > > diff -r fc1e82852f7a heartbeat/LVM
> > > > > > > --- a/heartbeat/LVM    Wed Aug 31 01:39:02 2011 +0900
> > > > > > > +++ b/heartbeat/LVM    Mon Sep 12 14:29:36 2011 +0900
> > > > > > > @@ -123,22 +123,17 @@
> > > > > > > #    Return LVM status (silently)
> > > > > > > #
> > > > > > > LVM_status() {
> > > > > > > -  if 
> > > > > > > -    [ "$LVM_MAJOR" -eq "1" ]
> > > > > > > -  then
> > > > > > > -    vgdisplay $1 2>&1 | grep -i 'Status.*available' 2>&1 >/dev/null
> > > > > > > -    return $?
> > > > > > > -  else
> > > > > > > -    vgdisplay -v $1 2>&1 | grep -i 'Status[ \t]*available' 2>&1 \
> > > > > > >                 >/dev/null
> > > > > > > -    return $?
> > > > > > > +  local rc
> > > > > > > +  loglevel="debug"
> > > > > > > +
> > > > > > > +  # Set the log level of the error message
> > > > > > > +  if [ "X${2}" == "X" ]; then
> > > > > > > +    loglevel="err"
> > > > > > > +    if ocf_is_probe; then
> > > > > > > +      loglevel="warn"
> > > > > > > +    fi
> > > > > > > fi
> > > > > > > -}
> > > > > > > -
> > > > > > > -#
> > > > > > > -#    Report on LVM volume status to stdout...
> > > > > > > -#
> > > > > > > -LVM_report_status() {
> > > > > > > -
> > > > > > > +  
> > > > > > > if 
> > > > > > > [ "$LVM_MAJOR" -eq "1" ]
> > > > > > > then
> > > > > > > @@ -150,16 +145,16 @@
> > > > > > > echo "$VGOUT" | grep -i 'Status[ \t]*available' >/dev/null
> > > > > > > rc=$?
> > > > > > > fi
> > > > > > > -
> > > > > > > -  if
> > > > > > > -    [ $rc -eq 0 ]
> > > > > > > -  then
> > > > > > > -    : Volume $1 is available
> > > > > > > -  else
> > > > > > > -    ocf_log debug "LVM Volume $1 is not available (stopped)"
> > > > > > > -    return $OCF_NOT_RUNNING
> > > > > > > +  if [ $rc -ne 0 ]; then
> > > > > > > +        ocf_log $loglevel "LVM Volume $1 is not available (stopped). \
> > > > > > > ${VGOUT}" +  fi
> > > > > > > +  
> > > > > > > +  if [ "X${2}" == "X" ]; then
> > > > > > > +    # status call return
> > > > > > > +      return $rc
> > > > > > > fi
> > > > > > > 
> > > > > > > +  # Report on LVM volume status to stdout...
> > > > > > > if
> > > > > > > echo "$VGOUT" | grep -i 'Access.*read/write' >/dev/null
> > > > > > > then
> > > > > > > @@ -167,8 +162,9 @@
> > > > > > > else
> > > > > > > ocf_log debug "Volume $1 is available read-only (running)"
> > > > > > > fi
> > > > > > > -  
> > > > > > > + 
> > > > > > > return $OCF_SUCCESS
> > > > > > > +
> > > > > > > }
> > > > > > > 
> > > > > > > #
> > > > > > > @@ -176,6 +172,7 @@
> > > > > > > #
> > > > > > > #
> > > > > > > LVM_monitor() {
> > > > > > > +  local rc
> > > > > > > if
> > > > > > > LVM_status $1
> > > > > > > then
> > > > > > > @@ -185,9 +182,14 @@
> > > > > > > return $OCF_NOT_RUNNING
> > > > > > > fi
> > > > > > > 
> > > > > > > -  vgck $1 >/dev/null 2>&1
> > > > > > > +  VGOUT=`vgck $1 2>&1`
> > > > > > > +  rc=$?
> > > > > > > +  if [ $rc -ne 0 ]; then
> > > > > > > +    ocf_log err "LVM Volume $1 is not found. ${VGOUT}:${rc}"
> > > > > > > +    return $OCF_ERR_GENERIC
> > > > > > > +  fi
> > > > > > > 
> > > > > > > -  return $?
> > > > > > > +  return $OCF_SUCCESS
> > > > > > > }
> > > > > > > 
> > > > > > > #
> > > > > > > @@ -232,10 +234,10 @@
> > > > > > > 
> > > > > > > vgdisplay "$1" 2>&1 | grep 'Volume group .* not found' >/dev/null && {
> > > > > > > ocf_log info "Volume group $1 not found"
> > > > > > > -    return 0
> > > > > > > +    return $OCF_SUCCESS
> > > > > > > }
> > > > > > > ocf_log info "Deactivating volume group $1"
> > > > > > > -  ocf_run vgchange -a ln $1 || return 1
> > > > > > > +  ocf_run vgchange -a ln $1 || return $OCF_ERR_GENERIC
> > > > > > > 
> > > > > > > if
> > > > > > > LVM_status $1
> > > > > > > @@ -256,10 +258,10 @@
> > > > > > > check_binary $AWK
> > > > > > > 
> > > > > > > #    Off-the-shelf tests...  
> > > > > > > -  vgck "$VOLUME" >/dev/null 2>&1
> > > > > > > +  VGOUT=`vgck ${VOLUME} 2>&1`
> > > > > > > 
> > > > > > > if [ $? -ne 0 ]; then
> > > > > > > -    ocf_log err "Volume group [$VOLUME] does not exist or contains \
> > > > > > > error!" +    ocf_log err "Volume group [$VOLUME] does not exist or \
> > > > > > > contains error! ${VGOUT}" exit $OCF_ERR_GENERIC
> > > > > > > fi
> > > > > > > 
> > > > > > > @@ -267,13 +269,13 @@
> > > > > > > if 
> > > > > > > [ "$LVM_MAJOR" -eq "1" ]
> > > > > > > then
> > > > > > > -    vgdisplay "$VOLUME" >/dev/null 2>&1
> > > > > > > +    VGOUT=`vgdisplay ${VOLUME} 2>&1`
> > > > > > > else
> > > > > > > -    vgdisplay -v "$VOLUME" >/dev/null 2>&1
> > > > > > > +    VGOUT=`vgdisplay -v ${VOLUME} 2>&1`
> > > > > > > fi
> > > > > > > 
> > > > > > > if [ $? -ne 0 ]; then
> > > > > > > -    ocf_log err "Volume group [$VOLUME] does not exist or contains \
> > > > > > > error!" +    ocf_log err "Volume group [$VOLUME] does not exist or \
> > > > > > > contains error! ${VGOUT}" exit $OCF_ERR_GENERIC
> > > > > > > fi
> > > > > > > 
> > > > > > > @@ -350,7 +352,7 @@
> > > > > > > stop)        LVM_stop $VOLUME
> > > > > > > exit $?;;
> > > > > > > 
> > > > > > > -  status)    LVM_report_status $VOLUME
> > > > > > > +  status)    LVM_status $VOLUME $1
> > > > > > > exit $?;;
> > > > > > > 
> > > > > > > monitor)    LVM_monitor $VOLUME
> > > > > > 
> > > > > > > _______________________________________________________
> > > > > > > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> > > > > > > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> > > > > > > Home Page: http://linux-ha.org/
> > > > > > 
> > > > > > 
> > > > > _______________________________________________________
> > > > > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> > > > > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> > > > > Home Page: http://linux-ha.org/
> > > > > 
> > diff -r fc1e82852f7a heartbeat/LVM
> > --- a/heartbeat/LVM    Wed Aug 31 01:39:02 2011 +0900
> > +++ b/heartbeat/LVM    Fri Sep 30 11:07:52 2011 +0900
> > @@ -123,22 +123,21 @@
> > #    Return LVM status (silently)
> > #
> > LVM_status() {
> > -  if 
> > -    [ "$LVM_MAJOR" -eq "1" ]
> > -  then
> > -    vgdisplay $1 2>&1 | grep -i 'Status.*available' 2>&1 >/dev/null
> > -    return $?
> > -  else
> > -    vgdisplay -v $1 2>&1 | grep -i 'Status[ \t]*available' 2>&1 >/dev/null
> > -    return $?
> > +  local rc
> > +  loglevel="debug"
> > +
> > +  # Set the log level of the error message
> > +  if [ "X${2}" == "X" ]; then
> > +    loglevel="err"
> > +    if ocf_is_probe; then
> > +      loglevel="warn"
> > +    else 
> > +      if [ ${OP_METHOD} == "stop" ]; then
> > +        loglevel="info"
> > +      fi
> > +    fi
> > fi
> > -}
> > -
> > -#
> > -#    Report on LVM volume status to stdout...
> > -#
> > -LVM_report_status() {
> > -
> > +  
> > if 
> > [ "$LVM_MAJOR" -eq "1" ]
> > then
> > @@ -151,15 +150,16 @@
> > rc=$?
> > fi
> > 
> > -  if
> > -    [ $rc -eq 0 ]
> > -  then
> > -    : Volume $1 is available
> > -  else
> > -    ocf_log debug "LVM Volume $1 is not available (stopped)"
> > -    return $OCF_NOT_RUNNING
> > +  if [ $rc -ne 0 ]; then
> > +        ocf_log $loglevel "LVM Volume $1 is not available (stopped). ${VGOUT}"
> > +  fi
> > +  
> > +  if [ "X${2}" == "X" ]; then
> > +    # status call return
> > +      return $rc
> > fi
> > 
> > +  # Report on LVM volume status to stdout...
> > if
> > echo "$VGOUT" | grep -i 'Access.*read/write' >/dev/null
> > then
> > @@ -167,8 +167,9 @@
> > else
> > ocf_log debug "Volume $1 is available read-only (running)"
> > fi
> > -  
> > + 
> > return $OCF_SUCCESS
> > +
> > }
> > 
> > #
> > @@ -176,6 +177,7 @@
> > #
> > #
> > LVM_monitor() {
> > +  local rc
> > if
> > LVM_status $1
> > then
> > @@ -185,9 +187,14 @@
> > return $OCF_NOT_RUNNING
> > fi
> > 
> > -  vgck $1 >/dev/null 2>&1
> > +  VGOUT=`vgck $1 2>&1`
> > +  rc=$?
> > +  if [ $rc -ne 0 ]; then
> > +    ocf_log err "LVM Volume $1 is not found. ${VGOUT}:${rc}"
> > +    return $OCF_ERR_GENERIC
> > +  fi
> > 
> > -  return $?
> > +  return $OCF_SUCCESS
> > }
> > 
> > #
> > @@ -232,10 +239,10 @@
> > 
> > vgdisplay "$1" 2>&1 | grep 'Volume group .* not found' >/dev/null && {
> > ocf_log info "Volume group $1 not found"
> > -    return 0
> > +    return $OCF_SUCCESS
> > }
> > ocf_log info "Deactivating volume group $1"
> > -  ocf_run vgchange -a ln $1 || return 1
> > +  ocf_run vgchange -a ln $1 || return $OCF_ERR_GENERIC
> > 
> > if
> > LVM_status $1
> > @@ -256,10 +263,10 @@
> > check_binary $AWK
> > 
> > #    Off-the-shelf tests...  
> > -  vgck "$VOLUME" >/dev/null 2>&1
> > +  VGOUT=`vgck ${VOLUME} 2>&1`
> > 
> > if [ $? -ne 0 ]; then
> > -    ocf_log err "Volume group [$VOLUME] does not exist or contains error!"
> > +    ocf_log err "Volume group [$VOLUME] does not exist or contains error! \
> > ${VGOUT}" exit $OCF_ERR_GENERIC
> > fi
> > 
> > @@ -267,13 +274,13 @@
> > if 
> > [ "$LVM_MAJOR" -eq "1" ]
> > then
> > -    vgdisplay "$VOLUME" >/dev/null 2>&1
> > +    VGOUT=`vgdisplay ${VOLUME} 2>&1`
> > else
> > -    vgdisplay -v "$VOLUME" >/dev/null 2>&1
> > +    VGOUT=`vgdisplay -v ${VOLUME} 2>&1`
> > fi
> > 
> > if [ $? -ne 0 ]; then
> > -    ocf_log err "Volume group [$VOLUME] does not exist or contains error!"
> > +    ocf_log err "Volume group [$VOLUME] does not exist or contains error! \
> > ${VGOUT}" exit $OCF_ERR_GENERIC
> > fi
> > 
> > @@ -340,7 +347,7 @@
> > LVM_MAJOR="${LVM_VERSION%%.*}"
> > 
> > VOLUME=$OCF_RESKEY_volgrpname
> > -
> > +OP_METHOD=$1
> > # What kind of method was invoked?
> > case "$1" in
> > 
> > @@ -350,7 +357,7 @@
> > stop)        LVM_stop $VOLUME
> > exit $?;;
> > 
> > -  status)    LVM_report_status $VOLUME
> > +  status)    LVM_status $VOLUME $1
> > exit $?;;
> > 
> > monitor)    LVM_monitor $VOLUME
> 
> > _______________________________________________________
> > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> > Home Page: http://linux-ha.org/
> 
> 
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic