Điểm:1

Cần chia sẻ tệp có tính sẵn sàng cao đơn giản

lá cờ nc

Tôi đang tìm cách đơn giản nhất để chia sẻ một tệp theo cách có tính sẵn sàng cao giữa một cặp máy chủ linux. (Phiên bản và phân phối không quan trọng, tôi đang tìm giải pháp chung.)

Tôi có hai máy chủ, mỗi máy chủ có đĩa cục bộ và chia sẻ NFS và các dịch vụ khác giữa chúng. Tôi có một tệp mà cả hai máy chủ đều cần truy cập, nhưng không có gì khác ngoài những máy chủ đó cần truy cập tệp đó.

Nếu một trong hai máy chủ gặp sự cố, tôi muốn nội dung gần đây nhất có thể có của tệp đó có sẵn cho máy chủ còn lại. (Rõ ràng là máy chủ khác sẽ nhận các thay đổi khi khôi phục.)

Tệp này là một tệp trạng thái và có khả năng chỉ một máy chủ tại một thời điểm sẽ ghi vào tệp đó. Kích thước tệp trạng thái không xác định, nhưng nhỏ. Có lẽ là giữa 1 khối và 2M. Có thể kích thước của tệp trạng thái sẽ tăng lên tùy thuộc vào thời gian ngừng hoạt động.

Nếu không thêm phần cứng bên ngoài, có những tùy chọn nào để chia sẻ tệp có tính sẵn sàng cao như thế này?

djdomi avatar
lá cờ za
có hạn chế nào nên sử dụng giao thức không?
user10489 avatar
lá cờ nc
Hạn chế là tôi không muốn thêm phần cứng (chẳng hạn như iscsi nas) và các dịch vụ hiện có không thể bị gián đoạn. Chẳng hạn, nó có thể sử dụng NFS, nhưng tôi không muốn xáo trộn NFS đến mức các máy khách khác trong cụm gặp sự cố khi sử dụng NFS. Tôi hy vọng nhận được nhiều tùy chọn mà tôi có thể chọn, vì tôi biết có các hệ thống tệp HA, nhưng hầu hết các hệ thống tệp tôi đã xem đều có thiết lập khá phức tạp, hoàn toàn là quá mức cần thiết cho ứng dụng này.
djdomi avatar
lá cờ za
bạn có thể thêm kích thước của tệp không, nếu đây là thứ duy nhất được đồng bộ hóa?
djdomi avatar
lá cờ za
Tôi cũng đã quan tâm đến câu hỏi này, liệu tôi có nhiệm vụ tương tự trong tương lai không, tôi đã tìm thấy tác giả quan tâm trên [StackExchange](https://unix.stackexchange.com/questions/307046/real-time-file-synchronization)
user10489 avatar
lá cờ nc
@djdomi: thật thú vị. Nó có thể hoạt động, nhưng ứng dụng này khá mơ hồ về cách nó sử dụng tệp trạng thái mà tôi không biết liệu ứng dụng này có hoạt động hay không. Nếu nó đang khóa hoặc IPC khác trên tệp trạng thái, điều này có thể bị hỏng. Nếu không có giải pháp nào tốt hơn, tôi sẽ phải thử nghiệm điều đó.
djdomi avatar
lá cờ za
thông thường trên linux sẽ không có tệp nào bị khóa không giống như windows trong tâm trí của tôi - đó là loại tệp gì?
user10489 avatar
lá cờ nc
Linux hỗ trợ đầy đủ tính năng khóa tệp tư vấn, giống như windows. Chỉ có ít ứng dụng sử dụng nó hơn.
djdomi avatar
lá cờ za
tôi không nói rằng nó không hỗ trợ nó, không chắc là nó đang làm điều đó;) tuy nhiên đã tìm thấy một công cụ thứ hai như [bsync](https://github.com/dooblem/bsync)
user10489 avatar
lá cờ nc
bsync trông thô và quá mức cần thiết. Và tôi đồng ý rằng không có khả năng sử dụng khóa tệp, nhưng tôi phải nghiên cứu (hoặc thử nghiệm) điều đó để tìm hiểu.
djdomi avatar
lá cờ za
miễn là bạn không nói ra sự thật về hồ sơ của mình, tôi chỉ có thể đưa ra các mẹo và cố gắng tìm thứ gì đó trong quả cầu thủy tinh của mình;)
user10489 avatar
lá cờ nc
Nhìn lại, lsyncd và bsync rất giống nhau, tôi chưa thể loại trừ những điều này.
user10489 avatar
lá cờ nc
@djdomi: Tôi đã xem xét một số giải pháp dựa trên rsync và chúng thực sự giải quyết được vấn đề tương tự mà tôi gặp phải, nhưng không phải vấn đề này. Nếu bạn đặt nó làm câu trả lời với các liên kết đến các biến thể rsync khác nhau, thì ít nhất tôi cũng sẽ bỏ phiếu cho nó, nhưng tôi nghĩ rằng tôi thực sự muốn có một hệ thống tệp theo điều này hơn là một dịch vụ đồng bộ hóa tệp.
Điểm:1
lá cờ cn

