You are on page 1of 8

HA iSCSI Target on Ubuntu Server

v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
How-to build free failover
iSCSI target on Ubuntu Server
for VMware ESX(i)
v0.2 200.!0.22
1$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
"#i$ i$ not a full-fledged arti%le& rat#er it note$ to 'our$elf for t#e future...
(oal - building a free& failover i$%$i target for VMware ESX(i) #o$t$.
)#at we need* 2 $erver$ wit# 2 gigabit ni%+$ on ea%# $erver wit# Ubuntu ,inu-
Server .0. in$talled wit# late$t u/date$ on it+$.
So... let+$ $tart *)
!) Edit /etc/hosts:
root@earth:/root# vi 0et%0#o$t$
!12.!2.!.2 3oon.do3ain./%b 3oon
!12.!2.!.! eart#.do3ain./%b eart#
2) In$tall 45647
root@earth:/root# a/titude in$tall drbd-util$
8) Edit /etc/drbd.conf
root@earth:/root# vi 0et%0drbd.%onf
global 9
u$age-%ount 'e$:
;
%o33on 9
$'n%er 9
2$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
rate !00M:
al-e-tent$ 2<1:
;
;
re$our%e r0 9
/roto%ol C:
$tartu/ 9
be%o3e-/ri3ar'-on bot#: === >or ?ri3ar'0?ri3ar' ===
degr-wf%-ti3eout 20:
wf%-ti3eout 80:
;
di$@ 9
on-io-error deta%#:
;
net 9
allow-two-/ri3arie$: === >or ?ri3ar'0?ri3ar' ===
%ra3-#3a%-alg $#a!:
$#ared-$e%ret ABurStrongSe%retA:
after-$b-0/ri di$%ard-Cero-%#ange$:
after-$b-!/ri violentl'-a$0/:
after-$b-2/ri violentl'-a$0/:
;
on eart# 9
devi%e 0dev0drbd0:
di$@ 0dev0$db:
addre$$ !2.!27.!.!*1177:
3eta-di$@ 0dev0$da<D0E:
;
on 3oon 9
devi%e 0dev0drbd0:
di$@ 0dev0$db:
addre$$ !2.!27.!.2*1177:
3eta-di$@ 0dev0$da<D0E:
;
;
&$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
.) Create 3etadata and %onne%t re$our%e$
root@earth:/root# dd ifF0dev0Cero ofF0dev0$da< b$F!M %ountF2<2
root@earth:/root# $ervi%e drbd $to/
root@earth:/root# drbdad3 %reate-3d r0
root@earth:/root# 3od/robe drbd
root@earth:/root# drbdad3 atta%# r0
root@earth:/root# drbdad3 %onne%t r0
<) Ma@e t#e3 ?ri3ar'0?ri3ar'
root@earth:/root# drbd$etu/ 0dev0drbd0 /ri3ar' -o
2) Verif' t#at 4564 wor@ fine
rootGeart#*0#o3e030/$= %at 0/ro%0drbd
ver$ion* 7.8.0 (a/i*770/roto*72-7)
(I"-#a$#* ba7b8e2.d7.2f0dd8fb!fb0e78.7ddb<72 build b' ivo@$Gubuntu& 200-0!-!1 01*.*<2
0* %$*Conne%ted ro*?ri3ar'0?ri3ar' d$*U/"o4ate0U/"o4ate C r---
n$*2.7. nr*11<.0 dw*!<.02. dr*821.0 al*!7 b3*2 lo*0 /e*0 ua*0 a/*0 e/*! wo*b oo$*0
1) In$tall (>S2
root@earth:/root# a/titude in$tall gf$-tool$ %3an %lv3
7) Configure (>S %lu$ter (edit /etc/cluster/cluster.conf )
root@earth:/root# vi 0et%0%lu$ter0%lu$ter.%onf
HI-3l ver$ionFA!.0AIJ
H%lu$ter na3eFA%lu$ter!A %onfigKver$ionFA8AJ
H%3an twoKnodeFA!A e-/e%tedKvote$FA!A0J
H%lu$ternode$J
H%lu$ternode na3eFAeart#A vote$FA!A nodeidFA!AJ
Hfen%eJ
H3et#od na3eFA$ingleAJ
Hdevi%e na3eFA3anualA i/addrFA!12.!2.!.!A0J
H03et#odJ
H0fen%eJ
H0%lu$ternodeJ
H%lu$ternode na3eFA3oonA vote$FA!A nodeidFA2AJ
Hfen%eJ
H3et#od na3eFA$ingleAJ
Hdevi%e na3eFA3anualA i/addrFA!12.!2.!.2A0J
'$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
H03et#odJ
H0fen%eJ
H0%lu$ternodeJ
H0%lu$ternode$J
Hfen%eKdae3on %leanK$tartFA!A /o$tKfailKdela'FA0A /o$tKLoinKdela'FA8A0J
Hfen%edevi%e$J
Hfen%edevi%e na3eFA3anualA agentFAfen%eK3anualA0J
H0fen%edevi%e$J
H0%lu$terJ
) C#ange lo%@ t'/e& de/end on $'$te3 environ3ent$
root@earth:/root# vi 0et%0lv30lv3.%onf
=lo%@ingKt'/e F !
=lo%@ingKdir F M0var0lo%@0lv3N
=librar'Kdir F M0lib0lv32O
lo%@ingKt'/e F 2
librar'Kdir F A0lib0lv32A
lo%@ingKlibrar' F Aliblv32%lu$terlo%@.$oA
!0) 5e$tart $ervi%e$
root@earth:/root# $ervi%e %3an $to/
root@earth:/root# $ervi%e %3an $tart
root@earth:/root# $ervi%e %lv3 $to/
root@earth:/root# $ervi%e %lv3 $tart
!!) >or3at drbd0 to (>S2
root@earth:/root# gf$2K3@f$ -/ lo%@Kdl3 -t %lu$ter!*gf$ -L 2 0dev0drbd0
root@earth:/root# f$2Kf$%@ 0dev0drbd0
!2) Mount (>S /artition
root@earth:/root# 3@dir 0v3f$
root@earth:/root# 3ount -t gf$2 0dev0drbd0 0v3f$
root@earth:/root# vi3 0et%0r%.lo%al
$lee/ <
3ount -t gf$2 0dev0drbd0 0v3f$
!8) "e$t (>S
- on eart#*
root@earth:/root# iF0:w#ile true: do e%#o aaaaaaaa&Pi JJ 0v3f$0te$t.log :iFQe-/r Pi R !Q:done
root@earth:/root# tail -f 0v3f$0te$t.log
($%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
- on 3oon*
root@moon:/root# iF0:w#ile true: do e%#o bbbbbbbb&Pi JJ 0v3f$0te$t.log :iFQe-/r Pi R !Q:done
root@moon:/root# tail -f 0v3f$0te$t.log
S$ a re$ult - 'ou 3a' $ee at file te$t.log $o3et#ing li@e t#i$*
root@earth:/root# tail -f 0v3f$0te$t.log
bbbbbbbb&2.<<.
bbbbbbbb&2.<<<
bbbbbbbb&2.<<2
bbbbbbbb&2.<<1
bbbbbbbb&2.<<7
bbbbbbbb&2.<<
aaaaaaaa&8!2<
aaaaaaaa&8!22
aaaaaaaa&8!21
aaaaaaaa&8!27
aaaaaaaa&8!2
aaaaaaaa&8!100
aaaaaaaa&8!10!
bbbbbbbb&2.<20
bbbbbbbb&2.<2!
bbbbbbbb&2.<22
bbbbbbbb&2.<28
bbbbbbbb&2.<2.
E-elent& 4564 in ?ri3ar'0?ri3ar' 3ode wor@+$ fineT
!.) In$tall IE"4
root@earth:/root# a/titude in$tall i$%$itarget
!<) Configure IE"4
- edit /etc/ietd.conf
root@earth:/root# vi 0et%0ietd.%onf
"arget iUn.200-!0.lo%al.do3ain*drbd.v3f$-aa2!aa2f71
In%o3ingU$er VMwareU$er VMware?a$$word
,un 0 ?at#F0v3f$0e$-.lun&"'/eFfileio&S%$iSVF4564-aa2!aa2f71
Slia$ 4564-VM>S-aa2!aa2f71
- edit /etc/default/iscsitarget
root@earth:/root# vi 0et%0default0i$%$itarget
ISCSI"S5(E"KEVS6,EFtrue
)$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
- %reate $torage file ($iCe - <00(b)
root@earth:/root# dd ifF0dev0Cero ofF0v3f$0e$-.lun %ountF0 ob$F! $ee@F<00(
!2) 5e$tart IE"4 $ervi%e
root@earth:/root# $ervi%e i$%$itarget $to/
root@earth:/root# $ervi%e i$%$itarget $tart
!1) In$tall Heartbeat2 and Heartbeat (ui
root@earth:/root# a/titude in$tall #eartbeat2 #bKgui
!7) Create /etc/ha.d/ha.cf
root@earth:/root# vi 0et%0#a.d0#a.%f
ud//ort 2.
autoLoin none
%r3 true
b%a$t et#0
node eart#
node 3oon
!) Create /etc/ha.d/authkeys
root@earth:/root# vi 0et%0#a.d0aut#@e'$
aut# !
! %r%
root@earth:/root# %#3od 200 0et%0#a.d0aut#@e'$
20) 5e$tart Heartbeat
root@earth:/root# $ervi%e #eartbeat $to/
root@earth:/root# $ervi%e #eartbeat $to/
2!) Set /a$$word for u$er hacluster
root@earth:/root# /a$$wd #a%lu$ter
22) Start Heartbeat (ui
root@earth:/root# #bKgui W
28) Conne%t to one of t#e $erver+$ and %onfigure onl' one re$our%e - i/ addre$$
(!12.!2.!.!0)& t#at u$ed b' ESX(i) #o$t$ for SSV %onne%t. >or %onne%tion u$e following
%redential$*
- #o$t X i/ of #o$t on wit# Heartbeat (UI in$talled:
- na3e X t#e u$erna3e hacluster:
- /a$$word X t#e /a$$word t#at 'ou Lu$t a$$igned to u$er hacluster.
*$%
HA iSCSI Target on Ubuntu Server
v0.2 2009.10.22
Kursin Maxim (m0ps.uagmai!."om#
2.) C#e%@ #eartbeat $tatu$. 'ou 3a' $ee $o3et#ing li@e t#i$*
root@earth:/root# %r3K3on -i !
5efre$# in !$...
FFFFFFFFFFFF
,a$t u/dated* )ed B%t 2! !<*<*< 200
Current 4C* eart# (10f0!7-7e<a-.!a-7ee-f..dab28027<)
2 Vode$ %onfigured.
! 5e$our%e$ %onfigured.
FFFFFFFFFFFF
Vode* 3oon (a2a2.-0%!2-.-a801-<aabe2a%7f)* online
Vode* eart# (10f0!7-7e<a-.!a-7ee-f..dab28027<)* online
5e$our%e (rou/* %lu$ter!
iSCSIKtargetKI? (o%f**#eartbeat*I?addr2)* Started eart#
2<) If $/lit-brain #a//en and 4564 did not $'n%*
- on 3ain $ide (eart# for e-a3/le)
root@earth:/root# drbdad3 %onne%t r0
- on adLu$t $ide (3oon for e-a3/le)
root@moon:/root# $ervi%e i$%$itarget $to/
root@moon:/root# u3ount 0v3f$J drbdad3 $e%ondar' r0
root@moon:/root# drbdad3 -- --di$%ard-3'-data %onne%t r0
root@moon:/root# drbd$etu/ 0dev0drbd0 /ri3ar' -o
root@moon:/root# 3ount 0dev0drdb0 0v3f$
root@moon:/root# $ervi%e i$%$itarget $tart
%$%

You might also like