Cách cài đặt và cấu hình GlusterFS trên Ubuntu

theanh

Administrator
Nhân viên
GlusterFS là một hệ thống tệp mạng miễn phí, mã nguồn mở và có thể mở rộng được phát triển đầu tiên bởi Gluster Inc. và sau đó là Redhat. Nó được thiết kế riêng cho các khối lượng công việc dữ liệu chuyên sâu như lưu trữ đám mây, CDN và phát trực tuyến phương tiện. Nó có khả năng xử lý petabyte dữ liệu và do đó có thể phục vụ hàng nghìn máy khách. Nó hỗ trợ nhiều giao thức khác nhau như NFS, SMB, CIFS, HTTP và FTP. Với GlusterFS, bạn có thể kết hợp các tài nguyên lưu trữ đĩa khác nhau thành một không gian tên toàn cục duy nhất.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập một ổ đĩa GlusterFS được sao chép trên Ubuntu 18.04.

Yêu cầu​

  • Hai máy chủ chạy Ubuntu 18.04 với ổ cứng ngoài 2 GB trên mỗi máy.
  • Địa chỉ IP tĩnh 172.20.10.5 được định cấu hình trên node1 và 172.20.10.6 được định cấu hình trên node2.
  • Mật khẩu gốc được định cấu hình trên cả hai máy chủ.

Bắt đầu​

Trước khi bắt đầu, bạn sẽ cần cập nhật cả hai máy chủ lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng cách chạy lệnh sau trên cả hai máy chủ.
Mã:
apt-get update -y
apt-get upgrade -y
Sau khi cả hai máy chủ được cập nhật, hãy khởi động lại chúng để áp dụng các thay đổi.

Tiếp theo, bạn sẽ cần thiết lập phân giải tên máy chủ trên cả hai máy chủ để mỗi máy chủ có thể giao tiếp với nhau theo tên máy chủ. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/hosts trên cả hai máy chủ:
Mã:
nano /etc/hosts
Thêm các dòng sau:
Mã:
172.20.10.5 node1
172.20.10.6 node2
Lưu và đóng tệp khi bạn hoàn tất.

Cài đặt GlusterFS​

Đầu tiên, bạn sẽ cần cài đặt gói GlusterFS trên cả hai máy chủ. Theo mặc định, GlusterFS không có sẵn trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ GlusterFS trên cả hai máy chủ.

Đầu tiên, cài đặt gói cần thiết bằng lệnh sau:
Mã:
apt-get install software-properties-common -y
Tiếp theo, thêm kho lưu trữ bằng lệnh sau:
Mã:
add-apt-repository ppa:gluster/glusterfs-5
Tiếp theo, cài đặt máy chủ GlusterFS bằng lệnh sau lệnh:
Mã:
apt-get install glusterfs-server -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ GlusterFS và cho phép dịch vụ này khởi động khi khởi động bằng lệnh sau:
Mã:
systemctl start glusterd
systemctl enable glusterd
Bạn cũng có thể kiểm tra trạng thái của dịch vụ GlusterFS bằng lệnh sau lệnh:
Mã:
systemctl status glusterd
Bạn sẽ thấy kết quả sau:
Mã:
? glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-11-07 12:51:15 UTC; 48s ago Main PID: 7199 (glusterd) Tasks: 8 (limit: 505) CGroup: /system.slice/glusterd.service ??7199 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
Nov 07 12:51:06 ubuntu systemd[1]: Starting GlusterFS, a clustered file-system server...
Nov 07 12:51:15 ubuntu systemd[1]: Started GlusterFS, a clustered file-system server.

Tạo bộ lưu trữ GlusterFS​

Tiếp theo, bạn sẽ cần tạo một phân vùng trên ổ cứng ngoài (/dev/sdb) trên cả hai máy chủ.

Để tạo một phân vùng mới trên /dev/sdb, hãy chạy lệnh sau lệnh:
Mã:
fdisk /dev/sdb
Bạn sẽ thấy kết quả sau:
Mã:
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x06091fe8.
Command (m for help): n
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303):
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Tiếp theo, định dạng phân vùng bằng lệnh sau lệnh:
Mã:
mkfs.xfs /dev/sdb1
Bạn sẽ thấy kết quả sau:
Mã:
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131008 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0
data = bsize=4096 blocks=524032, imaxpct=25 = sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Tiếp theo, tạo một thư mục để lưu trữ GlusterFS trên cả hai máy chủ bằng lệnh sau:
Mã:
mkdir /glusterdata
Tiếp theo, gắn đĩa /dev/sdb1 vào thư mục /glusterdata.
Mã:
mount.xfs /dev/sdb1 /glusterdata
Tiếp theo, giữ cho lệnh gắn kết liên tục khi khởi động lại bằng cách chỉnh sửa /etc/fstab tệp:
Mã:
nano /etc/fstab
Thêm dòng sau:
Mã:
/dev/sdb1 /glusterdata xfs defaults 0 0
Lưu và đóng tệp sau đó chạy lệnh sau để áp dụng thay đổi:
Mã:
mount -a
Bây giờ bạn có thể kiểm tra thư mục đã gắn kết bằng lệnh sau:
Mã:
df -h
Bạn sẽ thấy thông báo sau đầu ra:
Mã:
Filesystem Size Used Avail Use% Mounted on
udev 211M 0 211M 0% /dev
tmpfs 49M 1016K 48M 3% /run
/dev/sda2 30G 4.3G 25G 16% /
tmpfs 241M 12K 241M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 241M 0 241M 0% /sys/fs/cgroup
/dev/loop0 87M 87M 0 100% /snap/core/4486
tmpfs 49M 0 49M 0% /run/user/0
/dev/loop1 90M 90M 0 100% /snap/core/7917
/dev/sdb1 2.0G 35M 2.0G 2% /glusterdata

