Như chúng ta biết sẽ như thế nào nếu hệ thống File server trong Cty bị sụp đổ hay trục trặc do chỉ có 1 server duy nhất làm File server, Công việc truy xuất dữ liệu của các nhân viên sẽ bị ảnh hưởng và gián đoạn ...
Vì thế chúng ta phải xây dựng 1 hệ thống File server sao cho khi server đó bị lỗi thì công việc truy xuất dữ liệu vẫn được diễn ra bình thường .
Giới thiệu đôi chút về GlusterFS:
GlusterFS là một open source .
GlusterFS là tập hợp file hệ thống có thể được nhân rộng tới vài peta-byte và có thể xử lý hàng ngàn Client.
GlusterFS có thể linh hoạt kết hợp với các thiết bị lưu trữ vật lý, ảo, và tài nguyên điện toán đám mây để cung cấp 1 hệ thống lưu trữ có tính sẵn sàng cao và khả năng performant cao .
Chương trình có thể lưu trữ dữ liệu trên các mô hình, thiết bị khác nhau qua giao thức Infiniband RDMA hoặc TCP/IP được kết nối vào 1 hệ thống lớn song song với các tập tin mạng. Những thiết bị lưu trữ này phải tương thích tốt với hệ điều hành
server x86_64 như SATA-II RAID và Infiniband HBA.
Chuẩn bị và xây dựng hệ thống .
Bài lab này sử dụng 3 máy Centos5.6_X64 , bạn có thể dùng bao nhiêu server tùy
hệ thống của bạn .
Nội dung file /etc/hosts cả 3 máy này như sau :
sv1.kenhgiaiphap.vn: IP address 192.168.11.100 (server 1)
sv2.kenhgiaiphap.vn: IP address 192.168.11.200 (server 2)
client.kenhgiaiphap.vn: IP address 192.168.11.250 (client)
Hoặc bạn có thể phân giải 3 máy này bằng DNS .
Hệ thống lưu trữ trong lab này tôi sử dụng LVM trên 2 server để lưu trữ Data và dung lượng 2 ổ đĩa này bằng nhau .
Kham khảo LVM tại
đây .
Lưu ý : nên đặt tên các Volume trên 2 server giống nhau và dung lượng như nhau .
Và mount volume này vào
/mnt/lvm trên cả hai server .
Install các Package cần thiết để biên dịch GlusterFS từ Source .
(Các bước này làm trên 3 máy)
# yum –y update
# yum groupinstall 'Development Tools'
# yum groupinstall 'Development Libraries'
# yum install libibverbs-devel fuse-devel
# wget
http://download.fedora.redhat.com/pu...el5.x86_64.rpm
# rpm –ihv python-ctypes-1.0.2-2.el5.x86_64.rpm
Download Source GlusterFS và Biên dịch .
(Các bước này làm trên 3 máy)
# cd /tmp
# wget
http://download.gluster.com/pub/glus...s-3.2.3.tar.gz
# tar –xzvf glusterfs-3.2.3.tar.gz
# cd glusterfs-3.2.3
# ./configure
# make
# make install
# ldconfig
Kiểm tra Phiên bản GlusterFS
# glusterfs --version
Tạo Replicate Volume trên server:
Volume này sẽ là nơi sẽ lưu trữ data trên 2 server và máy Client sẽ móc vào Volume này đề sử dụng .
Trước tiên ta phải Adding Servers to Trusted Storage Pool.
Bên máy Server 1 :
# gluster peer probe sv2.kenhgiaiphap.vn
Bên máy Server 2 :
# gluster peer probe sv1.kenhgiaiphap.vn
Kiểm tra lại danh sách các server đã Trust .
Bên máy Server 1 :
# gluster peer status
Bên máy Server 2 :
# gluster peer status
Nếu hệ thống có nhiều server thì ta add thêm các server đó vào .
Tạo Relicate Volume :
Bên máy Server 1 hoặc 2 :
bước tạo volume này chỉ cần thực hiện trên 1 trong 2 server thì server còn lại sẽ tự có .
# gluster volume create volumelvm replica 2 transport tcp sv1.kenhgiaiphap.vn:/mnt/lvm (có_khoảng_cách_chỗ này nha !) sv2.kenhgiaiphap.vn:/mnt/lvm
Gán quyền cho các ip hay lớp mạng được phép truy cập .
# gluster volume set volumelvm auth.allow 192.168.11.*
Ta có thể sử dụng Wildcards như 192.168.11.* hoặc gán nhiều Ip ,các Ip này cách nhau bằng dấu phẩy (,)
vidu : 192.168.11.250,192.168.11.254
Start volume
# gluster volume start volumelvm
Kiểm tra thông tin về volume và xem nó đã start chưa .
Server 1
# gluster volume info
Server 2
# gluster volume info
Mount volumelvm này vào /mnt/ok
( Làm trên 2 máy server )
# mkdir /mnt/ok
# mount -t glusterfs sv1.kenhgiaiphap.vn:/volumelvm /mnt/ok
Hoặc
# mount -t glusterfs sv2.kenhgiaiphap.vn:/volumelvm /mnt/ok
Kiểm tra xem đã mount thành công chưa .
Server1
Server 2
Sửa file
/etc/fstab để auto mount volumelvm này khi boot .
(làm trên 2 server )
# vim /etc/fstab
Cho GlusterFS start lúc boot .
(làm bên 3 máy)
# chkconfig glusterd on
# /etc/init.d/glusterd restart
Thiết lập GlusterFS bên máy Client .
Cài đặt các gói để biên dịch và Install GlusterFS như 2 máy server .
Mount volumelvm từ server về sử dụng .
# mkdir /mnt/ok
# mount -t glusterfs sv1.kenhgiaiphap.vn:/ volumelvm /mnt/ok
Sửa file
/etc/fstab để tự động mount lúc boot .
# sv1.kenhgiaiphap.vn:/volumelvm /mnt/ok glusterfs defaults,_netdev 0 0
Lưu ý : Nếu ko có thấy gì thì khi mount thì Fix bằng cách sau :
# yum install fuse
Và reboot lại máy
# modprobe fuse
Sau đó chạy lại lệnh mount trên thì sẽ ok !
Tạo và ghi dữ liệu vào volume vừa mount
/mnt/ok và xem trên server 1 và server 2 sẽ có dữ liệu mà máy Client tạo ra ko .
Bên máy Client
Bên máy Server 1
Bên máy Server 2
Như vậy là dữ liệu tự động đồng bộ giữa 2 máy server .
Thử shutdown server1 và chỉ còn server2 chạy nhưng máy Client có thể tạo và ghi file vào được .
Khi server1 khởi động lại thì nó sẽ đồng bộ dữ liệu từ server 2 mà Client mới ghi thêm vào .
Như vậy là ta đã hoàn tất
xây dựng hệ thống File server có độ sẵn sàng cao trong linux .
GlusterFS có khả năng tùy biến mềm dẻo và linh hoạt , do đó tùy theo nhu cầu của từng hệ thống mà chúng ta xây dựng , cấu hình và phát triển thêm cho phù hợp với nhu cầu của mình .
Theo Kenhgiaiphap