Quản Trị  Hệ Điều Hành Linux - Unix
 
Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64
11:21 | 28/10/2011

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 !

Phan Trọng Hiếu (Tổng hợp)   
 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
- Đồng bộ hóa dữ liệu giữa hai Server Ubuntu 11.10 sử dụng Unison.
- Bảo vệ thư mục web với mod_auth_mysql trên Apache2
- Tích hợp MailScanner - ClamAV - SpamAssassin - SquirrelMail vào PostfixTrên Centos 5.7
- Cài đặt rsnapshot trên CentOS
- Xây dựng hệ thống NAS Cluster sử dụng OpenFiler
- Cài đặt Nginx trên Ubuntu 11.10
- 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 máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần3)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần2)
Các tin liên quan :
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần3)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần2)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần 1)
- Xây dựng hệ thống File server có độ sẵn sàng cao (HA) sử dụng NFS,DRDB, Heartbeat trên Centos6 X86_64
- Upgrade Ubuntu 11.04 lên Ubuntu 11.10
- Ảo hóa với KVM trên máy chủ CentOS 6.0 (Phần 2)
- Ảo hóa với KVM trên máy chủ CentOS 6.0 (Phần 1)
- Cài đặt và cấu hình Samba trên centos 6 X86_64
- Pandora công cụ monitor trên linux
- Xây dựng hệ thống Backup server trên linux/Centos sử dụng Amanda
Xem tiếp
Bài nhiều người đọc cùng chuyên mục
Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
 
Cấu hình ftp server với vsftpd
 
Cài đặt Nginx trên server CentOS 6 x86_64 với PHP5 hỗ trợ qua PHP – FPM và MySQL.
 
Cài Đặt Web Server (LAMP )Trên Centos 6 X86_64
 
Cài đặt và cấu hình Server Linux CentOS hoàn chỉnh (Phần 1)
 
Quản lý đĩa trên linux dùng kỹ thuật LVM (Phần 1)
 
50 câu lệnh Linux phải nhớ
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty Cổ Phần Kênh Giải Pháp
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.