Tránh SPOFS với GlusterFS và Windows


10

Chúng tôi có một cụm GlusterFS mà chúng tôi sử dụng cho chức năng xử lý của mình. Chúng tôi muốn tích hợp Windows vào nó, nhưng đang gặp một số khó khăn khi tìm ra cách tránh sự cố đơn điểm là máy chủ Samba phục vụ âm lượng GlusterFS.

Luồng tệp của chúng tôi hoạt động như thế này:

Luồng tài liệu GlusterFS

  1. Các tệp được đọc bởi một nút xử lý Linux.
  2. Các tập tin được xử lý.
  3. Kết quả (có thể nhỏ, có thể khá lớn) được ghi lại vào tập GlusterFS khi chúng được thực hiện.
    • Kết quả có thể được ghi vào cơ sở dữ liệu thay thế hoặc có thể bao gồm một số tệp có kích thước khác nhau.
  4. Nút xử lý chọn một công việc khác ngoài hàng đợi và GOTO 1.

Gluster là tuyệt vời vì nó cung cấp một khối lượng phân tán, cũng như sao chép ngay lập tức. Khả năng phục hồi thảm họa là tốt đẹp! Chúng tôi thích nó.

Tuy nhiên, vì Windows không có máy khách GlusterFS riêng, chúng tôi cần một số cách để các nút xử lý dựa trên Windows của chúng tôi tương tác với kho lưu trữ tệp theo cách tương tự. Các tiểu bang GlusterFS tài liệu rằng cách để cung cấp truy cập Windows là để thiết lập một máy chủ Samba trên đỉnh của một khối lượng gắn GlusterFS. Điều đó sẽ dẫn đến một luồng tập tin như thế này:

GlusterFS doc-Flow qua Winders

Điều đó có vẻ như là một điểm thất bại đối với tôi.

Một tùy chọn là phân cụm Samba , nhưng dường như dựa trên mã không ổn định ngay bây giờ và do đó không hoạt động.

Vì vậy, tôi đang tìm kiếm một phương pháp khác.

Một số chi tiết chính về các loại dữ liệu chúng tôi ném xung quanh:

  • Kích thước tệp gốc có thể ở bất kỳ đâu từ vài KB đến hàng chục GB.
  • Kích thước tệp được xử lý có thể ở bất kỳ đâu từ vài KB đến GB hoặc hai.
  • Một số quy trình, chẳng hạn như đào trong tệp lưu trữ như .zip hoặc .tar có thể khiến RẤT NHIỀU ghi thêm khi các tệp được chứa được nhập vào kho lưu trữ tệp.
  • Số lượng tập tin có thể vào 10 triệu.

Khối lượng công việc này không hoạt động với thiết lập Hadoop "kích thước công việc tĩnh". Tương tự, chúng tôi đã đánh giá các cửa hàng đối tượng kiểu S3, nhưng thấy chúng thiếu.

Ứng dụng của chúng tôi là tùy chỉnh được viết bằng Ruby và chúng tôi có môi trường Cygwin trên các nút Windows. Điều này có thể giúp chúng tôi.

Một tùy chọn tôi đang xem xét là một dịch vụ HTTP đơn giản trên một cụm máy chủ có gắn khối lượng GlusterFS. Vì tất cả những gì chúng tôi đang làm với Gluster về cơ bản là các hoạt động GET / PUT, có vẻ như có thể dễ dàng chuyển sang phương thức truyền tệp dựa trên HTTP. Đặt chúng phía sau một cặp cân bằng tải và các nút Windows có thể HTTP PUT với nội dung trái tim nhỏ màu xanh của chúng.

Những gì tôi không biết là làm thế nào sự gắn kết của GlusterFS sẽ được duy trì . Lớp proxy HTTP giới thiệu đủ độ trễ giữa khi nút xử lý báo cáo rằng nó được thực hiện bằng ghi và khi nó thực sự hiển thị trên ổ đĩa GlusterFS, tôi lo lắng về các giai đoạn xử lý sau này khi cố gắng lấy tệp sẽ không tìm nó. Tôi khá chắc chắn rằng việc sử dụng direct-io-mode=enabletùy chọn gắn kết sẽ giúp ích, nhưng tôi không chắc liệu điều đó có đủ không . Tôi nên làm gì khác để cải thiện sự gắn kết?

Hay tôi nên theo đuổi một phương pháp khác hoàn toàn?


Như Tom chỉ ra dưới đây, NFS là một lựa chọn khác. Vì vậy, tôi đã chạy thử nghiệm. Vì các tệp được đề cập ở trên có tên do khách hàng cung cấp mà chúng tôi cần giữ và có thể đến bằng bất kỳ ngôn ngữ nào, chúng tôi cần phải giữ nguyên tên tệp. Vì vậy, tôi đã xây dựng một thư mục với các tệp này:

Thư mục NFS có tên hay, trên máy chủ

Khi tôi gắn kết nó từ hệ thống Server 2008 R2 đã cài đặt Máy khách NFS, tôi nhận được một danh sách thư mục như thế này:

Thư mục NFS có tên xấu, trên máy khách

