Hướng dẫn cài đặt, cấu hình GlusterFS – giải pháp lưu trữ toàn diện: Đồng bộ, phân tán, mở rộng và sao lưu dữ liệu

0
857
(Last Updated On: Th9 21, 2018)

1 năm trước mình đã có bài viết “thường thức” về GlusterFS. Và tới thời điểm bây giờ sau khi sử dụng vài cách thức để lưu trữ dữ liệu cũng như đồng bộ và sao lưu, mình vẫn tin dùng và tiếp sử dụng GlusterFS cho các mô hình của mình hiện tại bởi ưu điểm và tính ổn định mà GlusterFS mang lại, và thế mạnh quyết định mà mình cũng chỉ chọn GlusterFS đó là khả năng tùy biến cực kỳ uyển chuyển và linh động cũng như cấu hình cũng không hề quá phức tạp, chỉ cần tìm hiểu một chút đó là bạn đã làm chủ một hệ thống lưu trữ dành cho nhiều nền tảng của như tận dụng tài nguyên có sẵn.

Nếu bạn còn băn khoăn vì chưa hiểu GlusterFS là gì, bạn hãy tham khảo bài viết này trên trang VnGeek: https://vngeek.com/uncategorized-vi/2017/06/glusterfs-la-gi/.

Bạn nên tìm hiểu trước một chút nếu còn chưa rõ sau đó hãy tiến hành đọc tiếp những gì sau đây nhé.

Bước tiếp theo đó là mình sẽ hướng dẫn cài đặt cũng như sử dụng GlusterFS một cách chi tiết để các “amatuer” cũng có thể thực hiện được dễ dàng mà không phải gặp nhiều rắc rối.

Mình tiến hành cài đặt GlusterFS trên máy chủ Ubuntu Server 16.04. Cá nhân mình thích dùng Ubuntu vì đơn giản mình dùng nó quen mất rồi, đổi sang mấy cái hệ điều hành Linux khác mình không quen lắm.

Trong khuôn khổ bài viết này, mình đề cập tạo sao lưu tự động (sao chép dữ liệu để sao lưu dự phòng) với GlusterFS. Mô hình đó bạn có thể xem hình dưới để dễ hình dung:

Mô hình Replicated Volume với GlusterFS

Để có thể thực hiện mô hình trên chúng ta cần có 2 node (2 máy chủ hoặc VPS được cài đặt GlusterFS và thiết lập cấu hình, tất nhiên vẫn có thể dùng 1 máy chủ – khi đó trở thành Replicated Volume nội bộ, nhưng như vậy thì không đúng bản chất lắm).

Trên cả 2 server, chúng ta cùng cài đặt GlusterFS, đầu tiên là cập nhật Source qua PPA:

apt-get install software-properties-common
add-apt-repository ppa:gluster/glusterfs-4.1
apt-get update

Tiến hành cài đặt GlusterFS:

apt-get install glusterfs-server

Sau khi cài đặt xong chúng ta đã có GlusterFS trên cả 2 server.

GlusterFS trên VnGeek Server

GlusterFS trên VnGeek Server 2

Bây giờ chúng ta bật dịch vụ GlusterFS lên cả hai server:

service glusterd start

Để kiểm tra dịch vụ đã chạy chưa:

service glusterd status

Như hình dưới đây là dịch vụ đã chạy:

Các bạn chú ý tắt firewall trên cả 2 server nhé (để quá trình chúng ta thiết lập không có lỗi gì xảy ra).

Bây giờ để có thể cấu hình Glusterfs, chúng ta phải cho các server vào chung một “hồ bơi” hay gọi là Trusted Storage Pool, bởi các node phải tin tưởng nhau thì mới có thể kết nối với nhau mà làm việc được chứ phải không các bạn. Trên server 1 chúng ta tiến hành gửi tín hiệu probe đến server 2. (Ở đây server vngeek-server và  vngeek-server2).

gluster peer probe vngeek-server2

Hoặc dùng địa chủ IP của vngeek-server2 trong trườngg hợp bạn không probe được:

gluster peer probe 192.168.2.84

Bây giờ đến lượt  vngeek-server2 gửi tín hiệu Probe đến vngeek-server:

gluster peer probe 192.168.2.83

Và giờ là cả hai đã probe nhau thành công:

Chúng ta có thể kiểm tra lại xem một lần nữa cho chắc, trên vngeek-server các bạn kiểm tra bằng lệnh:

gluster peer status

Nếu thành công sẽ trông như hình bên dưới:

