GlusterFS chia não không có con đường, nó có nghĩa là gì?


11

Tôi chỉ đang kiểm tra trạng thái của các khối glusterfs của tôi và tôi có một mục với các mục nhập tách rời không có đường dẫn:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Nó có nghĩa là gì? Làm thế nào để tôi sửa nó?

Tôi đang chạy GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git

Bạn chỉ sử dụng 2 máy chủ trong cụm của bạn?
Trẻ mồ côi

Câu trả lời:


8

Split-Brain là gì?

Như đã đề cập trong Tài liệu chính thức về Quản lý Split-Brain do RedHat cung cấp, split-brain là trạng thái khi dữ liệu hoặc tính không sẵn có bắt nguồn từ việc duy trì hai bộ dữ liệu riêng biệt có phạm vi chồng chéo, do máy chủ trong thiết kế mạng, hoặc một điều kiện thất bại dựa trên các máy chủ không liên lạc và đồng bộ hóa dữ liệu của họ với nhau. Và nó là một thuật ngữ áp dụng để nhân rộng cấu hình.

Hãy chú ý rằng "tình trạng lỗi dựa trên các máy chủ không liên lạc và đồng bộ hóa dữ liệu của họ với nhau" - do bất kỳ khả năng nào - nhưng điều đó không có nghĩa là các nút của bạn có thể mất kết nối. Peer có thể chưa thành cụm và được kết nối.

Các loại não tách:

Chúng tôi có ba loại não tách khác nhau, và theo như tôi có thể thấy thì bạn là não tách. Để giải thích ba loại não tách:

  • Bộ tách dữ liệu: Nội dung của tệp theo bộ chia tách là khác nhau trong các cặp bản sao khác nhau và tự động chữa bệnh là không thể.

  • Bộ chia siêu dữ liệu : , Siêu dữ liệu của các tệp (ví dụ: thuộc tính mở rộng do người dùng xác định) là khác nhau và tự động chữa bệnh là không thể.

  • Nhập bộ não: Nó xảy ra khi một tệp có các gfids khác nhau trên mỗi cặp bản sao.


GFID là gì?

Định danh tệp nội bộ GlusterFS (GFID) là một uuid là duy nhất cho mỗi tệp trên toàn bộ cụm. Điều này tương tự với số inode trong một hệ thống tập tin bình thường. GFID của một tệp được lưu trữ trong xattr của nó có tên trusted.gfid. Để tìm đường dẫn từ GFID, tôi khuyên bạn nên đọc bài viết chính thức này được cung cấp bởi GlusterFS.


Làm thế nào để giải quyết vấn đề tách não?

Có nhiều phương pháp để ngăn chặn sự phân tách xảy ra nhưng để giải quyết nó, các tệp gfid-link tương ứng phải được loại bỏ. Các tập tin liên kết gfid có trong thư mục .glusterfs trong thư mục cấp cao nhất của brick. Nhân tiện, hãy cẩn thận rằng trước khi xóa các liên kết gfid, bạn phải đảm bảo rằng không có liên kết cứng nào đến các tệp có trên gạch đó. Nếu liên kết cứng tồn tại, bạn phải xóa chúng. Sau đó, bạn có thể sử dụng quá trình tự phục hồi bằng cách chạy các lệnh sau.

Trong thời gian chờ đợi, để xem danh sách các tệp trên ổ đĩa ở trạng thái não tách bạn có thể sử dụng:

# gluster volume heal VOLNAME info split-brain

Bạn cũng nên cẩn thận rằng đối với các khối lượng được sao chép, khi một khối gạch ngoại tuyến và trở lại trực tuyến, cần phải tự phục hồi để đồng bộ lại tất cả các bản sao.

Để kiểm tra trạng thái chữa lành của khối lượng và tệp bạn có thể sử dụng:

# gluster volume heal VOLNAME info

