Xây dựng hệ thống NAS Cluster sử dụng OpenFiler

OpenFiler là 1 OS có chức năng quàn lý các thiết bị lưu trữ  (Network Storage Appliances) cho các ứng dụng doanh nghiệp nhỏ hay mạng gia đình ,xây dựng hệ Thống  multimedia trong các mạng Gia dình tận dụng các PC có cấu hình vừa phải  để làm thiết bị NAS… giống như  Freenas.

Cách cài đặt Openfiler có thể xem tại đây

Vài thông  tin trong lab này:

Lab này có 2 server OpenFiler ,mỗi server có 2 card mạng ( 1 card để Cluster )

Mỗi server gắn thêm 1 HDD là sdb và chia ra sdb1  400MB làm Metadata và sdb2  chứa dữ liệu .

Sv1.vn

eth0: 192.168.11.10
eth1 : 172.16.0.10

Sv2.vn

eth0 :  192.168.11.20
eth1 : 172.16.0.20

và Ip 192.168.11.50  là 1 Virtual IP  để sử dụng trong Cluster  (ko gán cho card nào trên 2 máy )

Cấu hình trong file hosts mỗi server có thể ping được tên của nhau :

[root@sv1 ~]# cat /etc/hosts
127.0.0.1               localhost.localdomain localhost localhost
::1             localhost6.localdomain6 localhost6

192.168.11.10    sv1.vn
192.168.11.20    sv2.vn

Cấu hình DRBD :

Thực hiện  bên 2 server

# vim  /etc/drbd.conf

include “drbd.d/global_common.conf”;
resource meta {
on sv1.vn {
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.0.10:7788;
meta-disk internal;
}
on sv2.vn {
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.0.20:7788;
meta-disk internal;
}
}
resource data {
on sv1.vn {
device /dev/drbd1;
disk /dev/sdb2;
address 172.16.0.10:7789;
meta-disk internal;
}
on sv2.vn {
device /dev/drbd1;
disk /dev/sdb2;
address 172.16.0.20:7789;
meta-disk internal;
}
}

Tạo Meta data

(Thực hiện bên 2 server)

# drbdadm create-md meta
# drbdadm create-md data

Lưu ý :

Phải làm trên các HDD trống ko có bất kì data nào trong đó.

Start  drbd

(Thực hiện bên 2 server)

# service drbd start

Lấy sv1.vn làm primary node:

(Chỉ làm bên sv1.vn)

# drbdsetup /dev/drbd0 primary –o
# drbdsetup /dev/drbd1 primary –o

Xem thông tin  số % đã đồng bộ bằng lệnh sau :

# service drbd status

Đợi cho 2 server  đồng bộ xong rồi mới thực hiện các bước kế tiếp .

Chuần bị các cấu hình cho Partition

Bước sau thực hiện bên Sv1.vn

# mkfs.ext3 /dev/drbd0
# service openfiler stop
# mkdir /meta
# mount /dev/drbd0 /meta
# mv /opt/openfiler/ /opt/openfiler.local
# mkdir /meta/opt
# cp -a /opt/openfiler.local /meta/opt/openfiler
# ln -s /meta/opt/openfiler /opt/openfiler
# rm /meta/opt/openfiler/sbin/openfiler
# ln -s /usr/sbin/httpd /meta/opt/openfiler/sbin/openfiler
# rm /meta/opt/openfiler/etc/rsync.xml
# ln -s /opt/openfiler.local/etc/rsync.xml /meta/opt/openfiler/etc/
# mkdir -p /meta/etc/httpd/conf.d

Duy chuyển các file cấu hình của các dịch vụ : Samba/NFS/ISCSI/PROFTPD Vào Meta Partition .

Bước sau thực hiện bên Sv1.vn

