Cách cài đặt cụm GlusterFS ba nút trên Debian 12

theanh

Administrator
Nhân viên
GlusterFS hay Gluster File System, là một hệ thống tệp phân tán miễn phí và mã nguồn mở do RedHat phát triển. GlusterFS là một hệ thống tệp có thể mở rộng được hình thành từ nhiều máy chủ thành một hệ thống tệp thực thể cho phép người dùng kết nối và gắn ổ đĩa GlusterFS.

GlusterFS là một hệ thống tệp hiện đại có thể xử lý hàng petabyte dữ liệu. Ngoài ra, nó dễ cài đặt và bảo trì, và cũng dễ mở rộng hệ thống tệp.

Trong hướng dẫn sau, tôi sẽ hướng dẫn bạn cài đặt GlusterFS trên máy chủ Debian 12. Chúng ta sẽ tạo một hệ thống lưu trữ có tính khả dụng cao và được sao chép bằng GlusterFS bằng cách sử dụng nhiều máy chủ Debian. Bạn cũng sẽ học cách gắn GlusterFS vào máy khách Debian và thiết lập tự động gắn ổ đĩa GlusterFS thông qua tệp /etc/fstab.

Điều kiện tiên quyết​

Trước khi thực hiện hướng dẫn này, hãy xác nhận rằng bạn có những điều sau:
  • Nhiều máy chủ Debian 12 - Ví dụ này sử dụng 3 máy chủ Debian để tạo Cụm GlusterFS.
  • Người dùng không phải root có quyền quản trị viên.
  • Máy khách Debian.

Phân vùng đĩa bằng Parted​

Trước khi bắt đầu, bạn sẽ tạo một phân vùng mới sẽ được sử dụng cho GlusterFS trên mỗi máy chủ. Trong ví dụ này, bạn sẽ tạo một phân vùng từ đĩa /dev/sdb bằng trình quản lý phân vùng Parted.

Cài đặt parted vào máy chủ Debian của bạn bằng lệnh apt sau.
Mã:
sudo apt install parted -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22287%22%3E%3C/svg%3E


Thực hiện lệnh parted sau để bắt đầu phân vùng đĩa /dev/sdb.
Mã:
sudo parted /dev/sdb
Sau khi thực hiện lệnh parted, bạn sẽ ở trong môi trường parted.

Chạy lệnh sau để tạo bảng phân vùng mới cho đĩa /dev/sdb thành msdos.
Mã:
mklabel msdos
Bây giờ hãy chạy lệnh bên dưới để tạo một phân vùng chính mới /dev/sdb1 với định dạng ext4 và kích thước 5 GB.
Mã:
mkpart primary ext4 1MB 5369MB
Sau khi phân vùng được tạo, hãy nhập quit để thoát khỏi Parted.

Tiếp theo, chạy lệnh bên dưới để định dạng phân vùng /dev/sdb1 thành ext4.
Mã:
sudo mkfs -t ext4 /dev/sdb1
Sau khi /dev/sdb1 được định dạng, đầu ra sau sẽ được hiển thị:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22602%22%20height=%22568%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh sau để tạo thư mục gắn kết mục tiêu mới /gluster. Sau đó, gắn phân vùng /dev/sdb1 vào thư mục /gluster.
Mã:
mkdir -p /gluster
sudo mount /dev/sdb1 /gluster
Cuối cùng, tạo một thư mục mới /gluster/brick0 sẽ được sử dụng làm thư mục dữ liệu cho mỗi máy chủ GlusterFS.
Mã:
sudo mkdir -p /gluster/brick0

Cài đặt GlusterFS Server​

Sau khi phân vùng đĩa trên mỗi máy chủ, bạn sẽ thêm kho lưu trữ GlusterFS và cài đặt gói glusterfs-server vào mỗi máy chủ.

Thực hiện lệnh sau để thêm khóa GPG của kho lưu trữ GlusterFS.
Mã:
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
Sau đó, chạy lệnh bên dưới để thêm kho lưu trữ GlusterFS vào Debian của bạn máy chủ.
Mã:
DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)
Mã:
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E


Sau khi thêm kho lưu trữ GlusterFS và khóa GPG, hãy thực hiện lệnh apt sau để cập nhật và làm mới chỉ mục gói Debian của bạn.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22148%22%3E%3C/svg%3E


