Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

glusterfs + samba + ctdb

10 views
Skip to first unread message

Kosa Attila

unread,
Aug 24, 2011, 9:03:38 AM8/24/11
to

Hello!
Van ket virtualis gep, ket-ket halozati interfesszel, uptodate
Squeeze-vel. A glusterfs es a cdtb nem a Squeeze-ben levo
(azokkal is probaltam, de azokkal sem mukodott), hanem amit a
pool-bol legfrissebbet le lehet tolteni.

Egy gepnek ket IP cime van, egy a 192.168.100.0/24 tartomanybol,
egy pedig a 10.10.10.0/24 tartomanybol. A 10-es cimeken csak
egymast latja a ket gep, azokon zajlik a glusterfs es a ctdb
kommunikacio.

Mindket gepben van egy-egy 5GB-os diszk, amit a glusterfs-sel
osszefogtam (eloszor letrehoztam egy particiot, majd ext3-at
tettem ra, mountoltam mindket gepen a /mnt konyvtarba).

# gluster volume info

Volume Name: SAMBA
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: 10.10.10.1:/mnt
Brick2: 10.10.10.2:/mnt

Szepen mukodni latszik a dolog. Igy mountolom a glusterfs-t a
10.10.10.1-es gepen:
# mount -t glusterfs -o log-level=WARNING,log-file=/var/log/glusterfs/samba.log 10.10.10.1:/SAMBA /samba

A 10.10.10.2-es gepen ugyanigy, de ott a 10.10.10.2 van megadva
szervernevnek (tehat mindket gepen sajat magat mountolom).

Amit irok az egyik gepen a /samba konyvtarba, az szepen
megjelenik a masik gep /samba konyvtaraban (es termeszetesen a
/mnt alatt is ugyanazt lehet latni).

A ctdb konfigja a /etc/default konyvtarban (mindket gepen
azonos):
CTDB_RECOVERY_LOCK="/samba/ctdb/ctdb"
CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_SAMBA_SKIP_SHARE_CHECK=no
CTDB_SAMBA_CHECK_PORTS="445"
CTDB_MANAGES_WINBIND=no
CTDB_MANAGES_VSFTPD=no
CTDB_MANAGES_ISCSI=no
CTDB_MANAGES_NFS=no
CTDB_MANAGES_HTTPD=no
CTDB_INIT_STYLE=debian
ulimit -n 10000
CTDB_NODES=/etc/ctdb/nodes
CTDB_NOTIFY_SCRIPT=/etc/ctdb/notify.sh
CTDB_DBDIR=/var/lib/ctdb
CTDB_DBDIR_PERSISTENT=/var/lib/ctdb/persistent
CTDB_EVENT_SCRIPT_DIR=/etc/ctdb/events.d
CTDB_SOCKET=/tmp/ctdb.socket
CTDB_TRANSPORT="tcp"
CTDB_START_AS_DISABLED="no"
CTDB_CAPABILITY_RECMASTER=yes
CTDB_CAPABILITY_LMASTER=yes
CTDB_LOGFILE=/var/log/ctdb/log.ctdb
CTDB_DEBUGLEVEL=ERR
CTDB_SUPPRESS_COREFILE=no
CTDB_SYSLOG=no
CTDB_RUN_TIMEOUT_MONITOR=no
CTDB_MAX_PERSISTENT_CHECK_ERRORS=0

A /samba konyvtarban letrehoztam egy ctdb konyvtarat, es az abban
levo fajlon keresztul "beszelget" egymassal a ket gepen futo
ctdb. A publikus interfesz (az eth0) a 192.168.100.0/24-es
tartomanybol valo. Mindketto szepen inditja a sambat, ha az
egyiket disable allapotba teszem, akkor az IP cime "atvandorol" a
masik gepre, ha visszakapcsolom (enable), akkor visszakapja a
cimet.

A samba konfigja a kovetkezo (mindket gepen azonos):
[global]
workgroup = MUNKACSOPORT
netbios aliases = samba
server string = %h server
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
log level = 3
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
max xmit = 131072
deadtime = 15
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=131072 SO_RCVBUF=131072
use mmap = No
ctdbd socket = /tmp/ctdb.socket
cluster addresses = 192.168.100.144, 192.168.100.145
clustering = Yes
load printers = No
dns proxy = No
panic action = /usr/share/samba/panic-action %d
idmap backend = tdb2
fileid:algorithm = fsname
groupdb:backend = tdb
aio read size = 16384
aio write size = 16384
aio write behind = true
ea support = Yes
block size = 131072
write cache size = 262144

