Sử dụng nút đầu ZFS làm máy chủ cơ sở dữ liệu?


9

Tôi đang sử dụng NAS hỗ trợ ZFS hai đầu để lưu trữ chia sẻ cụm khả dụng cao, dựa trên kiến ​​trúc được đề xuất của Nexenta như được thấy ở đây:

nhập mô tả hình ảnh ở đây

Các đĩa trong 1 JBOD sẽ lưu trữ các tệp cơ sở dữ liệu cho cơ sở dữ liệu Postgres 4 TB duy nhất và các đĩa trong JBOD khác lưu trữ 20 TB tệp phẳng nhị phân thô lớn (kết quả cụm cho mô phỏng va chạm đối tượng sao lớn). Nói cách khác, JBOD sao lưu các tệp Postgres sẽ xử lý chủ yếu khối lượng công việc ngẫu nhiên trong khi JBOD sao lưu kết quả mô phỏng sẽ xử lý chủ yếu các khối lượng công việc nối tiếp. Cả hai nút đầu có bộ nhớ 256 GB và 16 lõi. Cụm có khoảng 200 lõi mỗi lõi duy trì một phiên Postgres, vì vậy tôi mong đợi khoảng 200 phiên đồng thời.

Tôi tự hỏi liệu có khôn ngoan trong thiết lập của mình để các nút đầu ZFS hoạt động đồng thời như một cặp máy chủ cơ sở dữ liệu Postgres được nhân đôi cho cụm của tôi không? Những nhược điểm duy nhất tôi có thể thấy là:

  1. Ít linh hoạt hơn để mở rộng cơ sở hạ tầng của tôi.
  2. Mức độ dư thừa thấp hơn một chút.
  3. Bộ nhớ và tài nguyên CPU hạn chế cho Postgres.

Tuy nhiên, lợi thế tôi thấy là ZFS khá ngu ngốc về chuyển đổi dự phòng tự động và tôi không phải mất nhiều công sức để mỗi máy chủ cơ sở dữ liệu Postgres tìm ra nếu một nút đầu bị hỏng vì nó sẽ thất bại cùng với đầu nút.


PostgreQuery không thể chạy ở bất kỳ dạng chế độ lưu trữ chia sẻ nào. Nỗ lực để làm như vậy sẽ thất bại. Nỗ lực bỏ qua các biện pháp bảo vệ để ngăn bạn thực hiện (như di chuyển / ẩn postmaster.pid) sẽ dẫn đến tham nhũng dữ liệu nghiêm trọng.
Craig Ringer

2
@CraigRinger Hừm, điều này có mâu thuẫn với wiki.postgresql.org/wiki/Shared_Storage không?
elleciel

1
Bạn có thể chạy nó nếu bạn hoàn toàn đảm bảo rằng chỉ có một người quản lý bưu điện có thể truy cập vào thư mục dữ liệu cùng một lúc. STONITH tốt / đấu kiếm là một yêu cầu tuyệt đối để tránh tham nhũng dữ liệu lớn. Cá nhân tôi không có cách nào để làm điều đó. Điều này cũng giúp loại bỏ những lợi ích mà bạn đang nói đến - tìm ra máy chủ chính / máy chủ trực tiếp, v.v. - bởi vì bạn phải quản lý chuyển đổi dự phòng.
Craig Ringer

2
Tôi đã sửa đổi trang wiki để làm cho nó rõ ràng hơn; Cảm ơn đã chỉ ra điều đó.
Craig Ringer

1
Điều này không có ý nghĩa. Giải pháp HA của Nexenta đang tận dụng phân cụm RSF-1 . Có vẻ như bạn đang làm điều này với ZFS trên Linux mà không có mảnh RSF-1. Xin lưu ý, ZFS trên Linux không thực sự có tùy chọn phân cụm, vì vậy tham chiếu Nexenta không áp dụng. Bạn phải đạt được gì khi có hai nút đầu?
ewwhite

Câu trả lời:


0

Bạn không thể có hai trường hợp Postgres ("cụm" trong thuật ngữ Postgres) hoạt động trên cùng một tệp vật lý.

nếu bạn muốn hiệu suất, shending có thể giúp bạn (mỗi trường hợp có hai trường hợp mang dữ liệu khác nhau)

Nếu bạn muốn tính sẵn sàng cao thì việc chuyển đổi dự phòng với STONITH có thể là giải pháp. bạn cần chắc chắn rằng sau đó phần cứng đã được sửa chữa, nó không thử mở cơ sở dữ liệu trong khi nút thứ hai đang phục vụ nó.

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.