GlusterFS là một hệ thống lưu trữ phân tán miễn phí, mã nguồn mở và được định nghĩa bằng phần mềm do Gluster Inc phát triển, sau đó là Redhat. Hệ thống này cung cấp giao diện cho lưu trữ đối tượng, khối và tệp và được sử dụ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. Hệ thống này có thể mở rộng theo kiểu khối xây dựng để lưu trữ nhiều petabyte dữ liệu. Hệ thống này hỗ trợ nhiều giao thức như NFS, SMB, CIFS, HTTP và FTP. Nó hoàn toàn phù hợp với nhiều trường hợp sử dụng khác nhau đòi hỏi phải xử lý lượng dữ liệu lớn.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập Replicated GlusterFS Volume trên Ubuntu 22.04.
Sau khi tất cả các gói hệ thống đượ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 cũng sẽ cần chỉnh sửa tệp /etc/hosts trên cả hai máy chủ và thiết lập phân giải tên máy chủ để mỗi máy chủ có thể giao tiếp với máy chủ kia theo tên máy chủ. Bạn có thể thực hiện bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Sau khi gói GlusterFS được cài đặt, hãy khởi động dịch vụ GlusterFS và cho phép nó khởi động khi khởi động bằng lệnh sau:
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:
Bạn sẽ thấy kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Để tạo một phân vùng mới trên /dev/sdb, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, định dạng phân vùng bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
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:
Tiếp theo, gắn đĩa /dev/sdb1 vào một thư mục /glustervolume.
Tiếp theo, chỉnh sửa tệp /etc/fstab và giữ cho lệnh gắn kết liên tục trong suốt quá trình khởi động lại:
Thêm nội dung sau dòng:
Lưu và đóng tệp sau đó chạy lệnh sau để áp dụng các thay đổi:
Bây giờ bạn có thể kiểm tra thư mục đã gắn kết bằng lệnh sau lệnh:
Bạn sẽ thấy đầu ra sau:
Bạn có thể xác minh nhóm lưu trữ đã thêm bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Tiếp theo, tạo một thư mục brick trên cả hai nút bằng lệnh sau:
Tiếp theo, tạo một ổ đĩa có tên là vol1 với hai bản sao:
Tiếp theo, khởi động ổ đĩa bằng lệnh sau:
Bạn có thể kiểm tra trạng thái của ổ đĩa đã tạo bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Bây giờ bạn có thể kiểm tra thông tin về ổ đĩa đã tạo bằng cách sử dụng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, gắn ổ đĩa đã tạo vào thư mục /opt 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.
Thêm dòng sau:
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:
Đầu tiên, tạo hai tệp trên node1:
Bây giờ, hãy đến node2 và chạy lệnh sau:
Bạn sẽ thấy các tệp giống như những tệp bạn đã tạo trên node1:
Bây giờ, hãy dừng dịch vụ GlusterFS trên node2 bằng lệnh sau:
Tiếp theo, hãy đến node1 và kiểm tra đối tác trạng thái:
Bạn sẽ thấy rằng node2 đã bị ngắt kết nối:
Bạn cũng có thể kiểm tra trạng thái ổ đĩa bằng lệnh sau:
Bạn sẽ thấy kết quả đầu ra sau:
Tiếp theo, tạo hai tệp khác trên node1:
Bây giờ, hãy đến node2 và khởi động dịch vụ GlusterFS bằng lệnh sau:
Bây giờ, hãy kiểm tra thư mục /opt trên node2:
Bạn sẽ thấy tất cả các tệp từ node1 đã được sao chép và hiện đã có sẵn.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập Replicated GlusterFS Volume trên Ubuntu 22.04.
Yêu cầu
- Hai máy chủ chạy Ubuntu 22.04 với Ổ cứng ngoài 2 GB trên mỗi máy.
- Địa chỉ IP tĩnh 192.168.10.10 được cấu hình trên node1 và 192.168.10.11 được cấu hình trên node2.
- Mật khẩu gốc được cấu hình trên cả hai máy chủ.
Bắt đầu
Trước khi bắt đầu, bạn nên cập nhật tất cả các gói hệ thống trên cả hai máy chủ. 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
Tiếp theo, bạn cũng sẽ cần chỉnh sửa tệp /etc/hosts trên cả hai máy chủ và thiết lập phân giải tên máy chủ để mỗi máy chủ có thể giao tiếp với máy chủ kia theo tên máy chủ. Bạn có thể thực hiện bằng lệnh sau:
Mã:
nano /etc/hosts
Mã:
192.168.10.10 node1
192.168.10.11 node2
Cài đặt GlusterFS Server
Theo mặc định, GlusterFS có sẵn trong kho lưu trữ mặc định của Ubuntu 22.04. Bạn có thể cài đặt nó trên cả hai máy chủ bằng lệnh sau.
Mã:
apt-get install glusterfs-server -y
Mã:
systemctl start glusterd
systemctl enable glusterd
Mã:
systemctl status glusterd
Mã:
? glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/lib/systemd/system/glusterd.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2022-11-05 04:10:13 UTC; 7s ago Docs: man:glusterd(8) Process: 92014 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCC> Main PID: 92015 (glusterd) Tasks: 9 (limit: 4579) Memory: 7.1M CPU: 2.260s CGroup: /system.slice/glusterd.service ??92015 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
Nov 05 04:10:11 ubuntu2204 systemd[1]: Starting GlusterFS, a clustered file-system server...
Nov 05 04:10:13 ubuntu2204 systemd[1]: Started GlusterFS, a clustered file-system server.
Tạo bộ lưu trữ GlusterFS
Để tạo bộ lưu trữ GlusterFS, bạn sẽ cần một ổ cứng ngoài trên cả hai máy chủ. Bạn cũng 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:
Mã:
fdisk /dev/sdb
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.
Mã:
mkfs.xfs /dev/sdb1
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
Mã:
mkdir /glustervolume
Mã:
mount.xfs /dev/sdb1 /glustervolume
Mã:
nano /etc/fstab
Mã:
/dev/sdb1 /glustervolume xfs defaults 0 0
Mã:
mount -a
Mã:
df -h
Mã:
Filesystem Size Used Avail Use% Mounted on
tmpfs 393M 1.1M 392M 1% /run
/dev/sda2 79G 8.6G 67G 12% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 393M 4.0K 393M 1% /run/user/0
/dev/sdb1 2.0G 35M 2.0G 2% /glustervolume
Cấu hình GlusterFS Volume
Trước 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
Mã:
gluster pool list
Mã:
UUID Hostname State
52245177-ce2e-4217-8da5-2ee7a33dcf46 node2 Connected
b6da6e83-b1ea-46de-8904-1c5345b1c229 localhost Connected
Mã:
mkdir /glustervolume/vol1
Mã:
gluster volume create vol1 replica 2 node1:/glustervolume/vol1 node2:/glustervolume/vol1
Mã:
gluster volume start vol1
Mã:
gluster volume status
Mã:
Status of volume: vol1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick node1:/glustervolume/vol1 49152 0 Y 7198
Brick node2:/glustervolume/vol1 49152 0 Y 13214
Self-heal Daemon on localhost N/A N/A Y 6121
Self-heal Daemon on node2 N/A N/A Y 12768
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks
Mã:
gluster volume info vol1
Mã:
Volume Name: vol1
Type: Replicate
Volume ID: a1023sd6d-81rt-12a2-bc4e-a4gd156c5331
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/glustervolume/vol1
Brick2: node2:/glustervolume/vol1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
Mã:
nano /etc/fstab
Mã:
localhost:/vol1 /opt glusterfs defaults,_netdev 0 0
Mã:
mount -a
Kiểm tra bản sao
Máy chủ GlusterFS của bạn hiện đã được cài đặt và định cấu hình. Bây giờ, đã đến lúc kiểm tra quá trình sao chép giữa cả hai nút.Đầu tiên, tạo hai tệp trên node1:
Mã:
touch /opt/test1 /opt/test2
Mã:
ls -l /opt/
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
Mã:
service glusterd stop
Mã:
gluster peer status
Mã:
Number of Peers: 1
Hostname: node2
Uuid: a134f146-1220-3avd-d3f6-1c2554a87sa1
State: Peer in Cluster (Disconnected)
Mã:
gluster volume status
Mã:
Status of volume: vol1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick node1:/glustervolume/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
Mã:
touch /opt/test3 /opt/test4
Mã:
service glusterd start
Mã:
ls -l /opt/
Mã:
total 0
-rw-r--r-- 1 root root 0 Nov 7 13:42 test1
-rw-r--r-- 1 root root 0 Nov 7 13:42 test2
-rw-r--r-- 1 root root 0 Nov 7 13:44 test3
-rw-r--r-- 1 root root 0 Nov 7 13:44 test4