Sau đó thực hiện lệnh apt install bên dưới để cài đặt gói glusterfs-server.
Mã:
sudo apt install glusterfs-server
Nhập y để tiến hành cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22720%22%20height=%22432%22%3E%3C/svg%3E


Sau khi cài đặt glusterfs-server, hãy chạy lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ glusterd.
Mã:
sudo systemctl start glusterd
sudo systemctl enable glusterd
Cuối cùng, hãy xác minh dịch vụ glusterd để đảm bảo rằng dịch vụ đang chạy và đã bật.
Mã:
sudo systemctl status glusterd
Đầu ra sau đây cho thấy dịch vụ glusterd đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22251%22%3E%3C/svg%3E

Khởi tạo cụm GlusterFS​

Với Sau khi cài đặt gói glusterfs-server, bước tiếp theo là khởi tạo GlusterFS Cluster. Trong ví dụ này, bạn sẽ khởi tạo Cụm GLusterFS từ server1, sau đó bạn sẽ thêm cả server2 và server3 vào cụm.

Từ thiết bị đầu cuối server1, thực hiện lệnh gluster bên dưới để khởi tạo Cụm GlusterFS với các thành viên của server2 trên địa chỉ IP 192.168.10.21server3 với địa chỉ IP 192.168.10.22.
Mã:
sudo gluster peer probe 192.168.10.21
sudo gluster peer probe 192.168.10.22
Nếu khởi tạo thành công, thông báo đầu ra "peer probe: success" sẽ được hiển thị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22509%22%20height=%22146%22%3E%3C/svg%3E


Bây giờ hãy di chuyển đến server2 hoặc server3 và chạy lệnh gluster bên dưới để xác minh trạng thái của GlusterFS Cluster.
Mã:
sudo gluster peer status
Nếu mọi việc diễn ra tốt đẹp, hai đối tác ngang hàng sẽ có sẵn trên GlusterFS Cluster của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22432%22%20height=%22256%22%3E%3C/svg%3E


Trên server2 - bạn sẽ thấy server1server3.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22423%22%20height=%22253%22%3E%3C/svg%3E


Trên server3, bạn sẽ thấy server1server2.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22425%22%20height=%22254%22%3E%3C/svg%3E


Cuối cùng, bạn cũng có thể xác minh danh sách các đối tác khả dụng trên GlusterFS Cluster của mình bằng lệnh gluster bên dưới.
Mã:
sudo gluster pool list
Kết quả đầu ra sau đây cho thấy GlusterFS Cluster có ba máy chủ.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22611%22%20height=%22173%22%3E%3C/svg%3E

Tạo khối lượng GlusterFS​

Lúc này, bạn đã khởi tạo cụm GlusterFS. Để GLusterFS khả dụng cho máy khách, bạn phải tạo ổ đĩa trên cụm GlusterFS của mình.

Thực hiện lệnh sau để tạo ổ đĩa mới volume1 với 3 bản sao, server1, server2server3.
Mã:
sudo gluster volume create volume1 replica 3 192.168.10.20:/gluster/brick0 192.168.10.21:/gluster/brick0 192.168.10.22:/gluster/brick0
Sau khi ổ đĩa volume1 được tạo, hãy khởi động nó bằng lệnh gluster bên dưới.
Mã:
sudo gluster volume start volume1
Đầu ra "volume start: volume1: success" cho biết volume1 đã được khởi động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2298%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh sau để kiểm tra danh sách các ổ đĩa khả dụng trên GlusterFS của bạn Cụm.
Mã:
sudo gluster volume info
Đầu ra sau đây cho thấy volume1 được tạo với loại Replicate và 3 máy chủ, chẳng hạn như server1, server2server3.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22446%22%20height=%22430%22%3E%3C/svg%3E

Gắn khối lượng GlusterFS​

Trong phần sau, bạn sẽ gắn khối lượng GlusterFS volume1 mà bạn đã tạo vào máy khách Debian. Để thực hiện được điều đó, bạn phải thêm kho lưu trữ GlusterFS và cài đặt gói glusterfs-client vào máy khách Debian của mình.