[demo]
path = /samba/demo
valid users = demo001
vfs objects = fileid
browseable = yes
writeable = yes

A /samba konyvtarba letrehoztam egy demo konyvtarat, amelyet 700
jogokkal nekiadtam a demo001:root usernek. Tud is oda irni a
samban keresztul a demo001 user, ezzel nincs problema.

A gepek dns-szerveren letrehoztam mindket gep 192.168.100-as IP
cimere egy-egy A rekordot samba nevvel. Ha pingelem a samba
nevet, akkor felvaltva latom a ket gep IP cimet, szoval mukodni
latszik a round-robin is.

Es a lenyeg, hogy mit szeretnek. Azt akartam megvalositani, ami
ebben a videoban latszik:
http://www.samba.org/~tridge/ctdb_movies/node_disable.html

Roviden a lenyeg: egy windowsos geprol "net use" segitsegevel
mappelem a demo megosztast, es xcopy-val elkezdem masolni a
megosztasban levo konyvtarat (amelyben 0 meretu fajlok vannak,
amelyeket for es touch segitsegevel hoztam letre, pontosan 1000
darab fajl van a DATA1 konyvtarban, alkonyvtar nincs).

Ellenorzom, hogy melyik gephez kapcsolodott a Windows (ctdb
status, illetve smbstatus -npd0), majd elinditom a masolast
(pontosan ugyanazt az xcopy parancsot adom ki, amely a videoban
lathato). A masolas elindulasa utan leallitom azon a gepen a
ctdb-t (ctdb disable -n X), amelyhez kapcsolodott a Windows. Egy
darabig megy tovabb a masolas, de meg nem fordult elo, hogy
mindent le tudott volna masolni... A videoban nem latszik, de
feltetelezem, hogy az tortenne :) Nalam viszont megszakad, holott
latszik (az smbstatus -npd0 kimeneteben), hogy "atment" a
kapcsolat a masik szerverre.

Van-e valakinek otlete, hogy mi lehet a gond?

--
Udvozlettel
Zsiga
_______________________________________________
linux++ mailing list
lin...@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux++

Kosa Attila

unread,
Oct 21, 2011, 6:56:27 AM10/21/11
to

On Wed, Aug 24, 2011 at 03:03:38PM +0200, Kosa Attila wrote:
>
> Es a lenyeg, hogy mit szeretnek. Azt akartam megvalositani, ami
> ebben a videoban latszik:
> http://www.samba.org/~tridge/ctdb_movies/node_disable.html
>
> Roviden a lenyeg: egy windowsos geprol "net use" segitsegevel
> mappelem a demo megosztast, es xcopy-val elkezdem masolni a
> megosztasban levo konyvtarat (amelyben 0 meretu fajlok vannak,
> amelyeket for es touch segitsegevel hoztam letre, pontosan 1000
> darab fajl van a DATA1 konyvtarban, alkonyvtar nincs).
>
> Ellenorzom, hogy melyik gephez kapcsolodott a Windows (ctdb
> status, illetve smbstatus -npd0), majd elinditom a masolast
> (pontosan ugyanazt az xcopy parancsot adom ki, amely a videoban
> lathato). A masolas elindulasa utan leallitom azon a gepen a
> ctdb-t (ctdb disable -n X), amelyhez kapcsolodott a Windows. Egy
> darabig megy tovabb a masolas, de meg nem fordult elo, hogy
> mindent le tudott volna masolni... A videoban nem latszik, de
> feltetelezem, hogy az tortenne :) Nalam viszont megszakad, holott
> latszik (az smbstatus -npd0 kimeneteben), hogy "atment" a
> kapcsolat a masik szerverre.

Talaltam egy leirast, amely szerint ezek a lepesek zajlanak le,
amikor az egyik node kiesik:
http://www.sourcetalk.de/2010/downloads/presentations/obnox-sourcetalk-2010-presentation.pdf
140. oldal

speed up client reconnects with tickle ACKs:
- client does not yet know the IP has moved
- new node does not have a valid TCP connection to client
- new node sends illegal TCP ACK packet to the client (seqnum 0)
- client sends back correct ACK packet to the new node
- new node sends back a RST packet to the client
- client re-establishes connection to the new node

Az RST utan lehetseges lenne, hogy a windowsos gep olvasasa
es/vagy irasa ne szakadjon meg? A sambak logjaban nem lattam
olyat, hogy irasi problema lett volna, ezert arra gondolok, hogy
nem tud tobb fajlt olvasni. A Windows nem ad hibat, hanem kozli,
hogy hany darab fajlt tudott lemasolni - mintha reszerol teljesen
rendben lett volna a masolas.
0 new messages