Ở bài trước ta đã tìm hiểu một vài khái niệm về Glusterfs, trong bài thứ 2 này ta sẽ xem cách thức cài đặt và cấu hình một hệ thống replicate storage để đảm bảo dữ liệu luôn sẵn sàng. Việc đồng bộ giữa 2 storage server sẽ được glusterfs thực hiện một cách tự động với cấu hình vô cùng đơn giản.
Bước 1: Chuẩn bị máy chủ
Ta cần chuẩn bị 02 server cài đặt glusterfs để làm storage server và 01 server để kết nối vào và đặt tên như sau:
. server1.1hosting.com.vn: IP address 192.168.0.100 (server)
. server2.1hosting.com.vn: IP address 192.168.0.101 (server)
. client1.1hosting.com.vn: IP address 192.168.0.102 (client)
Trên tất cả các máy server cũng như client ta đều khai báo sao cho các máy có thể nhìn thấy nhau như sau:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.0.100 server1.example.com server1 192.168.0.101 server2.example.com server2 192.168.0.102 client1.example.com client1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Bước 2: Chuẩn bị Repository
Các lệnh như sau:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* rpm --import https://fedoraproject.org/static/0608B895.txt cd /tmp wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm rpm -ivh epel-release-6-7.noarch.rpm yum install yum-priorities
Edit file /etc/yum.repos.d/epel.repo và thêm vào dòng “priority=10”
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Bước 3: Cài đặt GlusterFS Servers
Các lệnh cài đặt như sau:
yum install glusterfs-server chkconfig --levels 235 glusterd on /etc/init.d/glusterd start
Sau đó kiểm tra phiên bản
glusterfsd --version
Kết quả như sau:
[root@server1 ~]# glusterfsd --version glusterfs 3.2.7 built on Jun 11 2012 13:22:28 Repository revision: git://git.gluster.com/glusterfs.git Copyright (c) 2006-2011 Gluster Inc. <http://www.gluster.com> GlusterFS comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GlusterFS under the terms of the GNU General Public License. [root@server1 ~]#
Glusterfs sử dụng các TCP port sau: 111, 24007, 24008, 24009 vì thế các port này cần mở trên cả server1.1hosting.com.vn và server2.1hosting.com.vn.
Trên server1.1hosting.com.vn ta chạy lệnh sau:
gluster peer probe server2.1hosting.com.vn
Kiểm tra lại
[root@server1 ~]# gluster peer probe server2.1hosting.com.vn Probe successful
Xem trạng thái của pool như sau:
gluster peer status
[root@server1 ~]# gluster peer status Number of Peers: 1 Hostname: server2.example.com Uuid: 7cd93007-fccb-4fcb-8063-133e6ba81cd9 State: Peer in Cluster (Connected) [root@server1 ~]#
Tiếp theo ta sẽ tạo một volume tên là Host với tính năng replicate trên 2 server storage, trong đó có brick /data
[root@server1 ~]# gluster volume create Host replica 2 transport tcp server1.1hosting.com.vn:/data server2.example.com:/data Creation of volume testvol has been successful. Please start the volume to access data. [root@server1 ~]#
Khởi động Volume
gluster volume start Host
Nếu OK sẽ được như sau:
[root@server1 ~]# gluster volume start testvol Starting volume testvol has been unsuccessful [root@server1 ~]#
Kiểm tra lại trên cả 2 server như sau:
[root@server1 ~]# netstat -tap | grep glusterfsd tcp 0 0 *:24009 *:* LISTEN 1365/glusterfsd tcp 0 0 localhost:1023 localhost:24007 ESTABLISHED 1365/glusterfsd tcp 0 0 server1.example.com:24009 server1.example.com:1023 ESTABLISHED 1365/glusterfsd [root@server1 ~]# [root@server2 ~]# netstat -tap | grep glusterfsd tcp 0 0 *:24010 *:* LISTEN 1458/glusterfsd tcp 0 0 localhost.localdom:1021 localhost.localdo:24007 ESTABLISHED 1458/glusterfsd [root@server2 ~]#
Quay trở lại server1.1hosting.com.vn, check trạng thái của volume hiện tại
[root@server1 ~]# gluster volume info Volume Name: Host Type: Replicate Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: server1.1hosting.com.vn:/data Brick2: server2.1hosting.com.vn:/data [root@server1 ~]#
Mặc định, tất cả các máy đều có thể kết nối đến Volume này. Nếu muốn chỉ duy nhất client1.1hosting.com.vn (= 192.168.0.102) kết nối được, chạy lệnh sau:
gluster volume set Host auth.allow 192.168.0.102
Xem lại trạng thái volume
[root@server1 ~]# gluster volume info Volume Name: Host Type: Replicate Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: server1.1hosting.com.vn:/data Brick2: server2.1hosting.com.vn:/data Options Reconfigured: auth.allow: 192.168.0.102 [root@server1 ~]#
Bước 4: Cài đặt GlusterFS Client
Trên client1.1hosting.com.vn, ta cài đặt GlusterFS client như sau:
yum install glusterfs-client
Sau đó tạo thư mục:
mkdir /mnt/glusterfs
Mount thư mục này vào GlusterFS filesystem:
mount.glusterfs server1.1hosting.com.vn:/Host /mnt/glusterfs
(ở đây sử dụng server1.1hosting.com.vn hay server2.1hosting.com.vn đều được )
[root@client1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_client1-LogVol00 9.7G 1.7G 7.5G 19% / tmpfs 499M 0 499M 0% /dev/shm /dev/sda1 504M 39M 440M 9% /boot server1.1hosting.com.vn:/Host 29G 1.1G 27G 4% /mnt/glusterfs [root@client1 ~]#
Add vào file /etc/fstab để Centos tự động mount mỗi lần khởi động lại
vi /etc/fstab
[...] server1.1hosting.com.vn:/Host /mnt/glusterfs glusterfs defaults,_netdev 0 0 |
Bước 5: Kiểm tra
Trước tiên ta tạo các files test trên client1.1hosting.com.vn
touch /mnt/glusterfs/test1 touch /mnt/glusterfs/test2
Kiểm tra thư mục /data trên server1.1hosting.com.vn và server2.1hosting.com.vn
[root@server1 ~]# ls -l /data total 8 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test1 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test2 [root@server1 ~]#
OK, vậy là các file đã có ở 2 server. Giờ ta sẽ tắt server1.1hosting.com.vn và xóa 1 vài file trên máy client
shutdown -h now
Trên client1.1hosting.com.vn
touch /mnt/glusterfs/test3 touch /mnt/glusterfs/test4 rm -f /mnt/glusterfs/test2
Lúc này ta kiểm tra thư mục /data trên server2.1hosting.com.vn
[root@server2 ~]# ls -l /data total 8 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test1 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test3 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test4 [root@server2 ~]#
OK, server2 đã đồng bộ. Bật lại server1.1hosting.com.vn và kiểm tra
[root@server1 ~]# ls -l /data total 8 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test1 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test2 [root@server1 ~]#
Lúc này, server1.1hosting.com.vn chưa nhận biết được sự thay đổi đã diễn ra trong quá trình nó offline. Ta chỉ cần 1 lệnh đơn giản ở phía client1.1hosting.com.vn để đồng bộ tiến trình này:
[root@client1 ~]# ls -l /mnt/glusterfs/ total 8 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test1 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test3 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test4 [root@client1 ~]#
Check lại thư mục /data trên server1.1hosting.com.vn
[root@server1 ~]# ls -l /data total 4 -rw-r--r-- 1 root root 0 2012-12-17 11:17 test1 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test3 -rw-r--r-- 1 root root 0 2012-12-17 11:38 test4 [root@server1 ~]#
Vậy là mọi thứ đã xong. Giờ ta có thể yên tâm rằng dữ liệu sẽ luôn sẵn sàng ngay cả khi có những vấn đề về server vật lý. Người dùng hoàn toàn có thể thuê vps và sử dụng Glusterfs để làm nơi lưu trữ dự phòng cho các hệ thống dữ liệu của mình. Giải pháp thuê vps sẽ vô cùng tiết kiệm không chỉ về mặt chi phí sử dụng mà còn tiết kiệm về chi phí giải pháp do glusterfs là miễn phí cũng như CentOS.
Nếu còn băn khoăn về quá trình triển khai, hay gọi Hotline 0915 54 99 22 để đội ngũ kỹ sư giàu kinh nghiệm của 1Hosting trợ giúp quý khách. Chúng tôi cam kết những dịch vụ online tốt nhất, giá trị nhất, hoàn hảo nhất đến với mọi khách hàng.
—————————————————————
MỌI THÔNG TIN CHI TIẾT VUI LÒNG LIÊN HỆ
CÔNG TY CỔ PHẦN GIẢI PHÁP DỮ LIỆU TRỰC TUYẾN ANZ
Địa chỉ: Biệt thự 11 ngõ 233 đường Xuân Thủy, quận Cầu Giấy, Hà Nội
Email: info@1hosting.com.vn
Hotline: 0915 54 99 22