Re: Carp and Apache

2005-11-11 Thread DAve

Danny Howard wrote:

Dave,

Yes.


Yes both apache servers have the same IP in httpd.conf? or Yes I am 
completely off base in my understanding?


Not certain I can go this route right now anyway as I do not have enough 
test boxes to setup a trial. There seems to be a shortage of good docs 
on using CARP outside of using it with PF.


Thanks,

DAve



The trick with CARP is that it is an IP-level heartbeat, so if you are
running Apache, you want to carp up after you start apache, and carp
down before you stop Apache.


From some test boxes, web0:

ifconfig_fxp1=inet 192.168.1.210 netmask 255.255.255.0
defaultrouter=192.168.1.1
cloned_interfaces=carp0 carp1

Then, web0 application config file:
export CARP_PASS=mekmitasdigoat
# MASTER
export CARP_carp0_IP=192.168.1.206
export CARP_carp0_VHID=1
# SLAVE
export CARP_carp1_IP=192.168.1.207
export CARP_carp1_VHID=2
export CARP_carp1_SKEW=100

Next, the Application control script:
# CARP
carp_ifs=`ifconfig -l | tr ' ' '\n' | grep carp`

# Set up CARP
for carp_if in $carp_ifs; do
eval   carp_ip=\$CARP_${carp_if}_IP
eval carp_vhid=\$CARP_${carp_if}_VHID
eval carp_skew=\$CARP_${carp_if}_SKEW

if [ -n $carp_vhid ]; then
carp_vhid=vhid $carp_vhid
fi
if [ -n $carp_skew ]; then
carp_skew=advskew $carp_skew
fi

if [ -n ${carp_ip} -a -n ${carp_vhid} ]; then
ifconfig $carp_if pass $CARP_PASS $carp_vhid $carp_skew 
$carp_ip
ifconfig $carp_if down
else
echo WARNING: $carp_if but missing CARP_${carp_if}_IP or 
CARP_${carp_if}_VHID!
fi
done

[... later ...]
if [ $status -eq 0 ]; then
  echo Apache successfully ${cmd}ed
  echo Ready to CARP UP!
  if [ -n ${carp_ifs} ]; then
for carp_if in $carp_ifs; do
eval   carp_ip=\$CARP_${carp_if}_IP
eval carp_vhid=\$CARP_${carp_if}_VHID
if [ -n ${carp_ip} -a -n ${carp_vhid} ]; then
ifconfig $carp_if up
fi
done
sysctl net.inet.carp.preempt=1
  fi
else
  echo Apache failed to $cmd
  exit 2
fi


Okay, so that's really quite a mess, but basically:
* Set cloned_interfaces in rc.conf to create carpn at boot.
* One IP alias and VHID per CARP IP.
* Set up the backup server with higher advskew.
* For availability, teach you apachectl script to ifconfig the carp
  interfaces, ifconfig down, start apache, ifconfig up, and ifconfig
  down before stopping / restarting apache.

Cheers,
-danny



___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Carp and Apache

2005-11-04 Thread Danny Howard
Dave,

Yes.

The trick with CARP is that it is an IP-level heartbeat, so if you are
running Apache, you want to carp up after you start apache, and carp
down before you stop Apache.

From some test boxes, web0:
ifconfig_fxp1=inet 192.168.1.210 netmask 255.255.255.0
defaultrouter=192.168.1.1
cloned_interfaces=carp0 carp1

Then, web0 application config file:
export CARP_PASS=mekmitasdigoat
# MASTER
export CARP_carp0_IP=192.168.1.206
export CARP_carp0_VHID=1
# SLAVE
export CARP_carp1_IP=192.168.1.207
export CARP_carp1_VHID=2
export CARP_carp1_SKEW=100

Next, the Application control script:
# CARP
carp_ifs=`ifconfig -l | tr ' ' '\n' | grep carp`

# Set up CARP
for carp_if in $carp_ifs; do
eval   carp_ip=\$CARP_${carp_if}_IP
eval carp_vhid=\$CARP_${carp_if}_VHID
eval carp_skew=\$CARP_${carp_if}_SKEW

if [ -n $carp_vhid ]; then
carp_vhid=vhid $carp_vhid
fi
if [ -n $carp_skew ]; then
carp_skew=advskew $carp_skew
fi

if [ -n ${carp_ip} -a -n ${carp_vhid} ]; then
ifconfig $carp_if pass $CARP_PASS $carp_vhid $carp_skew 
$carp_ip
ifconfig $carp_if down
else
echo WARNING: $carp_if but missing CARP_${carp_if}_IP or 
CARP_${carp_if}_VHID!
fi
done

[... later ...]
if [ $status -eq 0 ]; then
  echo Apache successfully ${cmd}ed
  echo Ready to CARP UP!
  if [ -n ${carp_ifs} ]; then
for carp_if in $carp_ifs; do
eval   carp_ip=\$CARP_${carp_if}_IP
eval carp_vhid=\$CARP_${carp_if}_VHID
if [ -n ${carp_ip} -a -n ${carp_vhid} ]; then
ifconfig $carp_if up
fi
done
sysctl net.inet.carp.preempt=1
  fi
else
  echo Apache failed to $cmd
  exit 2
fi


Okay, so that's really quite a mess, but basically:
* Set cloned_interfaces in rc.conf to create carpn at boot.
* One IP alias and VHID per CARP IP.
* Set up the backup server with higher advskew.
* For availability, teach you apachectl script to ifconfig the carp
  interfaces, ifconfig down, start apache, ifconfig up, and ifconfig
  down before stopping / restarting apache.

Cheers,
-danny

-- 
http://dannyman.toldme.com/
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Carp and Apache

2005-10-24 Thread DAve

Good afternoon,

This might be a stupid question, but that never stopped me before ;^) 
I've been watching CARP and now that it is in 5.4 I would like to give 
it a try but I am not able to find much information outside of using it 
with PF.


I am curious how apache should be setup. Where httpd.conf requires an IP 
for named based hosting, should the httpd.conf contain the IP of the 
interface or the IP configured with CARP? I believe the carp interface 
is configured directly on top of the physical interface.


That question in mind, am I completely off track here? I currently have

ifconfig_em0=inet 10.0.240.140 netmask 255.255.255.0
ifconfig_em1=inet 10.0.241.140 netmask 255.255.255.0
ifconfig_em1_alias0=inet 10.0.241.143 netmask 0x
ifconfig_em1_alias1=inet 10.0.241.144 netmask 0x
ifconfig_em1_alias2=inet 10.0.241.145 netmask 0x
ifconfig_em1_alias3=inet 10.0.241.146 netmask 0x
defaultrouter=10.0.241.1

So from what I have read, simply adding the below should get me setup, 
providing that this is the rc.conf from the master


ifconfig carp0 create
ifconfig carp0 vhid 1 pass sdf899734h 10.0.241.140/24
ifconfig carp1 create
ifconfig carp1 vhid 1 pass sdf899734h 10.0.241.143/24
ifconfig carp2 create
ifconfig carp2 vhid 1 pass sdf899734h 10.0.241.144/24
ifconfig carp3 create
ifconfig carp3 vhid 1 pass sdf899734h 10.0.241.145/24
ifconfig carp4 create
ifconfig carp4 vhid 1 pass sdf899734h 10.0.241.146/24

Thanks,

DAve


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]