Cách tạo nhóm lưu trữ dự phòng bằng GlusterFS trên Ubuntu 20.04
Khi lưu trữ bất kỳ dữ liệu quan trọng nào, việc có một điểm lỗi là rất rủi ro. Trong khi nhiều database và phần mềm khác cho phép bạn phân tán dữ liệu trong ngữ cảnh của một ứng dụng, các hệ thống khác có thể hoạt động ở phạm vi hệ thống file đảm bảo rằng dữ liệu được sao chép sang một vị trí khác khi nào nó được ghi vào đĩa.GlusterFS là một hệ thống file lưu trữ gắn liền với mạng cho phép bạn gộp tài nguyên lưu trữ của nhiều máy. Đổi lại, điều này cho phép bạn coi nhiều thiết bị lưu trữ được phân phối giữa nhiều máy tính như một đơn vị duy nhất, mạnh mẽ hơn. GlusterFS cũng cho phép bạn tự do tạo các loại cấu hình lưu trữ khác nhau, nhiều trong số đó có chức năng tương tự như các cấp RAID . Ví dụ: bạn có thể tách dữ liệu qua các node khác nhau trong cụm hoặc bạn có thể triển khai dự phòng để có dữ liệu tốt hơn.
Bàn thắng
Trong hướng dẫn này, bạn sẽ tạo một mảng lưu trữ theo cụm dự phòng, còn gọi là hệ thống file phân tán hoặc nó được đề cập trong tài liệu GlusterFS, Group lưu trữ tin cậy . Điều này sẽ cung cấp chức năng tương tự như cấu hình RAID được sao chép qua mạng: mỗi server độc lập sẽ chứa bản sao dữ liệu của chính nó, cho phép các ứng dụng của bạn truy cập vào một trong hai bản sao, do đó giúp phân phối tải đọc của bạn.
Cụm GlusterFS dự phòng này sẽ bao gồm hai server Ubuntu 20.04. Điều này sẽ hoạt động tương tự như một server NAS với RAID được sao chép. Sau đó, bạn sẽ truy cập cụm từ server Ubuntu 20.04 thứ ba được cấu hình để hoạt động như một client GlusterFS.
Lưu ý về việc chạy GlusterFS một cách an toàn
Khi bạn thêm dữ liệu vào một ổ GlusterFS, dữ liệu đó sẽ được đồng bộ hóa với mọi máy trong group lưu trữ nơi ổ đó được lưu trữ. Lưu lượng truy cập giữa các node này không được mã hóa theo mặc định, nghĩa là có nguy cơ nó có thể bị chặn bởi các tác nhân độc hại.
Vì lý do này, nếu bạn định sử dụng GlusterFS trong production , bạn nên chạy nó trên một mạng riêng biệt. Ví dụ: bạn có thể cài đặt nó để chạy trong Đám mây riêng ảo (VPC) hoặc với một VPN chạy giữa mỗi nút.
 Nếu bạn định triển khai GlusterFS trên DigitalOcean,  bạn có thể cài đặt  nó trong một mạng riêng biệt bằng cách thêm cơ sở hạ tầng  server  của bạn vào Đám mây riêng ảo DigitalOcean. Để biết chi tiết về cách  cài đặt  điều này, hãy xem tài liệu sản phẩm VPC của  ta .
