Home / Operating System / Linux / CentOS / Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64

Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64

Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64

Trước đây kenhgiaiphap.vn có giới thiệu 2 bài xây dựng hệ thống file server có độ sẵng sàng cao (HA) sử dụng GlusterFS và DRBD+Heartbeat . với 2 cách đó bạn có thể áp dụng để xây dựng được hệ thống Samba có độ sẵng sàng cao . Hôm nay tôi giới thiệu thiết lập hệ thống Active/Active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64.

Trong lab này sử dụng 2 server tương ứng với 2 node , 2 node này điều là  Active .

DRBD để replicate dữ liệu giữa 2 node .

GFS (Redhat Global file system) để cấu hình Cluster Active/Active cho 2 node .

CTDB là 1 module Cluster của Samba .

Các thông tin về các server như sau :

Trong thực tế thì mỗi server có 2 card mạng (1 dùng cho Cluster) ,trong bài này tôi chỉ dùng 1 card .

Server1.kenhgiaiphap.vn  192.168.11.20

Server2.kenhgiaiphap.vn  192.168.11.21

/dev/sdb1 : nơi lưu trữ data trên 2 node .

gateway : 192.168.11.2

Update hệ thống và các Package  cần thiết cho việc biên dịch

# yum updtae –y

#  yum  groupinstall Development Tools  –y

Disabale Firewall : selinux và iptables

Gán 1 ổ đĩa vào 2 server làm nơi chứa dữ liệu .

File hosts của 2 server như sau:

Cài DRBD cho Centos 5.7

# wget http://dl.atrpms.net/el5-`arch`/atrpms/stable/drbd-kmdl-`uname -r`-8.3.11-31.el5.x86_64.rpm

# wget  http://dl.atrpms.net/el5-x86_64/atrpms/stable/drbd-8.3.11-31.el5.x86_64.rpm

# rpm -ivh drbd-kmdl-`uname -r`-8.3.11-31.el5.`arch`.rpm   drbd-8.3.11-31.el5.`arch`.rpm

Import the public key:

rpm –import http://elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://elrepo.org/elrepo-release-5-3.el5.elrepo.noarch.rpm

# vi /etc/yum.repos.d/elrepo.repo

enabled=0

# yum –enablerepo=elrepo install  drbd83-utils kmod-drbd83 –y

(làm bên 2 server )

# modprobe  drbd

Kiểm tra ngày giờ trên 2 server phải giống nhau

# yum install ntp –y

# /etc/init.d/ntpd restart

# chkconfig  ntpd on

# service ntpd status

# date



Cài Samba

(làm bên 2 server )

# yum  install samba* –y

Cài Red Hat Cluster Suite:

# yum -y groupinstall “Cluster Storage” “Clustering”

Cấu hình DRBD

# vi /etc/drbd.conf

Xóa hết nội dung bên trong va paste các dòng sau vào:

global {
usage-count yes;
}

common {
syncer {
rate 100M;
al-extents 257;
}
}

resource r0 {                            

  protocol C;

  startup {
become-primary-on both;              ### For Primary/Primary ###
degr-wfc-timeout 60;
wfc-timeout  30;
}
disk {
on-io-error   detach;
}
net {
allow-two-primaries;                 ### For Primary/Primary ###
cram-hmac-alg sha1;
shared-secret “123456”;
after-sb-0pri discard-zero-changes;
after-sb-1pri violently-as0p;
after-sb-2pri violently-as0p;
}
on server1.kenhgiaiphap.vn {
device     /dev/drbd0;
disk       /dev/sdb1;
address    172.16.0.20:7788;
meta-disk  internal;
}

  on server2.kenhgiaiphap.vn {
device     /dev/drbd0;
disk       /dev/sdb1;
address    172.16.0.21:7788;
meta-disk  internal;
}
}



Tạo metadata r0 Trên 2 server :

#  drbdadm create-md r0

Start DRBD

# /etc/init.d/drbd start

# chkconfig –level 35 drbd on

Thiết lập 2 Node thành Primary :

# drbdsetup /dev/drbd0 primary -o

Kiểm tra DRBD có chạy chưa  .

Có 2 lệnh để  Kiểm tra :

# service drbd status

Hoặc

# cat /proc/drbd

Đợi cho nó đồng bộ  xong rồi mới làm các bước kế (có hiện % đã Sync)

Cấu hình  GFS

# vi /etc/cluster/cluster.conf

<?xml version=”1.0″ ?>
<cluster name=”cluster1″ config_version=”3″>

<cman two_node=”1″ expected_votes=”1″/>

<clusternodes>
<clusternode name=”server1.kenhgiaiphap.vn” votes=”1″ nodeid=”1″>
<fence>
<method name=”single”>
<device name=”manual” ipaddr=”192.168.11.20″/>
</method>
</fence>
</clusternode>

<clusternode name=”server2.kenhgiaiphap.vn” votes=”1″ nodeid=”2″>
<fence>
<method name=”single”>
<device name=”manual” ipaddr=”192.168.11.21″/>
</method>
</fence>
</clusternode>
</clusternodes>

<fence_daemon clean_start=”1″ post_fail_delay=”0″ post_join_delay=”3″/>

<fencedevices>
<fencedevice name=”manual” agent=”fence_manual”/>
</fencedevices>

</cluster>

start Các service sau trên 2 sever

chạy 2 dòng sau trước khi start

# modprobe -a gfs gfs2
# modprobe -a gnbd

/etc/init.d/cman start

(nếu bị lỗi thì reboot lại  2 server  rồi start sẽ ok )

/etc/init.d/clvmd start  >> chỉ start khi sử dụng LVM

