Di chuyển hệ thống tập tin ZFS từ nhóm này sang nhóm khác


18

Tôi đang mở rộng một máy chủ Solaris 10 U8 với một kho lưu trữ bổ sung ngoài rpool gốc.

Cách hiệu quả / đơn giản / đáng tin cậy nhất để di chuyển (các) hệ thống tệp ZFS cụ thể từ rpool sang nhóm lưu trữ mới này là gì?

Nó có thể được thực hiện trực tuyến hay tôi nên tắt các dịch vụ bằng cách sử dụng các nhóm này trước?

Câu trả lời:


15

Câu hỏi về việc vô hiệu hóa dịch vụ về cơ bản phụ thuộc vào chính các dịch vụ:

  • Họ có chủ động viết vào hệ thống tập tin mà bạn dự định di chuyển không?
  • Có phải họ đang lưu trữ dữ liệu liên tục mà bạn muốn giữ.

Trong mọi trường hợp, việc gửi một hệ thống tệp ZFS có thể mất nhiều thời gian. Có thể giảm thiểu tình trạng không có dịch vụ bằng cách giữ chúng trực tuyến hầu hết thời gian theo cách đó:

  • tạo ảnh chụp nhanh
  • gửi ảnh chụp nhanh theo cách được đề xuất trước đó nhưng trong khi vẫn giữ tất cả các dịch vụ hoạt động
  • khi fs được nhận trên nhóm khác, hãy vô hiệu hóa các giới hạn dịch vụ quan trọng đối với hệ thống tệp đó. Đảm bảo hệ thống tệp mới trên nhóm đích không bị sửa đổi vì dù sao các thay đổi sẽ bị loại bỏ sau này.
  • tạo ảnh chụp nhanh thứ hai (ví dụ: snapshot2)
  • gửi ảnh chụp nhanh thứ hai đó tăng dần, sẽ nhanh hơn nhiều lần chuyển trước đó. ví dụ:

    zfs gửi -i rpool / filesystem @ snapshot rpool / filesystem @ snapshot2 | zfs nhận -F Destinationpool / hệ thống tập tin

  • khi hoàn tất, di chuyển điểm gắn kết hệ thống tập tin từ tập dữ liệu cũ sang tập dữ liệu mới. ví dụ:

    zfs set mountpoint=/application/directory.old rpool/filesystem
    

    zfs đặt mountpoint = / application / thư mục đích / hệ thống tập tin

Bạn cần đảm bảo không có quá trình nào bị ràng buộc /application/filesystem(ví dụ: truy cập các tệp hoặc có nó làm thư mục hiện tại) để đạt được điều đó.

  • kích hoạt lại (các) dịch vụ và bạn đã hoàn tất.

10

Tôi không nghĩ rằng điều này có thể được thực hiện trực tuyến, nhưng quá trình của tôi sẽ là tắt các dịch vụ cần thiết, chụp ảnh nhanh và sử dụng gửi / nhận zfs để thực hiện di chuyển. Cái gì đó như:

zfs send rpool/filesystem@snapshot | zfs receive destinationpool/filesystem

Biên tập:

Nếu bạn cài đặt lệnh "xem ống" (pv), bạn có thể theo dõi trạng thái chuyển với:

zfs send rpool/filesystem@snapshot | pv | zfs receive destinationpool/filesystem

10

Tôi đang lặp lại nhiều điều jlliagre đã nói, nhưng với những bổ sung cho hệ thống tập tin hậu duệ. (Chủ yếu là vì vậy tôi có một tài liệu tham khảo khi tôi quên.)

Nếu bạn có hệ thống tập tin con, bạn sẽ muốn sử dụng -rcờ trên lệnh chụp nhanh zfs và cờ -rhoặc -Rtrên zfs sendlệnh. Chữ hoa -Rdi chuyển tất cả các thuộc tính , ảnh chụp nhanh và bản sao.

Để di chuyển toàn bộ hồ bơi:

zfs snapshot -r sourcepool@moving
zfs send -R sourcepool@moving | zfs receive -F destpool

sau đó để đồng bộ hóa các thay đổi trong thời gian di chuyển ngắn hơn, tắt các ứng dụng, tắt samba, nfs

zfs snapshot -r sourcepool@moving2
zfs send -Ri sourcepool@moving sourcepool@moving2 | zfs receive -F destpool

Nếu bạn đang tạo nhiều ảnh chụp nhanh trung gian cho việc di chuyển, hãy đọc trang hướng dẫn về công zfs send -Itắc.


3
Trong các thử nghiệm của tôi, lệnh chính xác dường như là: zfs send -R Pool0 @ di chuyển | zfs nhận -dF Pool1
TinkerTank

4

Bạn cũng sẽ tìm thấy một số lợi ích trong việc sử dụng một công cụ như "mbuffer" trong đường ống; rõ ràng hiệu suất gửi / recv của ZFS cải thiện đáng kể nếu cả hai đầu chủ yếu có thể truyền dữ liệu liên tục và không có mbuffer (hoặc một cái gì đó tương tự), bạn sẽ có được hiệu ứng bóng bàn trong đó một đầu liên tục chặn trên đầu kia.


Xin lưu ý rằng đây là một câu hỏi rất cũ (hơn 5 năm) và câu trả lời của bạn không có khả năng thêm bất cứ điều gì vào một câu hỏi cũ.
Catherine MacInnes

1
Đây là lời khuyên tuyệt vời và tôi cũng sử dụng nó cho việc di chuyển hồ bơi.
Dan Buhler
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.