<div><p style="padding:0 0 0 0; margin:0 0 0 0;">Hello.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">I would like to make a cluster of two nodes using DRBD and HeartBeat. I got two nodes (linux1 and linux2) running Suse linux (uname -a returns "linux1 2.6.5-7.244-default #1 Mon Dec 12 18:32:25 UTC 2005 i686 i686 i386 GNU/Linux"). I installed DRBD and Heartbeat from rpm. I can make a DRBD running manualy using the commands /etc/init.d/drbd start; drbdadm primary shareddisk. I can quite easily reach the consistent state primary/secondary.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Till this point it seems fine but I have problem to make a cluster of nodes using DRBD with heartbeat running. I configured the ha.cf, haresources authkeys according to guides available on Internet.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">My ha.cf file contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">logfile /var/log/ha-log<br />
logfacility local0</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">keepalive 2<br />
deadtime 30<br />
warntime 10<br />
initdead 120<br />
udpport 694<br />
baud 19200<br />
serial /dev/ttyS0</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">bcast eth0</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">auto_failback off</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">node linux1<br />
node linux2</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">ping 10.66.1.254</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">respawn hacluster /usr/lib/heartbeat/ipfail</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">My haresources file contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">linux1 10.66.1.153 drbddisk::shareddisk Filesystem::/dev/drbd0/::/shared::ext3</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">authkeys file contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">auth 1<br />
1 crc</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">(node linux2 have there 2 instead of 1)</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">My drbd.conf contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">DEFAULTFILE="/etc/default/drbd"<br />
DRBDADM="/sbin/drbdadm"<br />
PROC_DRBD="/proc/drbd"<br />
MODPROBE="modprobe"<br />
RMMOD="rmmod"<br />
UDEV_TIMEOUT=10<br />
ADD_MOD_PARAM=""</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">if [ -f $DEFAULTFILE ]; then<br />
. $DEFAULTFILE<br />
fi</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">test -f $DRBDADM || exit 5</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">function assure_module_is_loaded<br />
{<br />
[ -e "$PROC_DRBD" ] && return</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> $MODPROBE -s drbd `$DRBDADM sh-mod-parms` $ADD_MOD_PARAM || {<br />
echo "Can not load the drbd module."$'\n'; exit 20<br />
}<br />
# tell klogd to reload module symbol information ...<br />
[ -e /var/run/klogd.pid ] && [ -x /sbin/klogd ] && /sbin/klogd -i</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> # make sure udev has time to create the device files<br />
RESOURCE=`$DRBDADM sh-resources` || exit 20<br />
RESOURCE=${RESOURCE%%\ *}<br />
DEVICE=`$DRBDADM sh-dev $RESOURCE` || exit 20</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> while [ ! -e $DEVICE ] && [ $UDEV_TIMEOUT -gt 0 ] ; do<br />
sleep 1<br />
UDEV_TIMEOUT=$(( $UDEV_TIMEOUT-1 ))<br />
done<br />
}</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">function adjust_with_progress<br />
{<br />
IFS_O=$IFS<br />
NEWLINE='<br />
'<br />
IFS=$NEWLINE<br />
local D=0<br />
local S=0<br />
local N=0</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> COMMANDS=`$DRBDADM -d adjust all` || exit 20<br />
echo -n "[ "</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> for CMD in $COMMANDS; do<br />
if echo $CMD | grep -q disk; then echo -n "d$D "; D=$(( D+1 ));<br />
elif echo $CMD | grep -q syncer; then echo -n "s$S "; S=$(( S+1 ));<br />
elif echo $CMD | grep -q net; then echo -n "n$N "; N=$(( N+1 ));<br />
else echo echo -n ".. ";<br />
fi<br />
IFS=$IFS_O<br />
$CMD || {<br />
echo -e "\ncmd $CMD failed!"; exit 20<br />
}<br />
IFS=$NEWLINE<br />
done<br />
echo -n "]"</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> IFS=$IFS_O<br />
}</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">case "$1" in<br />
start)<br />
echo -n "Starting DRBD resources: "<br />
assure_module_is_loaded<br />
adjust_with_progress<br />
[ -d /var/lock/subsys ] && touch /var/lock/subsys/drbd # for RedHat<br />
echo "."<br />
$DRBDADM wait_con_int # User interruptible version of wait_connect all<br />
;;<br />
stop)<br />
echo -n "Stopping all DRBD resources"<br />
if [ -e $PROC_DRBD ] ; then<br />
$DRBDADM down all<br />
$RMMOD drbd<br />
fi<br />
[ -f /var/lock/subsys/drbd ] && rm /var/lock/subsys/drbd<br />
echo "."<br />
;;<br />
status)<br />
# NEEDS to be heartbeat friendly...<br />
# so: put some "OK" in the output.<br />
if [ -e $PROC_DRBD ]; then<br />
echo "drbd driver loaded OK; device status:"<br />
cat $PROC_DRBD<br />
exit 0<br />
else<br />
echo >&2 "drbd not loaded"<br />
exit 3<br />
fi<br />
;;<br />
reload)<br />
echo -n "Reloading DRBD configuration"<br />
$DRBDADM adjust all<br />
echo "."<br />
;;<br />
restart|force-reload)<br />
echo -n "Restarting all DRBD resources"<br />
$DRBDADM down all<br />
$RMMOD drbd<br />
assure_module_is_loaded<br />
$DRBDADM up all<br />
echo "."<br />
;;<br />
*)<br />
echo "Usage: /etc/init.d/drbd {start|stop|status|reload|restart|force-reload}"<br />
exit 1<br />
;;<br />
esac</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">exit 0<br />
</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">drbd module is available as follows:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">linux2:~ # modprobe -l drbd<br />
/lib/modules/2.6.5-7.244-default/extra/drbd.ko</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">I tried to start HeartBeat on both nodes manualy (/etc/init.d/heartbeat start). Linux1 and then linux2</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">HeartBeat ha-log at linux1 contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">heartbeat: 2007/01/06_13:48:15 info: **************************<br />
heartbeat: 2007/01/06_13:48:15 info: Configuration validated. Starting heartbeat 1.2.3<br />
heartbeat: 2007/01/06_13:48:15 info: heartbeat: version 1.2.3<br />
heartbeat: 2007/01/06_13:48:15 info: Heartbeat generation: 26<br />
heartbeat: 2007/01/06_13:48:16 info: Starting serial heartbeat on tty /dev/ttyS0 (19200 baud)<br />
heartbeat: 2007/01/06_13:48:16 info: UDP Broadcast heartbeat started on port 694 (694) interface eth<br />
0<br />
heartbeat: 2007/01/06_13:48:16 info: ping heartbeat started.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10218 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10219 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10220 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10221 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10222 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10216 locked in memory.<br />
heartbeat: 2007/01/06_13:48:16 info: Local status now set to: 'up'<br />
heartbeat: 2007/01/06_13:48:16 info: Link linux1:eth0 up.<br />
heartbeat: 2007/01/06_13:48:16 info: pid 10224 locked in memory.<br />
heartbeat: 2007/01/06_13:48:17 info: pid 10223 locked in memory.<br />
heartbeat: 2007/01/06_13:48:17 info: Link 10.66.1.254:10.66.1.254 up.<br />
heartbeat: 2007/01/06_13:48:17 info: Status update for node 10.66.1.254: status ping<br />
heartbeat: 2007/01/06_13:49:35 info: Link linux2:/dev/ttyS0 up.<br />
heartbeat: 2007/01/06_13:49:35 info: Status update for node linux2: status up<br />
heartbeat: 2007/01/06_13:49:35 info: Local status now set to: 'active'<br />
heartbeat: 2007/01/06_13:49:35 info: Starting child client "/usr/lib/heartbeat/ipfail" (90,90)<br />
heartbeat: 2007/01/06_13:49:36 info: Starting "/usr/lib/heartbeat/ipfail" as uid 90 gid 90 (pid 102<br />
28)<br />
heartbeat: 2007/01/06_13:49:36 info: Running /etc/ha.d/rc.d/status status<br />
heartbeat: 2007/01/06_13:49:36 info: Status update for node linux2: status active<br />
heartbeat: 2007/01/06_13:49:37 info: Running /etc/ha.d/rc.d/status status<br />
heartbeat: 2007/01/06_13:49:48 info: remote resource transition completed.<br />
heartbeat: 2007/01/06_13:49:48 info: remote resource transition completed.<br />
heartbeat: 2007/01/06_13:49:48 info: Initial resource acquisition complete (T_RESOURCES(us))<br />
heartbeat: 2007/01/06_13:49:48 info: Local Resource acquisition completed.<br />
heartbeat: 2007/01/06_13:49:48 info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp<br />
heartbeat: 2007/01/06_13:49:48 received ip-request-resp 10.66.1.153 OK yes<br />
heartbeat: 2007/01/06_13:49:48 info: Acquiring resource group: linux1 10.66.1.153 drbddisk::shareddi<br />
sk Filesystem::/dev/drbd0::/shared::ext3<br />
heartbeat: 2007/01/06_13:49:48 info: Running /etc/ha.d/resource.d/IPaddr 10.66.1.153 start<br />
heartbeat: 2007/01/06_13:49:48 info: /sbin/ifconfig eth1:0 10.66.1.153 netmask 255.255.255.0 broa<br />
dcast 10.66.1.255<br />
heartbeat: 2007/01/06_13:49:48 info: Sending Gratuitous Arp for 10.66.1.153 on eth1:0 [eth1]<br />
heartbeat: 2007/01/06_13:49:48 /usr/lib/heartbeat/send_arp -i 1010 -r 5 -p /var/lib/heartbeat/rsctmp<br />
/send_arp/send_arp-10.66.1.153 eth1 10.66.1.153 auto 10.66.1.153 ffffffffffff<br />
heartbeat: 2007/01/06_13:49:48 info: Running /etc/ha.d/resource.d/drbddisk shareddisk start<br />
heartbeat: 2007/01/06_13:49:48 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:48 CRIT: Giving up resources due to failure of drbddisk::shareddisk<br />
heartbeat: 2007/01/06_13:49:48 info: Releasing resource group: linux1 10.66.1.153 drbddisk::shareddi<br />
sk Filesystem::/dev/drbd0::/shared::ext3<br />
heartbeat: 2007/01/06_13:49:48 info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd0 /shared ext3<br />
stop<br />
heartbeat: 2007/01/06_13:49:48 WARNING: Filesystem /shared not mounted?<br />
heartbeat: 2007/01/06_13:49:48 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:48 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:49 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:49 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:49 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:50 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:50 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:50 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:51 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:51 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:51 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:52 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:52 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:52 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:53 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:53 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:53 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:54 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:54 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:54 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:55 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:55 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:55 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:56 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:56 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:56 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:57 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:57 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:57 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:58 info: Retrying failed stop operation [drbddisk::shareddisk]<br />
heartbeat: 2007/01/06_13:49:58 info: Running /etc/ha.d/resource.d/drbddisk shareddisk stop<br />
heartbeat: 2007/01/06_13:49:58 ERROR: Return code 1 from /etc/ha.d/resource.d/drbddisk<br />
heartbeat: 2007/01/06_13:49:58 ERROR: Resource script for drbddisk::shareddisk probably not LSB-comp<br />
liant.<br />
heartbeat: 2007/01/06_13:49:58 WARN: it (drbddisk::shareddisk) MUST succeed on a stop when already s<br />
topped<br />
heartbeat: 2007/01/06_13:49:58 WARN: Machine reboot narrowly avoided!<br />
heartbeat: 2007/01/06_13:49:59 info: Running /etc/ha.d/resource.d/IPaddr 10.66.1.153 stop<br />
heartbeat: 2007/01/06_13:49:59 info: /sbin/route -n del -host 10.66.1.153<br />
heartbeat: 2007/01/06_13:49:59 info: /sbin/ifconfig eth1:0 down<br />
heartbeat: 2007/01/06_13:49:59 info: IP Address 10.66.1.153 released</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">ha-log at linux2 contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">heartbeat: 2007/01/05_13:47:06 info: Configuration validated. Starting heartbeat 1.2.3<br />
heartbeat: 2007/01/05_13:47:06 info: heartbeat: version 1.2.3<br />
heartbeat: 2007/01/05_13:47:06 info: Heartbeat generation: 7<br />
heartbeat: 2007/01/05_13:47:07 info: Starting serial heartbeat on tty /dev/ttyS0 (19200 baud)<br />
heartbeat: 2007/01/05_13:47:07 info: UDP Broadcast heartbeat started on port 694 (694) interface eth<br />
0<br />
heartbeat: 2007/01/05_13:47:07 info: ping heartbeat started.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8028 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8029 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8030 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8031 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8032 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8026 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: Local status now set to: 'up'<br />
heartbeat: 2007/01/05_13:47:07 info: Link linux2:eth0 up.<br />
heartbeat: 2007/01/05_13:47:07 info: pid 8034 locked in memory.<br />
heartbeat: 2007/01/05_13:47:07 info: Link linux1:/dev/ttyS0 up.<br />
heartbeat: 2007/01/05_13:47:07 info: Status update for node linux1: status active<br />
heartbeat: 2007/01/05_13:47:07 info: Running /etc/ha.d/rc.d/status status<br />
heartbeat: 2007/01/05_13:47:08 info: pid 8033 locked in memory.<br />
heartbeat: 2007/01/05_13:47:08 info: Link 10.66.1.254:10.66.1.254 up.<br />
heartbeat: 2007/01/05_13:47:08 info: Status update for node 10.66.1.254: status ping<br />
heartbeat: 2007/01/05_13:47:08 info: Local status now set to: 'active'<br />
heartbeat: 2007/01/05_13:47:08 info: Starting child client "/usr/lib/heartbeat/ipfail" (90,90)<br />
heartbeat: 2007/01/05_13:47:08 info: Starting "/usr/lib/heartbeat/ipfail" as uid 90 gid 90 (pid 803<br />
9)<br />
heartbeat: 2007/01/05_13:47:19 info: local resource transition completed.<br />
heartbeat: 2007/01/05_13:47:19 info: Initial resource acquisition complete (T_RESOURCES(us))<br />
heartbeat: 2007/01/05_13:47:19 info: No local resources [/usr/lib/heartbeat/ResourceManager listkeys<br />
linux2] to acquire.<br />
heartbeat: 2007/01/05_13:47:19 info: remote resource transition completed.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Time at linux2 is 2 minutes later the the time on linux1.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">The drbddisk file contains:</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">DEFAULTFILE="/etc/default/drbd"<br />
#DEFAULTFILE="/etc/init.d/drbd"<br />
DRBDADM="/sbin/drbdadm"</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">if [ -f $DEFAULTFILE ]; then<br />
. $DEFAULTFILE<br />
fi</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">if [ "$#" -eq 2 ]; then<br />
RES="$1"<br />
CMD="$2"<br />
else<br />
RES="all"<br />
CMD="$1"<br />
fi</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">case "$CMD" in<br />
start)<br />
# try several times, in case heartbeat deadtime<br />
# was smaller than drbd ping time<br />
try=6<br />
while true; do<br />
$DRBDADM primary $RES && break<br />
let "--try" || exit 20<br />
sleep 1<br />
done<br />
;;<br />
stop)<br />
# exec, so the exit code of drbdadm propagates<br />
exec $DRBDADM secondary $RES<br />
;;<br />
status)<br />
if [ "$RES" = "all" ]; then<br />
echo "A resource name is required for status inquiries."<br />
exit 10<br />
fi<br />
ST=$( $DRBDADM state $RES 2>&1 )<br />
STATE=${ST%/*}<br />
if [ "$STATE" = "Primary" ]; then<br />
echo "running"<br />
elif [ "$STATE" = "Secondary" ]; then<br />
echo "stopped"<br />
else<br />
echo "$ST"<br />
fi<br />
;;<br />
*)<br />
echo "Usage: drbddisk [resource] {start|stop|status}"<br />
exit 1<br />
;;<br />
esac</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">exit 0</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Please could you help me to make it running automaticaly (DRBD together with heartbeat)? </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Thank you.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Dalo</p>
</div>