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++