Câu hỏi về tham nhũng dữ liệu BTRFS và ảnh chụp nhanh?


0

Tôi tò mò chuyện gì xảy ra khi chúng tôi có một tệp không chính xác bị hỏng trong một hệ thống tệp có ảnh chụp nhanh như BTRFS, và chúng tôi cố gắng thay thế tệp từ bản sao lưu? Tôi nghi ngờ rằng các ảnh chụp nhanh sẽ vẫn chứa phiên bản bị hỏng của tệp. Có cách nào để sửa những lỗi này trong ảnh chụp nhanh không?

Một câu hỏi liên quan khác xảy ra nếu bản thân ảnh chụp bị hỏng? Chúng ta sẽ mất nó chứ?

Câu trả lời:


2

Ảnh chụp nhanh sẽ vẫn chứa các phiên bản bị hỏng, vì ý tưởng của chúng là chúng là Point-In-Time. Tại thời điểm trong câu hỏi họ tình cờ tham nhũng.

Sau khi googling BTRFS sbnapshots có vẻ như bạn sẽ có thể gắn các ảnh chụp nhanh, thay đổi tệp đó trên ảnh chụp nhanh và nó sẽ hoạt động.

Nếu nó chỉ là tập tin bị hỏng và bạn có một bản sao lưu, thì đó không phải là vấn đề lớn. Nếu hệ thống tập tin bị hỏng, điều đó có thể tồi tệ hơn rất nhiều.

Đối với "điều gì xảy ra nếu bản thân ảnh chụp bị hỏng" - điều này không thể xảy ra trong BTRFS, nhưng tôi hy vọng logic sẽ sao chép nó sang một thiết bị khối khác, và sau đó thử phục hồi trên thiết bị khối đó như thể nó là bản gốc FS.

(Tuyên bố miễn trừ trách nhiệm - Tôi chưa bao giờ sử dụng BTRFS. Tôi chỉ là một người mới khi nói đến ZFS, nhưng tôi đã nắm bắt khá tốt các khái niệm)


0

Tôi sử dụng BTRFS. Tôi có thể xác nhận và giải thích một số điều câu trả lời này nói; và tôi có thể thêm một cái gì đó nhiều hơn.

Bạn có thể gắn bất kỳ ảnh chụp nhanh. Bạn có thể sửa đổi nó trừ khi nó được tạo bằng tùy chọn 'chỉ đọc'. Ảnh chụp chỉ là một subvolume, nó không "nhớ" những subvolume khác mà nó được tạo ra. Một subvolume nguồn và ảnh chụp nhanh của nó là tương đương ban đầu. Tốt hơn nên nghĩ về một ảnh chụp nhanh mới được tạo là "ngã ba" chứ không phải là "ảnh chụp nhanh", "bản sao", "trạng thái đóng băng" hoặc bất kỳ tên nào khác cho thấy trạng thái kém hơn so với "bản gốc".

Khi bạn rẽ nhánh một subvolume (tạo ảnh chụp nhanh), bạn có thể nghĩ đến ảnh chụp nhanh theo thời gian nếu bạn chọn không sửa đổi "bản sao" nữa (bằng cách tạo rõ ràng nó thành subvolume chỉ đọc hoặc đơn giản là không làm gì với nó , để nó một mình), trong khi "bản gốc" có thể vẫn còn được sử dụng. Tôi sử dụng ảnh chụp nhanh để sao lưu hệ thống của mình trước 'apt-get nâng cấp' nhưng tôi không bao giờ bận tâm tạo chúng 'chỉ đọc'. Quan điểm của tôi là: trạng thái Thời gian của họ không phải do một số siêu dữ liệu trên đĩa của tôi mà là do siêu dữ liệu trong đầu - tôi chỉ không sửa đổi chúng.

Ảnh chụp nhanh chia sẻ (ban đầu gần như tất cả) các khối dữ liệu với subvolume "gốc". Nếu một nội dung của một khối nhất định làm cho một tệp bị hỏng thì tệp đó sẽ bị hỏng trong mỗi ảnh chụp chia sẻ khối đó. Ghi đè (sửa đổi) tệp trong một trong các tệp con ánh xạ tệp đó thành các khối chỉ chứa nội dung mới trong ngữ cảnh của tệp con này; subvolume khác vẫn như cũ.

Nếu bạn tình cờ có một tệp bị hỏng được chia sẻ giữa nhiều subvolume và bạn muốn thay thế nó từ bản sao lưu thì bạn có thể:

  • (phương pháp phổ biến) ghi đè lên toàn bộ tệp (hoặc hủy liên kết và tạo lại), điều này sẽ ánh xạ lại tất cả các phần của nó sang các khối khác;
  • .

Làm điều này một cách độc lập trong nhiều subvolume sẽ gây ra ánh xạ lại độc lập, nó sẽ mất các khối không sử dụng nhiều lần thay vì chỉ một lần.

Để tránh điều này và làm cho các tệp được thay thế này trong nhiều tệp con chia sẻ tất cả các khối của chúng, hãy tiến hành như sau:

  1. Nếu nó chưa được gắn kết, hãy gắn root hệ thống tập tin BTRFS ở đâu đó: mount -o subvol=/ …. Bằng cách này, tất cả các subvolume có thể sẽ có sẵn trong một điểm gắn kết duy nhất.
  2. Thay thế tệp từ bản sao lưu trong bất kỳ subvolume nào.
  3. Đối với mọi subvolume khác, nơi tập tin cần được thay thế
    1. hủy liên kết (xóa) tệp,
    2. sau đó sao chép ( cp ) tệp đã được thay thế từ một subvolume khác với --reflink=always Tùy chọn; điều quan trọng là phải làm điều này trong một điểm duy nhất.
  4. Bây giờ bạn có thể umount thư mục gốc của hệ thống tập tin BTRFS.
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.