Sau nhiều lần mày mò và thử nghiệm, tôi đã tìm ra giải pháp, mặc dù với một sự đánh đổi khá lớn.
Trước hết, các tùy chọn tôi phải loại trừ:
Có máy chủ ZFS ngoại vi thứ hai với nhóm nhân đôi không phải là một lựa chọn do chi phí. Nếu đây là một lựa chọn thì đây sẽ là cách tiếp cận tốt nhất, sử dụng gửi / nhận ZFS để gửi ảnh chụp nhanh đến nhóm từ xa.
Có một nhóm nhân đôi ZFS tại chỗ thứ hai, tôi có thể loại bỏ các đĩa để mang về nhà. Điều này khả thi hơn tùy chọn đầu tiên, nhưng tôi sẽ cần nhóm thứ hai luôn có hai đĩa tại chỗ (hoặc sử dụng hai bản sao dữ liệu trên một đĩa tại chỗ). Hiện tại tôi có bốn đĩa, và không còn chỗ cho một phần năm trong máy chủ. Đây sẽ là một cách tiếp cận công bằng nhưng vẫn không lý tưởng.
Sử dụng ZFS đính kèm và tách để xoay đĩa sao lưu vào và ra khỏi nhóm được nhân đôi. Điều này hoạt động tốt, nhưng phải thực hiện một bộ phục hồi đầy đủ mỗi khi đĩa được thêm vào. Điều này mất nhiều thời gian không thể chấp nhận được, và vì vậy tôi không thể dựa vào điều này.
Giải pháp của tôi tương tự như sử dụng attach
và detach
, tuy nhiên, nó sử dụng online
và offline
. Điều này có lợi thế là thực hiện khả năng phục hồi delta so với khả năng phục hồi hoàn toàn, nhưng nhược điểm là pool luôn báo cáo DEGRADED
trạng thái (pool luôn có hai đĩa; các đĩa ngoại vi quay được đánh dấu offline
khi chúng được lưu trữ từ xa và phục hồi sau đó trực tuyến khi họ đang ở trong khuôn viên).
Vì vậy, một bản tóm tắt nhanh chóng và tổng quan về thiết lập của tôi:
Tôi có một máy chủ ZFS và bốn đĩa giống hệt nhau. ZFS được thiết lập để sử dụng nhóm nhân đôi. Hai trong số bốn đĩa là thành viên thường trực của nhóm này. Hai đĩa còn lại xoay; một cái luôn ở trong bộ lưu trữ ngoại vi, cái kia là một phần của nhóm để hoạt động như một bản sao lưu sẵn sàng hoạt động.
Khi đến lúc phải xoay các bản sao lưu:
Tôi chờ đợi zfs scrub
để hoàn thành một cách hợp lý để đảm bảo đĩa sao lưu không có lỗi
Tôi zfs offline
đĩa sẽ được lấy từ xa. Sau khi ngoại tuyến, tôi hdparm -Y /dev/id
sẽ quay nó xuống. Sau một phút, tôi gỡ bỏ một phần đĩa trượt (vừa đủ để đảm bảo năng lượng bị mất) và sau đó cho nó thêm một phút trước khi kéo hoàn toàn ổ đĩa để đảm bảo nó đã ngừng quay. Đĩa đi trong một túi tĩnh và sau đó là một trường hợp bảo vệ và đi ra ngoài.
Tôi mang vào đĩa ngoại vi khác. Nó được cài đặt trong khay hotswap và quay lên. Tôi sử dụng zfs online
để khôi phục đĩa vào nhóm và khởi động lại một phần để phục hồi đồng thời.
Hệ thống này đảm bảo rằng tại bất kỳ thời điểm nào tôi cũng có hai ONLINE
đĩa nhân bản và một OFFLINE
đĩa từ xa (đã được lọc). Đĩa thứ tư hoặc được khôi phục hoặc trực tuyến, có lợi ích là trong trường hợp ổ đĩa bị hỏng, có lẽ nhóm sẽ vẫn nhất quán với hai đĩa trực tuyến.
Nó đã hoạt động tốt trong vài tuần qua, nhưng tôi vẫn coi đây là một cách tiếp cận hackish. Tôi sẽ theo dõi nếu tôi gặp phải bất kỳ vấn đề lớn nào.
Cập nhật: Sau khi chạy với điều này trong một vài tháng, tôi thấy rằng trong thế giới thực của mình, việc sử dụng lại sẽ mất cùng thời gian cho việc tách / đính kèm và ngoại tuyến / trực tuyến. Trong thử nghiệm của tôi, tôi không nghĩ rằng mình đang chạy chà - linh cảm của tôi là nếu một ổ đĩa ngoại tuyến cho một chà thì nó đòi hỏi phải có khả năng phục hồi hoàn toàn.