Yêu cầu
Để làm theo hướng dẫn này, bạn cần ba server chạy Ubuntu 20.04. Mỗi server phải có một user không phải root có quyền quản trị và một firewall được cấu hình bằng UFW. Để cài đặt điều này, hãy làm theo hướng dẫn cài đặt server ban đầu của ta cho Ubuntu 20.04 .
Lưu ý : Như đã đề cập trong phần Mục tiêu, hướng dẫn này sẽ hướng dẫn bạn cách cấu hình hai server Ubuntu hoạt động như server trong group lưu trữ của bạn và server còn lại hoạt động như một client mà bạn sẽ sử dụng để truy cập các node này.
Để rõ ràng, hướng dẫn này sẽ đề cập đến các máy này có tên server sau:
| Tên server | Group role trong bộ nhớ | 
|---|---|
| gluster0 | Người phục vụ | 
| gluster1 | Người phục vụ | 
| gluster2 | Khách hàng | 
Các lệnh sẽ được chạy trên gluster0 hoặc gluster1 sẽ có nền màu xanh và đỏ, tương ứng:
-  
-  
Các lệnh chỉ nên chạy trên client ( gluster2 ) sẽ có nền màu xanh lục:
-  
Các lệnh có thể hoặc nên chạy trên nhiều máy sẽ có nền màu xám:
-  
Bước 1 - Cấu hình độ phân giải DNS trên mỗi máy
  Cài đặt  một số loại phân giải tên  server  giữa mỗi máy tính có thể giúp quản lý  group  lưu trữ Gluster của bạn. Bằng cách này,  khi  nào bạn phải tham chiếu đến một trong các máy  của bạn  trong một lệnh gluster ở phần sau của hướng dẫn này, bạn có thể làm như vậy với domain  dễ nhớ hoặc thậm chí là biệt hiệu thay vì địa chỉ IP tương ứng của chúng.
 Nếu bạn không có domain  dự phòng hoặc nếu bạn chỉ muốn  cài đặt  một cái gì đó nhanh chóng, bạn có thể chỉnh sửa file  /etc/hosts trên mỗi máy tính. Đây là một file  đặc biệt trên các máy Linux, nơi bạn có thể  cấu hình  tĩnh hệ thống để phân giải mọi tên  server  có trong file  thành địa chỉ IP tĩnh.
Lưu ý : Nếu bạn muốn cấu hình server của bạn để xác thực với domain mà bạn sở hữu, trước tiên bạn cần lấy domain từ công ty đăng ký domain - như Namecheap hoặc Enom - và cấu hình các bản ghi DNS thích hợp.
 Khi bạn đã  cấu hình  bản ghi A cho từng  server , bạn có thể chuyển sang Bước 2. Khi làm theo hướng dẫn này, hãy  đảm bảo  bạn thay thế gluster N .example.com và gluster N bằng domain  phân giải đến  server  tương ứng được tham chiếu trong lệnh ví dụ.
 Nếu bạn có được cơ sở hạ tầng  của bạn  từ DigitalOcean, bạn có thể thêm domain   của bạn  vào DigitalOcean, sau đó  cài đặt  bản ghi A duy nhất cho từng  server  của bạn .
 Sử dụng editor   bạn muốn , mở file  này với quyền root trên mỗi máy của bạn . Ở đây,  ta  sẽ sử dụng nano :
- sudo nano /etc/hosts 
Theo mặc định, file sẽ trông giống như thế này với các comment bị xóa:
127.0.1.1 hostname hostname 127.0.0.1 localhost  ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts Trên một trong các server Ubuntu của bạn, hãy thêm địa chỉ IP của từng server , theo sau là bất kỳ tên nào bạn muốn sử dụng để tham chiếu chúng trong các lệnh bên dưới định nghĩa server local .
 Trong ví dụ sau, mỗi  server  được cung cấp một tên  server  dài phù hợp với gluster N .example.com và một tên ngắn phù hợp với gluster N Bạn có thể thay đổi các phần gluster N .example.com và gluster N của mỗi dòng thành bất kỳ tên nào - hoặc các tên được phân tách bằng dấu cách - bạn muốn sử dụng để truy cập từng  server . Tuy nhiên,  lưu ý  hướng dẫn này sẽ sử dụng các ví dụ sau trong suốt:
 Lưu ý : Nếu  server  của bạn là một phần của  group  cơ sở hạ tầng Đám mây riêng ảo , bạn nên sử dụng địa chỉ IP riêng của từng  server  trong file  /etc/hosts thay vì IP công khai của chúng.
. . . 127.0.0.1       localhost first_ip_address gluster0.example.com gluster0 second_ip_address gluster1.example.com gluster1 third_ip_address gluster2.example.com gluster2  . . . Khi bạn hoàn tất việc thêm các dòng mới này vào file  /etc/hosts của một máy, hãy sao chép và thêm chúng vào file  /etc/hosts trên các máy khác của bạn. Mỗi file  /etc/hosts phải chứa các dòng giống nhau, liên kết địa chỉ IP của  server  của bạn với tên bạn đã chọn.
 Lưu và đóng từng file  khi bạn hoàn tất. Nếu bạn đã sử dụng nano , hãy làm như vậy bằng cách nhấn CTRL + X , Y , sau đó ENTER .