Vì bạn đang sử dụng phiên bản 3.5, bạn không có chế độ tự động chữa bệnh. Vì vậy, sau khi thực hiện các bước được đề cập trước đó, Bạn cần kích hoạt tự phục hồi. Làm như vậy:

  • Chỉ trên các tập tin yêu cầu chữa bệnh:

    # gluster volume heal VOLNAME

  • Trên tất cả các tệp:

    # gluster volume heal VOLNAME full

Tôi hy vọng điều này sẽ giúp bạn thông qua việc khắc phục vấn đề của bạn. Xin vui lòng đọc các tài liệu chính thức để biết thêm thông tin. Chúc mừng.


2

Tôi nghĩ rằng tài liệu là khá rõ ràng, nó thậm chí còn cho bạn một ví dụ tương tự.

Và đối với các lệnh chữa bệnh của Glamesterfs như

khối lượng ánh sáng được chữa lành ** VOLNAME ** tách não mới nhất-mtime ** FILE **

FILE có thể là tên tệp đầy đủ như được nhìn thấy từ gốc của ổ đĩa (hoặc) biểu diễn chuỗi gfid của tệp

Vì vậy, bạn không cần phải lo lắng về điều đó.

Và như chuyển đổi GFID thành đường dẫn nói:

Định danh tệp nội bộ GlusterFS (GFID) là một uuid duy nhất cho mỗi tệp trên toàn bộ cụm.

kịch bản này có thể cho bạn biết tên tệp nào thuộc về gfid nào, nhưng sự phân tách não đã xảy ra, nó có thể không có tên tệp.

Bạn đang chạy 3.5 và không có cmd tự động chữa lành, vì vậy bạn có thể cần tự khắc phục xung đột bằng tay, điều này thường có nghĩa là quyết định tập tin gfid nào cần phải xóa.


Phiên bản Gluster của tôi dường như không có lệnh đó, nếu không, vâng, điều đó đơn giản. Ngoài ra, tôi không có tên tập tin, tôi có uuids.
Pupeno

2

Làm thế nào để tôi sửa nó?

Độ phân giải não có thể được tìm thấy ở đây . Trong trường hợp không giúp được gì nhiều, hướng dẫn cách làm ở đây sẽ thực hiện công việc. Đối với trường hợp, tôi thấy bài viết cũng hữu ích.

Làm thế nào để tránh Split-brain.

Bảo vệ chống lại các phân vùng mạng được thực hiện thông qua thuật toán bỏ phiếu đại biểu. Trong trường hợp máy chủ bị lỗi hoặc có một kịch bản phân tách trong đó các nút tiếp tục chạy nhưng không thể giao tiếp với nhau, nút hoặc nút còn lại trong cuộc đua cụm để đặt một đặt trước SCSI trên ổ đĩa chứng kiến. Trong trường hợp chia não, nhân chứng sẽ giúp quyết định ai trong số những người đang giữ một bản sao của dữ liệu sẽ nắm quyền kiểm soát.

Vài ví dụ.

VMware VSAN cho phép chạy cụm 2 nút với ổ nhân chứng chạy trên máy chủ thứ 3 hoặc trên đám mây. Nguồn

StarWind Virtual SAN chỉ chạy trong thiết lập 2 nút bằng dịch vụ Microsoft Failover Cluster, cũng có cơ chế bỏ phiếu đại biểu để tránh vấn đề tách não. Nguồn

Đối với cả hai, mạng Heartbeat được sử dụng để phục vụ / giám sát giao tiếp giữa các nút và đại biểu. Để tránh bị chia não, tôi thấy bắt buộc phải đi với các kênh Heartbeat dư thừa.


1

tách não xảy ra khi hai nút của một cụm bị ngắt kết nối. Mỗi nút nghĩ rằng nút kia không hoạt động.

chia não

Để khắc phục, bạn phải hiểu tại sao hai nút của bạn không nói chuyện với nhau nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.