Nếu cặp máy chủ đang chạy nóng-lạnh (nghĩa là chỉ một trong số chúng truy cập tệp tại một thời điểm), DRBD là một cách nhanh chóng và ổn định để hoàn thành mục tiêu của bạn. DRBD được thiết kế với các biện pháp bảo vệ tách não tại chỗ, vì vậy nó phải "đủ tốt".

Một giới thiệu ngắn gọn từ trang DRBD:

Distributed Replicated Block Device (DRBD) là một thiết bị dựa trên phần mềm, giải pháp lưu trữ nhân rộng, không chia sẻ, phản ánh nội dung của chặn các thiết bị (đĩa cứng, phân vùng, ổ đĩa logic, v.v.) giữa máy chủ.

Dữ liệu phản chiếu DRBD

  • trong thời gian thực. Sao chép xảy ra liên tục trong khi các ứng dụng sửa đổi dữ liệu trên thiết bị.
  • minh bạch. Các ứng dụng không cần biết rằng dữ liệu được lưu trữ trên nhiều máy chủ.
  • đồng bộ hoặc không đồng bộ. Với phản chiếu đồng bộ, các ứng dụng được thông báo về việc hoàn thành ghi sau khi ghi có được thực hiện trên tất cả các máy chủ. Với phản chiếu không đồng bộ, các ứng dụng được thông báo về việc hoàn thành ghi khi ghi có hoàn thành cục bộ, thường là trước khi chúng lan truyền đến các máy chủ khác.

Vì đây là bản sao cấp khối nên bạn sẽ cần một chút cấu hình bổ sung.Ví dụ: bạn phải tạo một hệ thống tệp trên đầu thiết bị được sao chép và bạn cần gắn hệ thống tệp đó. Cấu hình được đề xuất mặc định chỉ cho phép một máy chủ gắn kết hệ thống tệp (để tránh tình huống chia não), do đó bạn chỉ có thể truy cập dữ liệu trên một nút tại một thời điểm.

Toàn bộ quá trình là tài liệu tốt và cũng có một số hướng dẫn dễ dàng có sẵn.

Nếu bạn thích tự động hóa hơn, Máy tạo nhịp tim + DRBD là một sự kết hợp rất phổ biến, nó thậm chí còn được ghi lại trong hướng dẫn máy tạo nhịp tim đó cũng là một phần giới thiệu hay về DRBD.

Tái bút buồn cười làm sao hướng dẫn máy tạo nhịp tim cho DRBD Tôi đã liên kết ở trên mô tả gần như hoàn hảo câu hỏi của bạn.

Ngay cả khi bạn đang phục vụ các trang web tĩnh, việc phải tự đồng bộ hóa nội dung của trang web đó với tất cả các máy trong cụm không lý tưởng. Đối với các trang web động, chẳng hạn như wiki, nó không thậm chí là một lựa chọn. Không phải ai cũng có đủ khả năng lưu trữ gắn mạng, nhưng bằng cách nào đó, dữ liệu cần được giữ đồng bộ.

Nhập DRBD, có thể được coi là RAID-1 dựa trên mạng.