Đến đây bạn đã cấu hình độ phân giải tên server giữa mỗi server của bạn , sẽ dễ dàng hơn để chạy các lệnh sau này khi bạn cài đặt group lưu trữ và dung lượng . Tiếp theo, bạn sẽ thực hiện một bước khác phải được hoàn thành trên mỗi server của bạn . Cụ thể, bạn sẽ thêm repository cá nhân chính thức (PPA) của dự án Gluster vào từng trong ba server Ubuntu của bạn đảm bảo rằng bạn có thể cài đặt version mới nhất của GlusterFS.
Bước 2 - Cài đặt nguồn phần mềm trên mỗi máy
Mặc dù repository Ubuntu 20.04 APT mặc định có chứa các gói GlusterFS, tại thời điểm viết bài này, chúng không phải là version mới nhất. Một cách để cài đặt version ổn định mới nhất của GlusterFS (phiên bản 7.6 tính đến thời điểm hiện tại) là thêm PPA chính thức của dự án Gluster vào từng server trong số ba server Ubuntu của bạn.
Thêm PPA cho các gói GlusterFS bằng cách chạy lệnh sau trên mỗi server :
- sudo add-apt-repository ppa:gluster/glusterfs-7 
Nhấn ENTER khi  được yêu cầu  để  xác nhận  bạn thực sự muốn thêm PPA.
Sau khi thêm PPA, hãy cập nhật OS local của từng server . Điều này sẽ làm cho mỗi server biết các gói mới có sẵn:
- sudo apt update 
Sau khi thêm PPA chính thức của dự án Gluster vào mỗi server và cập nhật index gói local , bạn đã sẵn sàng cài đặt các gói GlusterFS cần thiết. Tuy nhiên, vì hai trong số ba máy của bạn sẽ hoạt động như server Gluster và máy kia sẽ hoạt động như một client , nên có hai quy trình cài đặt và cấu hình riêng biệt. Đầu tiên, bạn sẽ cài đặt và cài đặt các thành phần server .
Bước 3 - Cài đặt cấu phần server và tạo group lưu trữ tin cậy
Group lưu trữ là bất kỳ lượng dung lượng lưu trữ nào được tổng hợp từ nhiều hơn một tài nguyên lưu trữ. Trong bước này, bạn sẽ cấu hình hai server của bạn - gluster0 và gluster1 - làm thành phần cụm.
Trên cả gluster0 và gluster1 , hãy cài đặt gói server GlusterFS bằng lệnh :
- sudo apt install glusterfs-server 
Khi  được yêu cầu , nhấn Y và sau đó ENTER để xác nhận cài đặt.
 Quá trình cài đặt tự động cấu hình GlusterFS để chạy như một dịch vụ systemd . Tuy nhiên, nó không tự động khởi động dịch vụ hoặc cho phép nó chạy khi khởi động.
 Để khởi động glusterd , dịch vụ GlusterFS, hãy chạy lệnh systemctl start sau trên cả gluster0 và gluster1 :
- sudo systemctl start glusterd.service 
Sau đó chạy lệnh sau trên cả hai server . Điều này sẽ cho phép dịch vụ khởi động khi nào server khởi động:
- sudo systemctl enable glusterd.service 
Sau đó, bạn có thể kiểm tra trạng thái của dịch vụ trên một trong hai hoặc cả hai server :
- sudo systemctl status glusterd.service 
Nếu dịch vụ được cài đặt và đang chạy, bạn sẽ nhận được kết quả như sau:
Output● glusterd.service - GlusterFS, a clustered file-system server    Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)    Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago      Docs: man:glusterd(8)  Main PID: 14742 (glusterd)     Tasks: 9 (limit: 2362)    CGroup: /system.slice/glusterd.service            └─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO Giả sử bạn đã làm theo hướng dẫn cài đặt server ban đầu tiên quyết , bạn sẽ cài đặt firewall với UFW trên mỗi máy của bạn . Do đó, bạn cần phải mở firewall trên mỗi nút trước khi có thể cài đặt liên lạc giữa chúng và tạo một group lưu trữ.
 Daemon Gluster sử dụng cổng 24007 , vì vậy bạn  cần  cho phép mỗi nút truy cập vào cổng đó thông qua firewall  của mỗi nút khác trong  group  lưu trữ của bạn. Để làm như vậy, hãy chạy lệnh sau trên gluster0 . Hãy nhớ thay đổi gluster1_ip_address thành địa chỉ IP của gluster1 :