# service nfslock stop
# umount -a -t rpc-pipefs
# mkdir /meta/etc
# mv /etc/samba/ /meta/etc/
# ln -s /meta/etc/samba/ /etc/samba
# mkdir -p /meta/var/spool
# mv /var/spool/samba/ /meta/var/spool/
# ln -s /meta/var/spool/samba/ /var/spool/samba
# mkdir -p /meta/var/lib
# mv /var/lib/nfs/ /meta/var/lib/
# ln -s /meta/var/lib/nfs/ /var/lib/nfs
# mv /etc/exports /meta/etc/
# ln -s /meta/etc/exports /etc/exports
# mv /etc/ietd.conf /meta/etc/
# ln -s /meta/etc/ietd.conf /etc/ietd.conf
# mv /etc/initiators.allow /meta/etc/
# ln -s /meta/etc/initiators.allow /etc/initiators.allow
# mv /etc/initiators.deny /meta/etc/
# ln -s /meta/etc/initiators.deny /etc/initiators.deny
# mv /etc/proftpd /meta/etc/
# ln -s /meta/etc/proftpd/ /etc/proftpd

Cấu hình httpd Modules cho Openfiler

# rm /opt/openfiler/etc/httpd/modules
# ln -s /usr/lib64/httpd/modules /opt/openfiler/etc/httpd/modules

Start openfiler

# service openfiler start

Cấu hình Openfiler trên sv2.vn

# service openfiler stop
# mkdir /meta
# mv /opt/openfiler/ /opt/openfiler.local
# ln -s /meta/opt/openfiler /opt/openfiler

Duy chuyển các file cấu hình của các dịch vụ : Samba/NFS/ISCSI/PROFTPD Vào Meta Partition .

# service nfslock stop
# umount -a -t rpc-pipefs
# rm -rf /etc/samba/
# ln -s /meta/etc/samba/ /etc/samba
# rm -rf /var/spool/samba/
# ln -s /meta/var/spool/samba/ /var/spool/samba
# rm -rf /var/lib/nfs/
# ln -s /meta/var/lib/nfs/ /var/lib/nfs
# rm -rf /etc/exports
# ln -s /meta/etc/exports /etc/exports
# rm /etc/ietd.conf
# ln -s /meta/etc/ietd.conf /etc/ietd.conf
# rm /etc/initiators.allow
# ln -s /meta/etc/initiators.allow /etc/initiators.allow
# rm /etc/initiators.deny
# ln -s /meta/etc/initiators.deny /etc/initiators.deny
# rm -rf /etc/proftpd
# ln -s /meta/etc/proftpd/ /etc/proftpd

Chuẩn bị Data Partition trên 2 server

Thay đổi lvm filter trong file   /etc/lvm/lvm.conf

Thay dòng
filter = [ “a/.*/” ]
thành
filter = [ “a|drbd[0-9]|”, “r|.*|” ]

Tạo các LVM volume

(thực hiện trên sv1.vn)

# pvcreate /dev/drbd1
# vgcreate data /dev/drbd1
# lvcreate -L 400M -n filer data

Start Corosync  và chuần bị các file cấu hình cần thiết

Tạo Corosync authkey

(thực hiện trên sv1.vn sao đó copy qua sv2.vn) và chạy trực tiếp trên máy vật lý (ko sữ dụng qua SSH được)

# corosync-keygen


Copy file  /etc/corosync/authkey  qua sv2.vn

[root@sv1 ~]# scp /etc/corosync/authkey    root@sv2.vn:/etc/corosync/authkey

Phân quyền cho file /etc/corosync/authkey 

# chmod 400 /etc/corosync/authkey

Tạo 1 file  /etc/corosync/service.d/pcmk  trên 2 server

Với nội dung sau :

service {
# Load the Pacemaker Cluster Resource Manager
name: pacemaker
ver:  0
}

Tạo và cấu hình file corosync.conf   bên 2 server

# vi /etc/corosync/corosync.conf

compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.16.0.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}

Disable các service đề Corosync đảm nhiệm start các dịch vụ này trên 2 server

# chkconfig –level 2345 openfiler off
# chkconfig –level 2345 nfslock off
# chkconfig –level 2345 corosync on

Restart lại 2 server và kiểm tra lại xewm corosync hoạt  dộng chưa .

#  ps auxf

# crm_mon –one-shot -V

Cấu hình Corosync

Trước khi thực hiện ta monitor tình trạng Cluster trên Sv2.vn

#  crm_mon

Từng bước cấu hình Corosync

(thực hiện trên sv1.vn)

[root@sv1 ~]# crm configure