Rõ ràng, Unicode không được bảo tồn. Vì vậy, NFS sẽ không làm việc cho tôi.


Tôi tin rằng nhóm Samba coi ctdbổn định và sẵn sàng cho việc sử dụng sản xuất và câu đầu tiên trong liên kết bạn đưa ra làm cho câu thứ hai không hợp lệ vì nếu không bao giờ được cập nhật. Tôi đã lên kế hoạch thiết lập điều này, nhưng trước khi tôi nhận được điều này, tôi đã chuyển việc sang một môi trường gần như không có cửa sổ.
Sven

Phiên bản nào của windows bạn đang xem bằng cách sử dụng?
Tom O'Connor

@ TomO'Connor Như thẻ nói, Windows 7. Mặc dù vậy, Server 2008 R2 sẽ có mặt ở đó vào một lúc nào đó.
sysadmin1138

Tôi cho rằng Cygwin ra khỏi câu hỏi?
Tom O'Connor

Câu trả lời:


5

Tôi thích GlusterFS. Thật ra, tôi hâm mộ GlusterFS. Miễn là bạn có thể cung cấp cho nó một số băng thông chuyên dụng thì mọi thứ đều ổn.

Một trong những điều tốt nhất về GlusterFS là sử dụng nó với NFS. Một trong những điều đáng ngạc nhiên mà tôi đã làm việc gần đây là NFS trên Windows 7 và 2k8R2 .

Đây là những gì tôi sẽ làm.

  1. Thiết lập 2 máy chủ GlusterFS có thể xuất NFS.
  2. Thiết lập một liên kết nhịp tim giữa chúng.
  3. Triển khai một cái gì đó như Heartbeat / Pacemaker có lẽ?
  4. Thiết lập IP ảo (VIP) giữa các nút Gluster của bạn.
  5. Kết nối các ổ đĩa được ánh xạ của Windows boxen bằng địa chỉ IP của VIP.
  6. Kiểm tra mọi thứ bạn có thể tưởng tượng.

Phân cụm Samba nghe có vẻ đáng sợ và ngay cả khi bạn làm điều đó, Samba vẫn thiếu khả năng hành xử đáng tin cậy trong một số mạng windows (tất cả khả năng tương thích miền NT4, dường như không bao giờ có thể vượt qua điều đó).

Tôi nghĩ rằng vì mỗi nút ánh sáng ở chế độ phân tán, được sao chép nên về mặt lý thuyết bạn có thể kết nối với một trong hai và cho phép nó lo lắng về việc di chuyển dữ liệu của bạn. Do đó, nhịp tim sẽ là thứ thực hiện chuyển hướng và kiểm soát người mà bạn đang nói chuyện.

Còn đối với bạn

  • Số lượng tập tin có thể vào 10 triệu.

Tôi khuyên bạn nên điều tra bằng XFS làm hệ thống tệp cơ bản, vì nó khá tốt với các hệ thống tệp lớn và được hỗ trợ trong GlusterFS


Tôi hiện đang sử dụng XFS! Chúng tôi đã xem xét NFS3 một lúc trước để xử lý chức năng nhập liệu ban đầu nhưng nó tỏ ra không khả thi do thiếu hỗ trợ Unicode. Đây là với máy chủ NFS trên Windows. "2012.xls" sẽ không hiển thị chính xác và điều đó rất quan trọng. Nhưng ... tôi không biết rằng khoảng 7 / R2, và đáng để điều tra!
sysadmin1138

Vì vậy, tôi đã chạy thử nghiệm. Thật không may, nó đã không trả lại kết quả tốt (xem cập nhật về câu hỏi). Có vẻ như vấn đề Unicode là hai chiều.
sysadmin1138

Bugger. Tôi hết ý tưởng rồi. Tôi tự hỏi nếu bạn có thể đặt Samba đằng sau một VIP.
Tom O'Connor

Nhóm làm việc có, Tên miền (mà chúng tôi đang sử dụng) không. Vì vậy, vấn đề của tôi.
sysadmin1138

Mặt khác, sau khi trò chuyện với các nhà phát triển, việc giữ tên tệp không quá quan trọng như tôi mong đợi. Rõ ràng, miễn là chúng ta có thể có được chúng trong giai đoạn đầu tiên (nhập) cơ sở dữ liệu sẽ theo dõi tên. Vì vậy, NFS là một tùy chọn hợp lệ ở đây (một khi chúng tôi có được các phiên bản Windows phù hợp).
sysadmin1138

1

Có lẽ bạn có thể nghĩ trong giải pháp HA ... sử dụng LDAP để xác thực (nó có thể được sao chép như nhiều máy chủ LDAP bạn muốn) và đặt IP để nghe các dịch vụ SMB.

IP này sẽ được thả nổi trên máy chủ chính. Khi điều này không hoạt động, Heartbeat có thể bắt đầu dịch vụ trên máy chủ thứ hai.

Máy chủ này sẽ có một điểm gắn kết với glusterfs, và sau đó tất cả dữ liệu sẽ ở đó.

Đó là một giải pháp khả thi và thật dễ dàng để quản lý ...

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.