- sudo ufw allow from gluster1_ip_address to any port 24007 
Và chạy lệnh sau trên gluster1 .   , hãy đảm bảo thay đổi gluster0_ip_address thành địa chỉ IP của gluster0 :
- sudo ufw allow from gluster0_ip_address to any port 24007 
Bạn cũng cần cho phép client ( gluster2 ) của bạn truy cập vào cổng này. Nếu không, bạn sẽ gặp phải sự cố sau này khi cố gắn ổ đĩa. Chạy lệnh sau trên cả gluster0 và gluster1 để mở cổng này cho client của bạn:
- sudo ufw allow from gluster2_ip_address to any port 24007 
Sau đó,  đảm bảo  rằng không có máy nào khác có thể truy cập vào cổng của Gluster trên cả hai  server , hãy thêm  luật  deny loạt sau cho cả gluster0 và gluster1 :
- sudo ufw deny 24007 
 Đến đây bạn  đã sẵn sàng  cài đặt  giao tiếp giữa gluster0 và gluster1 . Để làm như vậy, bạn  cần  chạy lệnh gluster peer probe trên một trong  các node  của bạn. Không quan trọng bạn sử dụng nút nào, nhưng ví dụ sau cho thấy lệnh đang được chạy trên gluster0 :
- sudo gluster peer probe gluster1 
Về cơ bản, lệnh này yêu cầu gluster0 tin tưởng gluster1 và đăng ký nó như một phần của group lưu trữ của nó. Nếu thăm dò thành công, nó sẽ trả về kết quả sau:
Outputpeer probe: success Bạn có thể kiểm tra xem  các node  có đang giao tiếp hay không bằng cách chạy lệnh gluster peer status trên một trong hai nút. Trong ví dụ này, nó chạy trên gluster1 :
- sudo gluster peer status 
Nếu bạn chạy lệnh này từ gluster1 , nó sẽ hiển thị kết quả như sau:
OutputNumber of Peers: 1  Hostname: gluster0.example.com Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be State: Peer in Cluster (Connected) Đến đây, hai server của bạn đang giao tiếp và sẵn sàng tạo dung lượng lưu trữ với nhau.
Bước 4 - Tạo Dung lượng Lưu trữ
Nhớ lại rằng mục tiêu chính của hướng dẫn này là tạo một group lưu trữ dự phòng. Để làm được điều này, bạn sẽ cài đặt một ổ đĩa có chức năng sao chép, cho phép bạn giữ nhiều bản sao dữ liệu của bạn và ngăn cụm của bạn gặp phải một điểm lỗi duy nhất.
 Để tạo một volume, bạn sẽ sử dụng lệnh gluster volume create với cú pháp chung sau:
