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.
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ủ:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Đầu tiên, cài đặt gói cần thiết bằng lệnh sau:
Tiếp theo, thêm kho lưu trữ bằng lệnh sau:
Tiếp theo, cài đặt máy chủ GlusterFS bằng lệnh sau lệnh:
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:
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:
Để tạo một phân vùng mới trên /dev/sdb, hãy chạy lệnh sau lệnh:
Bạn sẽ thấy kết quả sau:
Tiếp theo, định dạng phân vùng bằng lệnh sau lệnh:
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 thư mục /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:
Thêm dòng sau:
Lưu và đóng tệp sau đó chạy lệnh sau để áp dụng thay đổi:
Bây giờ bạn có thể kiểm tra thư mục đã gắn kết bằng lệnh sau:
Bạn sẽ thấy thông báo sau đầu ra:
Bạn có thể liệt kê nhóm lưu trữ 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ạn cũng có thể xem thông tin về ổ đĩa đã tạo bằ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 /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.
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 nút 1:
Bây giờ, hãy đến nút 2 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 cách sau lệnh:
Bạn sẽ thấy kết quả 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 lệnh:
Bây giờ, hãy kiểm tra thư mục /mnt trên node2:
Bạn sẽ thấy rằng tất cả các tệp từ node1 đã được sao chép và hiện available.
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
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
Mã:
172.20.10.5 node1
172.20.10.6 node2
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
Mã:
add-apt-repository ppa:gluster/glusterfs-5
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; 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
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 /glusterdata
Mã:
mount.xfs /dev/sdb1 /glusterdata
Mã:
nano /etc/fstab
Mã:
/dev/sdb1 /glusterdata xfs defaults 0 0
Mã:
mount -a
Mã:
df -h
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
Mã:
gluster pool list
Mã:
UUID Hostname State
d049b519-9210-4bfa-a1c6-0d1454a88ea0 node2 Connected
dbb9252e-6082-4d31-aaef-1b99e0e0c369 localhost Connected
Mã:
mkdir /glusterdata/vol1
Mã:
gluster volume create vol1 replica 2 node1:/glusterdata/vol1 node2:/glusterdata/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:/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
Mã:
gluster volume info vol1
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
Mã:
nano /etc/fstab
Mã:
localhost:/vol1 /mnt glusterfs defaults,_netdev 0 0
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
Mã:
ls -l /mnt/
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: d049b519-9210-4bfa-a1c6-0d1454a88ea0
State: Peer in Cluster (Disconnected)
Mã:
gluster volume status
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
Mã:
touch /mnt/file3 /mnt/file4
Mã:
service glusterd start
Mã:
ls -l /mnt/
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