Thứ sáu, 12/06/2020 | 00:00 GMT+7

Cách tạo lưu trữ dự phòng bằng GlusterFS trên Ubuntu 18.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.

Mục tiêu

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 18.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 18.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 18.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 18.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:


 

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.comgluster 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:

/ etc / hosts
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.comgluster 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.

/ etc / hosts
. . . 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 18.04 APT mặc định chứa các gói GlusterFS, nhưng chúng đã khá lỗi thời. Một cách để cài đặt version ổn định mới nhất của GlusterFS (phiên bản 7 tính đến thời điểm viết bài này) 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.

Đầu tiên, hãy cập nhật index gói local trên từng server của bạn :

  • sudo apt update

Sau đó cài đặt gói software-properties-common trên mỗi máy . Gói này sẽ cho phép bạn quản lý các PPA với tính linh hoạt cao hơn:

  • sudo apt install software-properties-common

Sau khi các công cụ PPA được cài đặt, hãy 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 - gluster0gluster1 - làm thành phần cụm.

Trên cả gluster0gluster1 , 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.

Đến đây, cả gluster0gluster1 đều đã cài đặt GlusterFS và dịch vụ glusterd sẽ chạy. Bạn có thể kiểm tra bằng cách chạy lệnh sau trên mỗi 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

Tiếp theo, bạn cần cài đặt giao tiếp giữa gluster0gluster1 .

Để 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:

Output
peer 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:

Output
Number 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ượng replica . Đ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 ( 2 trong trường hợp của hướng dẫn này).
  • domain1.com:/…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ối volume1 . Ví dụ sau sẽ tạo một folder có tên là gluster-storage trong 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:

Output
volume 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:

Output
volume 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:

Output
Status 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. Dựa trên 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ả gluster0gluster1 để 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 hàng loạt 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

Bây giờ ổ đĩa của bạn đã được cấu hình , nó 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. 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 chung 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í:

Output
Filesystem                    1K-blocks    Used Available Use% Mounted on . . . gluster0.example.com:/volume1  50633164 1747596  48885568   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
Output
file_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
Output
file_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:

Output
volume 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
Output
Volume Name: volume1 Type: Replicate Volume ID: 8da67ffa-b193-4973-ad92-5b7fed8d0357 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
Output
Brick: 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
Output
Status 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ố.


Tags:

Các tin liên quan

Cách cài đặt và sử dụng TimescaleDB trên Ubuntu 20.04
2020-06-09
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 từ nguồn trên Ubuntu 20.04 [Quickstart]
2020-06-05
Cách cài đặt Git trên Ubuntu 20.04
2020-05-29
Cách cài đặt Jitsi Meet trên Ubuntu 18.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 và bảo mật Grafana trên Ubuntu 20.04
2020-05-28
Cách cài đặt và cấu hình Postfix trên Ubuntu 20.04
2020-05-21
Cách cài đặt Composer trên Ubuntu 20.04 [Quickstart]
2020-05-19