sudo gluster volume create volume_name replica number_of_servers domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory force Đây là những gì gluster volume create này gluster volume create các đối số và tùy chọn của lệnh  nghĩa là :
-  volume_name: Đây là tên bạn sẽ dùng để chỉ tập sau khi được tạo. Lệnh ví dụ sau tạo một ổ đĩa có tên làvolume1.
-  replica number_of_servers: Sau tên ổ đĩa, bạn có thể xác định loại ổ đĩa bạn muốn tạo. Hãy nhớ lại rằng mục tiêu của hướng dẫn này là tạo một group lưu trữ dự phòng, vì vậy ta sẽ sử dụng loại dung lượngreplica. Điều này yêu cầu một đối số cho biết dữ liệu của ổ đĩa sẽ được sao chép lên bao nhiêu server (2trong trường hợp của hướng dẫn này).
-  domain1.com:/…vàdomain2.com:/…: Những xác định máy móc và folder vị trí của những viên gạch - hạn GlusterFS cho đơn vị cơ bản của lưu trữ, trong đó bao gồm bất kỳ folder trên bất kỳ máy đóng role như một bộ phận hoặc một bản sao của một dung lượng lớn hơn - sẽ tạo nên khốivolume1. Ví dụ sau sẽ tạo một folder có tên làgluster-storagetrong folder root của cả hai server .
-  force: Tùy chọn này sẽ overrides bất kỳ cảnh báo hoặc tùy chọn nào có thể xuất hiện và tạm dừng việc tạo ổ đĩa.
Làm theo các quy ước đã cài đặt trước đó trong hướng dẫn này, bạn có thể chạy lệnh này để tạo một ổ đĩa. Lưu ý bạn có thể chạy nó từ gluster0 hoặc gluster1 :
- sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force 
Nếu ổ đĩa được tạo thành công, bạn sẽ nhận được kết quả sau:
Outputvolume create: volume1: success: please start the volume to access data Đến đây, ổ đĩa của bạn đã được tạo, nhưng nó chưa hoạt động. Bạn có thể bắt đầu tập và làm cho nó có sẵn để sử dụng bằng cách chạy lại lệnh sau từ một trong các server Gluster của bạn:
- sudo gluster volume start volume1 
Bạn sẽ nhận được kết quả này nếu âm lượng được bắt đầu đúng cách:
Outputvolume start: volume1: success Tiếp theo, kiểm tra xem âm lượng có trực tuyến không. Chạy lệnh sau từ một trong các node của bạn:
- sudo gluster volume status 
Kết quả sẽ trả về kết quả tương tự như sau:
OutputStatus of volume: volume1 Gluster process                             TCP Port  RDMA Port  Online  Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152     0          Y       18801 Brick gluster1.example.com:/gluster-storage 49152     0          Y       19028 Self-heal Daemon on localhost               N/A       N/A        Y       19049 Self-heal Daemon on gluster0.example.com    N/A       N/A        Y       18822  Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks Dựa trên kết quả kết quả này, các khối hình trên cả hai server đều trực tuyến.
 Bước cuối cùng để  cấu hình  ổ đĩa của bạn, bạn  cần  mở firewall  trên cả hai  server  để client  của bạn có thể kết nối và gắn ổ đĩa. Theo  kết quả  mẫu của lệnh trước đó, volume1 đang chạy trên cổng 49152 trên cả hai máy. Đây là cổng mặc định của GlusterFS cho ổ đĩa đầu tiên của nó và ổ đĩa tiếp theo bạn tạo sẽ sử dụng cổng 49153 , sau đó là 49154 , v.v.
Chạy lệnh sau trên cả gluster0 và gluster1 để cho phép gluster2 truy cập vào cổng này thông qua firewall tương ứng của từng người:
- sudo ufw allow from gluster2_ip_address to any port 49152 
Sau đó, để có thêm một lớp bảo mật, hãy thêm một  luật  deny chung khác cho cổng của ổ đĩa trên cả gluster0 và gluster1 . Điều này sẽ  đảm bảo  không máy nào khác ngoài client  của bạn có thể truy cập ổ đĩa trên một trong hai  server :
- sudo ufw deny 49152 
Bây giờ âm lượng của bạn đã tăng và đang chạy, bạn có thể cài đặt client của bạn và bắt đầu sử dụng nó từ xa.
Bước 5 - Cài đặt và cấu hình các thành phần client
 Ổ đĩa của bạn hiện đã được  cấu hình  và có sẵn để sử dụng bởi client  của bạn. Trước khi bắt đầu, bạn cần cài đặt gói glusterfs-client từ PPA mà bạn đã  cài đặt  ở Bước 1 trên client   của bạn . Các phần phụ thuộc của gói này bao gồm một số thư viện và module  phiên dịch thông thường của GlusterFS và các công cụ FUSE cần thiết để nó hoạt động.