Kiểm tra từ vngeek-server

Kiểm tra từ vngeek-server2

Như vậy tới đây, chúng ta đã xong việc thiết lập kết nối cơ bản giữa các node, cụ thể ở đây đó là 2 server: vngeek-server và vngeek-server2. Cả 2 server này đã tham gia vào một hồ bơi lưu trữ. Bây giờ là đến bước thiết lập các brick (viên gạch) trên mỗi server. Các bạn tưởng tượng đến việc xây một ngôi nhà chúng ta cần những viên gạch. Thì một hệ thống lưu trữ cũng tương tự như vậy, các viên gạch ghép lại sẽ hợp thành một hệ thống lưu trữ mới.

Bây giờ chúng ta tiến hành tạo các brick trên mỗi server:

mkdir /brick

Như vậy thư mục /brick là nơi lưu trữ các block dữ liệu trên mỗi server. Người dùng và các ứng dụng thật chất sẽ làm việc với thư mục mà Volume GlusterFS mount vào.

Sơ đồ biểu diễn cách thức hoạt động của GlusterFS.

Bây giờ là bước quan trọng nhất, chúng ta sẽ tạo một Volume GlusterFS, có nhiều loại Volume mà bạn có thể tạo như Volume phân tán, Volume nhân bản, Volume phân tán theo block Volume nhân bản theo Block, và tất nhiên bạn có thể tham khảo các bài viết trên VnGeek để có thể hiểu rõ hơn hoặc tài liệu của GlusterFS tại đây. Và trong bài viết này, mình cấu hình Volume Replicated (nhân bản), cái này mục đích để sao lưu và dự phòng dữ liệu. Và với các brick ở trên đã cấu hình (tại vngeek-server và vngeek-server2), mình tiến hành tạo volume có tên là glusterfs, trên vngeek-server các bạn gõ lệnh:

gluster volume create glusterfs replica 2 192.168.2.83:/brick 192.168.2.84:/brick

Nếu có lỗi như thế này:

volume create: glusterfs: failed: The brick 192.168.2.83:/brick is being created in the root partition. It is recommended that you don't use the system's root partition for storage backend. Or use 'force' at the end of the command if you want to override this behavior.

Các bạn đừng lo lắng bởi vì mình tạo các viên gạch là /brick nằm trong phân vùng root. Bởi vì là bài hướng dẫn nên mình mình họa đơn giản cho bạn dễ hiểu, trên các mô hình thực tế sẽ tạo các brick trên thư mục các ổ đĩa gắn bổ sung, chẳng hạn như /dev/sda1 với mount point /disk1, sẽ không có thông báo lỗi này.

Chúng ta vẫn tiếp tục tạo volume và bỏ qua các lỗi:

gluster volume create glusterfs replica 2 192.168.2.83:/brick 192.168.2.84:/brick force

Có thông báo thế này là thành công:

Như vậy chúng ta đã tạo xong volume với tên: glusterfs

Để Volume có thể bắt đầu hoạt động, chúng ta dùng lệnh:

gluster volume start glusterfs

Để kiểm tra, tiếp tục dùng lệnh:

gluster volume info

Thông tin có thể tương tự như hình dưới:

Thông tin của Volume glusterfs, như loại Volume, ID, trạng thái, snapshot, số lượng brick tạo nên, giao thức tryền tải dữ liệu,…

Có được Volume rồi, việc chúng ta đó là mount vào một thư mục nào đó để sử dụng thôi. Bạn chỉ cần cài đặt glusterfs lên một máy khác là có thể mount volume này về sử dụng rồi.

Trên server vngeek-server mình tạo thư mục /vngeek và mount volume glusterfs vào.

mkdir /vngeek
mount -t glusterfs 192.168.2.83:/glusterfs /vngeek

Bây giờ chúng ta tạo thử một file nào đó trong thư mục /vngeek.

cd /vngeek
cat > vngeek.txt
Hello, i am from VnGeek!
:)

Sau đó nhấn Ctrl + D để lưu tập tin.

ls -lh

Bây giờ kiểm tra trên thư mục /brick trên mỗi server xem sao:

cd /vngeek
ls -lh
cat vngeek.txt
Như vậy là hệ thống GlusterFS của chúng ta đã hoạt động!

Đến đây là đã cấu hình xong và hoạt động tốt. Các bạn có thể cấu hình các dạng Volume khác tùy vào nhu cầu của các bạn.

Chúc các bạn thành công!

Bình luận