/etc/init.d/gfs start

/etc/init.d/gfs2 start

chkconfig –level 35 cman on
chkconfig –level 35 clvmd on   >> khi sử dụng LVM
chkconfig –level 35 gfs on
chkconfig –level 35 gfs2 on

Kiểm tra lại

# cman_tool nodes

Bước dưới chỉ làm bên 1 server : server1.kenhgiaiphap.vn

# mkfs.gfs2 -p lock_dlm  -t cluster1:gfs  -j 2 /dev/drbd0

Tạo  mountpoint và  mount  drbd device trên 2 server  :

# mkdir /clusterdata

#  mount -t gfs2 /dev/drbd0 /clusterdata

Sửa file /etc/fstab  bên 2 server

# vi /etc/fstab

Thêm dòng sau vào :

/dev/drbd0          /clusterdata  gfs      defaults       0 0

Đến dây thì cluster đã hoat động

Test thử xem sao .

Bên server 1 tạo các dữ liệu trong thư mục  /clusterdata  thì server2 sẽ tự có và ngược lại .



Cấu hình Samba

( Làm bên 2 máy )

# vi /etc/samba/smb.conf

;[global]
clustering = yes
idmap backend = tdb2
private dir=/clusterdata/kgp
fileid:mapping = fsname
use mmap = no
nt acl support = yes
ea support = yes

[Dulieu_Dung_chung]

comment = data
path = /clusterdata/data
public = yes
writable = yes
write list = +staff


[homes]

comment = Home Directories
browseable = no
writable = yes
;       valid users = %S
;       valid users = MYDOMAIN%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

Bây giờ tạo các thư mục đã cấu hình trong file trên là : /clusterdata/kgp và  /clusterdata/data

Chỉ làm trên  server1 thì server 2 sẽ tự có 2 thư mục này .

# mkdir  /clusterdata/kgp

# mkdir   /clusterdata/data

Phân quyền cho thư muc chứa dữ lliệu ,chỉ cần làm bên 1 server thì server 2 sẽ tự có .

# chmod 777  /clusterdata/data

Start Samba bên 2 server

# /etc/init.d/smb restart

# chkconfig  smb  on

Tạo user kenhgiaiphap và add user này vào database Samba .

(làm chỉ trên  server1.kenhgiaiphap.vn)

# useradd  kenhgiaiphap

# passwd kenhgiaiphap

Add user kenhgiaiphap vào dadtabase Samba  .

#  smbpasswd  -a  kenhgiaiphap

Khi các user truy cập vào thì sẽ thấy thư mục của chính mình /home/ kenhgiaiphap  và thư mục dùng chung   /clusterdata/data như file cấu hình trên .

Cấu hình CTDB

(Làm trên 2 server )

Kham khảo giải thích ý nghĩa các file dưới tại đây

Download :

cd /usr/src
rsync -avz samba.org::ftp/unpacked/ctdb .
cd ctdb/

Biên dịch:

cd /usr/src/ctdb/
./autogen.sh
./configure
make
make install

Tạo init scripts và config links đến  /etc

cp config/ctdb.sysconfig /etc/sysconfig/ctdb
cp config/ctdb.init /etc/rc.d/init.d/ctdb
chmod +x /etc/init.d/ctdb

ln -s /usr/local/etc/ctdb/ /etc/ctdb
ln -s /usr/local/bin/ctdb /usr/bin/ctdb
ln -s /usr/local/sbin/ctdbd /usr/sbin/ctdbd

Cấu hình  /etc/sysconfig/ctdb trên 2 server

#  vi /etc/sysconfig/ctdb

9 CTDB_RECOVERY_LOCK=”/dadoscluster/ctdb/storage”
15 CTDB_PUBLIC_INTERFACE=eth0
25 CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
37 CTDB_MANAGES_SAMBA=yes
84 ulimit -n 10000
90 CTDB_NODES=/etc/ctdb/nodes
257 CTDB_LOGFILE=/var/log/log.ctdb
262 CTDB_DEBUGLEVEL=2
CTDB_PUBLIC_NETWORK=”192.168.11.0/24″
CTDB_PUBLIC_GATEWAY=”192.168.11.2″    


Lưu ý :
Các số đầu dòng là ghi chú các STT

Cấu hình  /etc/ctdb/nodes Trên 2 server:

# vi /etc/ctdb/nodes

Thêm Ip  2 máy server vào

192.168.11.20
192.168.11.21

Cấu hình  /etc/ctdb/events.d/11.Trên 2 server

# vi /etc/ctdb/events.d/11.route

#!/bin/sh

. /etc/ctdb/functions
loadconfig ctdb

cmd=”$1″
shift

case $cmd in
takeip)
# we ignore errors from this, as the route might be up already when we’re grabbing
# a 2nd IP on this interface
/sbin/ip route add $CTDB_PUBLIC_NETWORK via $CTDB_PUBLIC_GATEWAY dev $1 2> /dev/null
;;
esac

exit 0

Gán quyền thực thi cho file  /etc/ctdb/events.d/11.route

# chmod +x /etc/ctdb/events.d/11.route

Start các service sau :

/etc/init.d/ctdb start
/etc/init.d/smb start

chkconfig –level 35 ctdb on
chkconfig –level 35 smb on

Từ các máy  client  truy cập  dữ liệu  trên samba server .

Từ windows Client


Copy dữ liệu vào xem như thế nào !

Print Friendly

About dongpolice

Check Also

Xem số điện thoại đang dùng Vinaphone, Mobi, Viettel không cần gọi

Để biết số điện thoại mình đang dùng: – Ở Việt Nam có nhiều nhà …