Chạy lệnh sau trên gluster2 :
- sudo apt install glusterfs-client 
Bạn sẽ sớm gắn  dung lượng  lưu trữ từ xa  của bạn  trên máy tính khách hàng. Tuy nhiên, trước khi bạn có thể làm điều đó, bạn cần tạo một điểm  mount . Theo truyền thống, nó nằm trong folder  /mnt , nhưng bất cứ nơi nào thuận tiện đều  được dùng .
 Vì mục đích đơn giản, hãy tạo một folder  có tên /storage-pool trên client  của bạn để dùng làm điểm  mount . Tên folder  này bắt đầu bằng dấu gạch chéo ( / ) đặt nó trong folder  root , vì vậy bạn  cần  tạo nó với các  quyền  sudo :
- sudo mkdir /storage-pool 
 Đến đây bạn  có thể gắn âm lượng từ xa. Tuy nhiên, trước đó, hãy xem cú pháp của lệnh mount mà bạn sẽ sử dụng  để thực hiện :
sudo mount -t glusterfs domain1.com:volume_name /path/to/mount/point mount là một tiện ích được tìm thấy trong nhiều hệ điều hành giống Unix. Nó được sử dụng để  mount  hệ thống file  - bất kỳ thứ gì từ thiết bị lưu trữ bên ngoài, như thẻ SD hoặc thẻ USB, với bộ nhớ gắn mạng như trong trường hợp của hướng dẫn này - với các folder  trên hệ thống file  hiện có của máy. Cú pháp lệnh mount mà bạn sẽ sử dụng bao gồm tùy chọn -t , yêu cầu ba đối số: loại hệ thống file  được  mount , thiết bị nơi có thể tìm thấy hệ thống file  để  mount  và thư mục trên client  nơi bạn sẽ  mount  âm lượng.
  Lưu ý  trong cú pháp ví dụ này, đối số thiết bị trỏ đến một tên  server , theo sau là dấu hai chấm và sau đó là tên của ổ đĩa. GlusterFS tóm tắt các folder  lưu trữ thực tế trên mỗi  server ,  nghĩa là  lệnh này không giống mount /gluster-storage folder , nhưng thay vào đó là volume1  dung lượng .
Cũng lưu ý bạn chỉ phải chỉ định một thành viên của cụm lưu trữ. Đây có thể là một trong hai nút, vì dịch vụ GlusterFS coi chúng như một máy.
 Chạy lệnh sau trên client  của bạn ( gluster2 ) để gắn ổ đĩa vào folder  /storage-pool bạn đã tạo:
- sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool 
Sau đó, chạy lệnh df . Điều này sẽ hiển thị số lượng không gian đĩa có sẵn cho các hệ thống file  mà  user  gọi nó có quyền truy cập:
- df 
Lệnh này sẽ hiển thị rằng ổ đĩa GlusterFS được gắn vào đúng vị trí:
OutputFilesystem                    1K-blocks    Used Available Use% Mounted on . . . gluster0.example.com:/volume1  50633164 1938032  48695132   4% /storage-pool Bây giờ, bạn có thể chuyển sang kiểm tra xem bất kỳ dữ liệu nào bạn ghi vào ổ đĩa trên client của bạn đều được sao chép sang các node server của bạn như mong đợi.
Bước 6 - Kiểm tra các tính năng dự phòng
Đến đây bạn đã cài đặt ứng dụng client của bạn để sử dụng group lưu trữ và dung lượng của bạn , bạn có thể kiểm tra chức năng của nó.
Trên client của bạn ( gluster2 ), chuyển đến điểm mount mà bạn đã xác định ở bước trước:
- cd /storage-pool 
Sau đó, tạo một vài file thử nghiệm. Lệnh sau tạo mười file trống riêng biệt trong group lưu trữ của bạn:
- sudo touch file_{0..9}.test 
Nếu bạn kiểm tra các folder lưu trữ mà bạn đã xác định trước đó trên mỗi server lưu trữ, bạn sẽ phát hiện ra rằng tất cả các file này đều có trên mỗi hệ thống.
Trên gluster0 :
- ls /gluster-storage 
Outputfile_0.test  file_2.test  file_4.test  file_6.test  file_8.test file_1.test  file_3.test  file_5.test  file_7.test  file_9.test Tương tự, trên gluster1 :
- ls /gluster-storage 
Outputfile_0.test  file_2.test  file_4.test  file_6.test  file_8.test file_1.test  file_3.test  file_5.test  file_7.test  file_9.test Khi các kết quả này hiển thị, các file kiểm tra mà bạn đã thêm vào client cũng được ghi vào cả hai nút của bạn.
Nếu có một thời điểm nào đó khi một trong các node trong cụm lưu trữ của bạn bị lỗi, nó có thể không đồng bộ với group lưu trữ nếu có bất kỳ thay đổi nào đối với hệ thống file . Thực hiện thao tác đọc trên điểm mount của ứng dụng client sau khi nút trực tuyến trở lại sẽ cảnh báo nút nhận được các file nào bị thiếu:
- ls /storage-pool 
Đến đây bạn đã xác minh dung lượng lưu trữ của bạn được mount đúng cách và có thể sao chép dữ liệu sang cả hai máy trong cụm, bạn có thể khóa quyền truy cập vào group lưu trữ.
Bước 7 - Hạn chế các tính năng dự phòng
  Đến đây,  bất kỳ máy tính nào cũng có thể kết nối với dung lượng lưu trữ của bạn mà không có bất kỳ hạn chế nào. Bạn có thể thay đổi điều này bằng cách đặt tùy chọn auth.allow , tùy chọn này xác định địa chỉ IP của bất kỳ ứng dụng nào có quyền truy cập vào ổ đĩa.
 Nếu bạn đang sử dụng cấu hình /etc/hosts , tên bạn đã đặt cho từng  server  sẽ không định tuyến chính xác. Bạn phải sử dụng địa chỉ IP tĩnh để thay thế. Mặt khác, nếu bạn đang sử dụng bản ghi DNS, domain  bạn đã  cấu hình  sẽ hoạt động ở đây.
