Khôi phục nhóm ZFS sau khi tạo qua nó


2

Tôi đã cài đặt lại hệ thống Ubuntu 14.04 của mình và cố gắng gắn ổ đĩa zfs hiện có của mình. Đó là một ổ đĩa duy nhất có tất cả dữ liệu trên đó. HĐH nằm trên một ổ đĩa khác, ổ zfs chỉ chứa dữ liệu.

Tên hồ bơi là crystal.

Trong sự vội vàng của tôi (vâng.) Tôi đã làm zpool create crystal /dev/disk-by-id/...etc...

Hiện tại hồ bơi trống rỗng.

Có cách nào để khôi phục nhóm ban đầu và / hoặc lấy dữ liệu không?

Câu trả lời:


1

Không may: Không thật sự lắm.

Có, đôi khi không có chủ ý, chủ yếu là hai hoạt động phá hoại trong ZFS: zfs destroyzpool create. Cụ thể là lệnh zpool destroy không phải phá hoại, và trên thực tế là khá dễ dàng đảo ngược nếu bạn chỉ nhận ra sai lầm của mình một cách nhanh chóng; nó chỉ đơn giản là đặt cờ, trong trường hợp đó zpool import -D là bạn của bạn.

Các lệnh này có tính hủy diệt vì các lý do tương tự, nhưng hơi khác nhau:

  • zfs destroy là phá hoại vì nó loại bỏ các tham chiếu đến tập dữ liệu đang bị hủy, vì vậy không có cách nào tìm thấy nó trên đĩa bằng bất kỳ công cụ tiêu chuẩn nào. (Nhưng cũng thấy câu hỏi này .)
  • zpool create là phá hoại vì nó ghi đè lên tất cả các überblocks của pool, điều đó có nghĩa là không có cách nào để mã ZFS tìm thấy sự khởi đầu của cấu trúc dữ liệu cây Merkle trên đĩa. Một khi gốc của cây không thể được tìm thấy, phần còn lại của dữ liệu sẽ không thể truy cập được.

Cả hai đều bị làm trầm trọng thêm bởi định dạng trên đĩa phức tạp của ZFS, điều này làm phức tạp thêm bất kỳ nỗ lực phục hồi nào. Với hầu hết các tập tin hệ thống tập tin khác sẽ nói chung là tiếp giáp nhau, hoặc trong một số ít địa điểm khác biệt. Với ZFS, dữ liệu hoàn toàn có thể được lan truyền trên toàn bộ đĩa, không còn lại gì sau một trong hai lệnh trên để chỉ ra phần nào thuộc về nơi nào. Để làm cho vấn đề trở nên tồi tệ hơn, bạn chắc chắn đang tìm kiếm các khối dữ liệu nén và có thể cho những thứ như dữ liệu bị trùng lặp. (Sự trùng lặp không có khả năng trong kịch bản của bạn, nhưng chắc chắn đó là một khả năng trong trường hợp chung.)

có thể có thể tranh thủ một số chuyên gia ZFS trong việc khôi phục dữ liệu của bạn, nhưng các dịch vụ khôi phục dữ liệu thông thường dường như không thể giúp bạn tại thời điểm này và phần mềm khôi phục hệ thống tệp có sẵn thường không hiểu ZFS. Giả sử bạn có thể tìm thấy những người sẵn sàng làm việc với bạn, nó cũng sẽ rất đắt; Tôi đã thấy đề cập đến giá cả bắt đầu trong phạm vi năm chữ số cho các kịch bản tương tự.

Sự lựa chọn tốt nhất của bạn tại thời điểm này có lẽ là khôi phục bản sao lưu dữ liệu gần đây của bạn và tiếp tục với cuộc sống.

Tôi thực sự có một chút bối rối tại sao bạn có thể ghi đè lên nhóm bằng một lệnh giống như lệnh được nêu trong câu hỏi của bạn. Trên hệ thống của tôi, với ZFS Trên Linux 0.6.4, đã xây dựng một kịch bản tương tự, zpool từ chối create hoạt động với lỗi "đặc tả vdev không hợp lệ" cho biết thiết bị sao lưu is part of exported pool '...'. Bạn nên có một lỗi tương tự, trừ khi bạn thông qua rõ ràng -f để zpool buộc hoạt động, trong trường hợp bạn đang nói với ZFS rằng có, bạn thực sự thực sự thực sự muốn để làm điều này. Mà đặc biệt trong trường hợp ZFS thường là không phải bạn muốn làm gì.


Tôi có thể có hoặc không có thêm -f (vâng, vâng, tôi đã làm. Đôi khi tôi không được phép ở gần máy tính.)
remmelt

@remmelt Vâng, trong trường hợp đó, tôi xin lỗi. Tôi hy vọng bạn đã có một bản sao lưu gần đây.
a CVn

Thử nhập zpool -D ít nhất để xem liệu có siêu dữ liệu nào vẫn có thể được nhận ra không. Nếu không, bạn sẽ không gặp may trừ khi bạn thích dành hàng tháng để mã hóa phần mềm khôi phục dữ liệu ZFS của riêng bạn.
qasdfdsaq

@qasdfdsaq Vấn đề là tình hình của OP là một nhóm đĩa đơn đã được zpool create d trên đầu trang. Bất kỳ siêu dữ liệu nào mà các công cụ tiêu chuẩn sẽ có thể tìm thấy tại thời điểm đó sẽ liên quan đến nhóm mới được tạo, không phải nhóm cũ. Nếu OP có nhiều đĩa trong nhóm ban đầu và ít nhất một trong số chúng đã không có siêu dữ liệu nhóm được ghi đè lên, có thể có một chút hy vọng có thể sử dụng các công cụ tiêu chuẩn để lấy lại thứ gì đó. Nhớ lại -D đến zpool import chỉ nói để liệt kê các hồ được gắn cờ là bị phá hủy; nó không làm cho ZFS đi săn các hồ cũ.
a CVn

Ví dụ, có thể các phân vùng khác nhau.
qasdfdsaq
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.