user10489 avatar
lá cờ nc
DRDB thực sự là giải pháp đầu tiên mà tôi đã xem xét và từ chối vài tháng trước. Nhìn bề ngoài, nó trông thực sự tốt, nhưng khi tôi bắt đầu làm việc với sự phức tạp của việc thực sự thiết lập nó, với tính năng chuyển đổi dự phòng nóng hoán đổi các bản xuất NFS và sự xáo trộn tổng thể của NFS để hỗ trợ chuyển đổi dự phòng nóng, tôi thấy nó quá phá vỡ các NFS khác khách hàng không quan tâm đến trạng thái chuyển đổi dự phòng nóng, cộng với sự phức tạp quá mức khác.
user10489 avatar
lá cờ nc
Tái bút: Dù sao thì hãy bỏ phiếu cho điều này vì nó thường giống như một giải pháp tốt.
lá cờ cn
Tôi đồng ý rằng việc thực hiện NFS trên DRBD có thể rất mệt mỏi (khó có thể ngừng truy cập vào điểm gắn kết để có thể hạ thiết bị DRBD xuống). Nhưng đối với trường hợp sử dụng của bạn, bạn có thể sử dụng gắn kết cục bộ mà không cần bất kỳ NFS nào. Một hệ thống tệp trên DRBD mà bạn gắn kết khi cần.
user10489 avatar
lá cờ nc
Hệ thống tệp luôn cần thiết, bởi vì ứng dụng sẽ luôn mở tệp, ngay cả khi nó không phải là tệp chính và không ghi.
lá cờ cn
Đã đồng ý. DRBD chỉ tốt cho thiết lập nóng-lạnh, trong đó "nguội" ngụ ý rằng ứng dụng không chạy. Máy tạo nhịp tim giúp tự động hóa một số trong số này (tức là gắn hệ thống tệp trước khi mở ứng dụng). Có vẻ như không phải là một giải pháp cho trường hợp sử dụng của bạn.
Điểm:1
lá cờ cn

Có rất nhiều giải pháp - đối với một tệp, tôi có thể sẽ sử dụng GlusterFS - nhưng tôi nghĩ rằng bạn nên có 3 máy chủ cho số đại biểu cần thiết hoặc bạn sẽ phải giải quyết vấn đề chia rẽ khi khôi phục. Bạn sẽ có thể cài đặt nó dễ dàng trên mọi bản phân phối phổ biến và định cấu hình nó không quá một giờ.

user10489 avatar
lá cờ nc
Tôi sẽ tặng phần thưởng cho điều này mà không nhận nó ngay bây giờ. Tôi đã xem xét hai giải pháp được đề xuất khác và thấy chúng phù hợp, nhưng tôi không thể chấp nhận giải pháp này cho đến khi tôi thử nó. Nếu tôi dùng thử và thấy nó dễ thiết lập và nó hoạt động, tôi sẽ chấp nhận.
Kszysiu avatar
lá cờ cn
Nếu bạn sử dụng giải pháp drbd, bạn sẽ cần thiết lập cấu hình chính kép (theo ý kiến ​​​​của tôi, nút thứ ba vẫn cần thiết - nếu không, bạn có thể có splitbrain nếu xảy ra sự cố mạng), và sau đó là một số loại hệ thống tệp nhóm (nếu bạn muốn gắn kết nó ở 2 nơi cùng một lúc) - bạn không thể sử dụng ext/xfs cổ điển hoặc bất kỳ hệ thống tệp nào khác. Nếu bạn muốn sử dụng hệ thống tệp cổ điển, thì bạn chỉ phải gắn nó vào một nơi vào thời điểm đó và sử dụng nfs hoặc thứ gì đó để gắn nó trên máy chủ thứ hai. Bạn cần một số thiết bị khối miễn phí (hoặc lvm) để sử dụng drbd. Có rất nhiều lớp mà thứ gì đó có thể bị lỗi.
user10489 avatar
lá cờ nc
Khi thử nghiệm, hóa ra ứng dụng của tôi thực sự không muốn NFS vì lý do hiệu suất (quá nhiều độ trễ). GlusterFS mang lại sự cân bằng tốt giữa hiệu suất cục bộ và đồng bộ hóa từ xa, không có sự cố đồng bộ hóa bị trì hoãn nào mà giải pháp loại rsync có thể gây ra.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.