Trên một trong các node lưu trữ của bạn ( gluster0 hoặc gluster1 ), hãy chạy lệnh sau:
- sudo gluster volume set volume1 auth.allow gluster2_ip_address 
Nếu lệnh hoàn tất thành công, nó sẽ trả về kết quả này:
Outputvolume set: success Nếu bạn cần loại bỏ hạn chế tại bất kỳ thời điểm nào, có thể chạy lệnh:
- sudo gluster volume set volume1 auth.allow * 
Điều này sẽ cho phép kết nối lại từ bất kỳ máy nào. Điều này không an toàn, nhưng có thể hữu ích cho việc gỡ lỗi các vấn đề.
 Nếu bạn có nhiều client , bạn có thể chỉ định địa chỉ IP hoặc domain  của họ cùng một lúc (tùy thuộc vào việc bạn đang sử dụng /etc/hosts hay độ phân giải tên  server  DNS), được phân tách bằng dấu phẩy:
- sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ip 
Group lưu trữ của bạn hiện đã được cấu hình , bảo mật và sẵn sàng để sử dụng. Tiếp theo, bạn sẽ tìm hiểu một số lệnh sẽ giúp bạn nhận được thông tin về trạng thái của group lưu trữ của bạn.
Bước 8 - Nhận thông tin về group lưu trữ của bạn với các lệnh GlusterFS
Khi bạn bắt đầu thay đổi một số cài đặt cho bộ nhớ GlusterFS của bạn , bạn có thể bối rối về những tùy chọn bạn có , những ổ nào đang hoạt động và những nút nào được liên kết với từng ổ.
Có một số lệnh khác nhau có sẵn trên các node của bạn để truy xuất dữ liệu này và tương tác với group lưu trữ của bạn.
 Nếu bạn muốn biết thông tin về từng tập  của bạn , hãy chạy lệnh gluster volume info :