crm(live)configure# property stonith-enabled=”false”
crm(live)configure# property no-quorum-policy=”ignore
ERROR: No closing quotation
crm(live)configure# rsc_defaults $id=”rsc-options” \
> resource-stickiness=”100″
crm(live)configure# primitive ClusterIP ocf:heartbeat:IPaddr2 \
> params ip=”192.168.11.50″ cidr_netmask=”32″ \
> op monitor interval=”30s”
crm(live)configure# primitive MetaFS ocf:heartbeat:Filesystem \
> params device=”/dev/drbd0″ directory=”/meta” fstype=”ext3″
WARNING: MetaFS: default timeout 20s for start is smaller than the advised 60
WARNING: MetaFS: default timeout 20s for stop is smaller than the advised 60
crm(live)configure# primitive lvmdata ocf:heartbeat:LVM \
> params volgrpname=”data”
WARNING: lvmdata: default timeout 20s for start is smaller than the advised 30
WARNING: lvmdata: default timeout 20s for stop is smaller than the advised 30
crm(live)configure# primitive drbd_meta ocf:linbit:drbd \
> params drbd_resource=”meta” \
> op monitor interval=”15s”
WARNING: drbd_meta: default timeout 20s for start is smaller than the advised 240
WARNING: drbd_meta: default timeout 20s for stop is smaller than the advised 100
crm(live)configure# primitive drbd_data ocf:linbit:drbd \
> params drbd_resource=”data” \
> op monitor interval=”15s”
WARNING: drbd_data: default timeout 20s for start is smaller than the advised 240
WARNING: drbd_data: default timeout 20s for stop is smaller than the advised 100
crm(live)configure# primitive openfiler lsb:openfiler
crm(live)configure# primitive iscsi lsb:iscsi-target
crm(live)configure# primitive samba lsb:smb
crm(live)configure# primitive nfs lsb:nfs
crm(live)configure# primitive nfslock lsb:nfslock
crm(live)configure# group g_drbd drbd_meta drbd_data
crm(live)configure# group g_services MetaFS lvmdata openfiler ClusterIP iscsi samba nfs nfslock
crm(live)configure# ms ms_g_drbd g_drbd \
> meta master-max=”1″ master-node-max=”1″ \
> clone-max=”2″ clone-node-max=”1″ \
> notify=”true”
crm(live)configure# colocation c_g_services_on_g_drbd inf: g_services ms_g_drbd:Master
crm(live)configure# order o_g_servicesafter_g_drbd inf: ms_g_drbd:promote g_services:start
crm(live)configure# commit

Reboot lại 2 server

Và Sv1.vn lúc này sẽ có IP ảo là 192.168.11.50  (ip ảo khai báo trong các lệnh cấu hình trên ) ,nhưng khi gõ ifconfig Thì ko xuất hiện Ip này nhưng có thể ping thấy nó  .

Xem quá trình xử lý

Bên Sv1.vn

# crm_mon



Lưu ý :

Nếu bị lỗi trong lúc cấu hình các lệnh dưới thì chạy lệnh sau rồi config lại từ đầu

root@sv1# crm

crm(live)resource cleanup MetaFS

Kiểm tra –Xem lại các cấu hình :

# crm configure show

Shut down thử sv1.vn thì Sv2.vn lên làm Master và sv1.vn khi reboot lại sẽ làm Slave ,khi sv2.vn chết thì sv1.vn lại lên làm Master lại .

 Bây giờ tạo các volume và truy cập thử

Dùng trình duyệt truy cập vào Openfiler  của SV1.vn

https://ip:446  với user và password mặc định là : openfiler/password

Do đã config Cluster với 1 Ip ảo là 192.168.11.50  nên ta truy cập ip này để cấu hình Openfiler
https://192.168.11.50:446

Thiết lập các thông số mạng


Tạo các Volume


Start dịch vụ  iSCSI Target



Tạo  iSCSI Target

Các thông số để mặc định

Map Lun

Cấu hình cho phép lớp mạng được phép truy cập

Bây giờ truy cập thử  từ máy win7



Lúc này win7 nhân các ổ đĩa đó  như 1 ổ cứng mới trên hệ thống


Với Xp thì vào link sau download Tools phù hợp với hệ thống đang sử dụng

http://etherboot.org/wiki/sanboot/winnt_iscsi
http://etherboot.org/wiki/sanboot/winnt_sanbootconf

Theo kenhgiaiphap.vn

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s