Cấu hình GlusterFS Volume​

Đầu tiên, bạn sẽ cần tạo một nhóm lưu trữ đáng tin cậy bằng cách thêm node2 vào node1. Để thực hiện, hãy chạy lệnh sau trên node1:
Mã:
gluster peer probe node2
Bạn có thể liệt kê nhóm lưu trữ bằng lệnh sau:
Mã:
gluster pool list
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
UUID	Hostname	State
d049b519-9210-4bfa-a1c6-0d1454a88ea0	node2	Connected
dbb9252e-6082-4d31-aaef-1b99e0e0c369	localhost	Connected
Tiếp theo, tạo một thư mục brick trên cả hai nút bằng lệnh sau:
Mã:
mkdir /glusterdata/vol1
Tiếp theo, tạo một ổ đĩa có tên là vol1 với hai bản sao:
Mã:
gluster volume create vol1 replica 2 node1:/glusterdata/vol1 node2:/glusterdata/vol1
Tiếp theo, khởi động ổ đĩa bằng lệnh sau:
Mã:
gluster volume start vol1
Bạn có thể kiểm tra trạng thái của ổ đĩa đã tạo bằng lệnh sau lệnh:
Mã:
gluster volume status
Bạn sẽ nhận được kết quả sau:
Mã:
Status of volume: vol1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick node1:/glusterdata/vol1 49152 0 Y 7987
Brick node2:/glusterdata/vol1 49152 0 Y 18565
Self-heal Daemon on localhost N/A N/A Y 8010
Self-heal Daemon on node2 N/A N/A Y 18588
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks
Bạn cũng có thể xem thông tin về ổ đĩa đã tạo bằng lệnh sau lệnh:
Mã:
gluster volume info vol1
Bạn sẽ nhận được kết quả sau:
Mã:
Volume Name: vol1
Type: Replicate
Volume ID: e093ae7a-70ac-42b8-ab3f-a8bd186c5740
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/glusterdata/vol1
Brick2: node2:/glusterdata/vol1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
Tiếp theo, gắn ổ đĩa đã tạo vào thư mục /mnt trên cả hai nút bằng cách chỉnh sửa tệp /etc/fstab để ổ đĩa của bạn khả dụng sau máy chủ boots.
Mã:
nano /etc/fstab
Thêm dòng sau:
Mã:
localhost:/vol1 /mnt glusterfs defaults,_netdev 0 0
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, chạy lệnh sau để áp dụng các thay đổi:
Mã:
mount -a

Kiểm tra bản sao​

Máy chủ GlusterFS hiện đã được cài đặt và cấu hình. Đã đến lúc kiểm tra quá trình sao chép giữa hai nút.

Đầu tiên, tạo hai tệp trên nút 1:
Mã:
touch /mnt/file1 /mnt/file2
Bây giờ, hãy đến nút 2 và chạy lệnh sau:
Mã:
ls -l /mnt/
Bạn sẽ thấy các tệp giống như những tệp bạn đã tạo trên node1:
Mã:
total 0
-rw-r--r-- 1 root root 0 Nov 7 13:42 file1
-rw-r--r-- 1 root root 0 Nov 7 13:42 file2
Bây giờ, hãy dừng dịch vụ GlusterFS trên node2 bằng lệnh sau:
Mã:
service glusterd stop
Tiếp theo, hãy đến node1 và kiểm tra đối tác trạng thái:
Mã:
gluster peer status
Bạn sẽ thấy rằng node2 đã bị ngắt kết nối:
Mã:
Number of Peers: 1
Hostname: node2
Uuid: d049b519-9210-4bfa-a1c6-0d1454a88ea0
State: Peer in Cluster (Disconnected)
Bạn cũng có thể kiểm tra trạng thái ổ đĩa bằng cách sau lệnh:
Mã:
gluster volume status
Bạn sẽ thấy kết quả sau:
Mã:
Status of volume: vol1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick node1:/glusterdata/vol1 49152 0 Y 7987
Self-heal Daemon on localhost N/A N/A Y 8010
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks
Tiếp theo, tạo hai tệp khác trên node1:
Mã:
touch /mnt/file3 /mnt/file4
Bây giờ, hãy đến node2 và khởi động dịch vụ GlusterFS bằng lệnh sau lệnh:
Mã:
service glusterd start
Bây giờ, hãy kiểm tra thư mục /mnt trên node2:
Mã:
ls -l /mnt/
Bạn sẽ thấy rằng tất cả các tệp từ node1 đã được sao chép và hiện available.
Mã:
total 0
-rw-r--r-- 1 root root 0 Nov 7 13:42 file1
-rw-r--r-- 1 root root 0 Nov 7 13:42 file2
-rw-r--r-- 1 root root 0 Nov 7 13:44 file3
-rw-r--r-- 1 root root 0 Nov 7 13:44 file4

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công Replicated Glusterfs Volume hai nút trên máy chủ Ubuntu 18.04. Bạn cũng có thể thiết lập Distributed Glusterfs Volume, Distributed Replicated Glusterfs Volume, Striped Glusterfs Volume và Distributed Striped Glusterfs Volume.
 
Back
Bên trên