- sudo gluster volume info 
OutputVolume Name: volume1 Type: Replicate Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: gluster0.example.com:/gluster-storage Brick2: gluster1.example.com:/gluster-storage Options Reconfigured: auth.allow: gluster2_ip_address transport.address-family: inet storage.fips-mode-rchecksum: on nfs.disable: on performance.client-io-threads: off Tương tự, để nhận thông tin về bất kỳ đồng nghiệp nào mà nút này được kết nối, có thể chạy lệnh:
- sudo gluster peer status 
Number of Peers: 1  Hostname: gluster0.example.com Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9 State: Peer in Cluster (Connected) Nếu bạn muốn biết thông tin chi tiết về cách mỗi nút đang hoạt động, bạn có thể cấu hình một ổ bằng lệnh :
- sudo gluster volume profile volume_name start 
Khi lệnh này hoàn tất, bạn có thể lấy thông tin được thu thập bằng lệnh :
- sudo gluster volume profile volume_name info 
OutputBrick: gluster0.example.com:/gluster-storage -------------------------------------------- Cumulative Stats:  %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop  ---------   -----------   -----------   -----------   ------------        ----       0.00       0.00 us       0.00 us       0.00 us             30      FORGET       0.00       0.00 us       0.00 us       0.00 us             36     RELEASE       0.00       0.00 us       0.00 us       0.00 us             38  RELEASEDIR      Duration: 5445 seconds    Data Read: 0 bytes Data Written: 0 bytes  Interval 0 Stats:  %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop  ---------   -----------   -----------   -----------   ------------        ----       0.00       0.00 us       0.00 us       0.00 us             30      FORGET       0.00       0.00 us       0.00 us       0.00 us             36     RELEASE       0.00       0.00 us       0.00 us       0.00 us             38  RELEASEDIR      Duration: 5445 seconds    Data Read: 0 bytes Data Written: 0 bytes . . . Như được hiển thị trước đây, để có danh sách tất cả các thành phần liên quan đến GlusterFS đang chạy trên mỗi nút của bạn, hãy chạy lệnh gluster volume status :
- sudo gluster volume status 
OutputStatus of volume: volume1 Gluster process                             TCP Port  RDMA Port  Online  Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152     0          Y       19003 Brick gluster1.example.com:/gluster-storage 49152     0          Y       19040 Self-heal Daemon on localhost               N/A       N/A        Y       19061 Self-heal Daemon on gluster0.example.com    N/A       N/A        Y       19836  Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks  Nếu bạn đang quản lý các  dung lượng  lưu trữ GlusterFS  của bạn , thì có thể là một ý tưởng hay khi vào console  GlusterFS. Điều này sẽ cho phép bạn tương tác với môi trường GlusterFS  của bạn  mà không cần phải nhập sudo gluster trước mọi thứ:
- sudo gluster 
Điều này sẽ cung cấp cho bạn  dấu nhắc  để bạn có thể nhập các lệnh  của bạn . help là một cách tốt để giúp bạn có định hướng:
- help 
Output peer help                - display help for peer commands  volume help              - display help for volume commands  volume bitrot help       - display help for volume bitrot commands  volume quota help        - display help for volume quota commands  snapshot help            - display help for snapshot commands  global help              - list global commands Khi bạn hoàn tất, hãy chạy exit để thoát khỏi console  Gluster:
- exit 
Như vậy, bạn đã sẵn sàng để bắt đầu tích hợp GlusterFS với ứng dụng tiếp theo của bạn .
Kết luận
Bằng cách hoàn thành hướng dẫn này, bạn đã có một hệ thống lưu trữ dự phòng cho phép bạn ghi đồng thời vào hai server riêng biệt. Điều này có thể hữu ích cho một số ứng dụng và có thể đảm bảo dữ liệu của bạn có ngay cả khi một server gặp sự cố.
Các tin liên quan
Cách cài đặt Prosody trên Ubuntu 18.042020-06-15
Cách tạo lưu trữ dự phòng bằng GlusterFS trên Ubuntu 18.04
2020-06-12
Cách cài đặt và sử dụng TimescaleDB trên Ubuntu 20.04
2020-06-09
Cách cài đặt Git từ nguồn trên Ubuntu 20.04 [Quickstart]
2020-06-05
Cách thiết lập trang web phát triển Jekyll trên Ubuntu 20.04
2020-06-05
Cách thiết lập trang web phát triển Jekyll trên Ubuntu 18.04
2020-06-05
Cách cài đặt Git trên Ubuntu 20.04
2020-05-29
Cách cài đặt và bảo mật Grafana trên Ubuntu 20.04
2020-05-28
Cách lấy chứng chỉ Let's Encrypt sử dụng xác thực DNS với acme-dns-certbot trên Ubuntu 18.04
2020-05-28
Cách cài đặt Jitsi Meet trên Ubuntu 18.04
2020-05-28
 