Tải xuống khóa GPG cho kho lưu trữ GLusterFS vào máy khách Debian của bạn.
Mã:
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
Thêm kho lưu trữ GLusterFS bằng cách thực hiện lệnh sau trên khách hàng.
Mã:
DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)
Mã:
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list
Bây giờ hãy làm mới kho lưu trữ máy khách Debian của bạn và cài đặt gói glusterfs-client thông qua lệnh apt sau lệnh.
Mã:
sudo apt update
sudo apt install glusterfs-client
Nhập y để tiếp tục cài đặt. Sau khi glusterfs-client được cài đặt, bây giờ bạn có thể gắn ổ đĩa GlusterFS vào máy khách Debian của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22593%22%20height=%22211%22%3E%3C/svg%3E


Tiếp theo, thực hiện lệnh sau để tạo thư mục gắn mục tiêu mới /mnt/data.
Mã:
mkdir -p /mnt/data
Sau đó, chạy lệnh sau để gắn volume1 vào thư mục /mnt/data. Bạn có thể thay đổi địa chỉ IP của máy chủ GlusterFS bằng server1, server2 hoặc server3.
Mã:
sudo mount.glusterfs 192.168.10.20:/volume1 /mnt/data
Sau khi volume1 được gắn kết, hãy xác minh nó bằng lệnh sau.
Mã:
sudo df -h
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy volume1 được gắn kết vào Thư mục /mnt/data.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22658%22%20height=%22380%22%3E%3C/svg%3E


Bây giờ ổ đĩa GlusterFS đã được gắn kết, bạn sẽ xác minh quyền truy cập ghi của thư mục gắn kết mục tiêu và xác minh việc sao chép dữ liệu từ máy khách sang máy chủ trên Cụm GlusterFS.

Tiếp theo, di chuyển đến thư mục /mnt/data và tạo các tệp mới bằng lệnh sau. Điều này sẽ tạo nhiều tệp trong thư mục đó và đảm bảo rằng ổ đĩa có thể ghi được.
Mã:
cd /mnt/data
touch file{1..15}.md
Kiểm tra danh sách các tệp có sẵn bằng lệnh ls bên dưới.
Mã:
ls -ah

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E


Bây giờ hãy di chuyển đến các máy chủ GlusterFS, server1, server2 hoặc server3 và chạy lệnh ls bên dưới để kiểm tra danh sách các tệp có sẵn.
Mã:
ls /gluster/brick0
Khi quá trình sao chép đang hoạt động, bạn sẽ thấy các tệp trên tất cả các máy chủ GlusterFS được tạo từ máy khách Debian.

Dữ liệu bên dưới được sao chép vào server1.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22131%22%3E%3C/svg%3E


Dữ liệu bên dưới được sao chép vào server2


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E


Dữ liệu bên dưới được sao chép vào server3.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22128%22%3E%3C/svg%3E

Thiết lập Tự động gắn GlusterFS Khối lượng​

Trong phần sau, bạn sẽ tìm hiểu cách thiết lập tự động gắn khối lượng GlusterFS thông qua tệp /etc/fstab. Điều này cho phép bạn tự động gắn ổ đĩa GlusterFS khi khởi động.

Mở tệp /etc/fstab bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/fstab
Chèn cấu hình sau để gắn ổ đĩa1 vào thư mục đích /mnt/data.
Mã:
192.168.10.20:/volume1 /mnt/data glusterfs defaults,_netdev 0 0
Lưu và thoát khỏi tệp khi hoàn tất.

Bây giờ hãy chạy lệnh sau để tải lại trình quản lý systemd và xác minh cấu hình /etc/fstab. Khi không có thông báo đầu ra, điều đó xác nhận rằng bạn đã cấu hình /etc/fstab đúng.
Mã:
sudo systemctl daemon-reload
sudo mount -a

Kết luận​

Làm tốt lắm! Bạn đã cài đặt thành công GlusterFS trên máy chủ Debian 12 và tạo GlusterFS Cluster với 3 máy chủ. Bạn cũng đã tạo và gắn một ổ đĩa GlusterFS vào máy khách Debian. Ngoài ra, bạn cũng đã định cấu hình tự động gắn ổ đĩa GlusterFS bằng tệp /etc/fstab.
 
Back
Bên trên