Không thể hủy ảnh chụp nhanh ZFS: tập dữ liệu đã tồn tại


11

Tôi có một máy chủ (T5220, mặc dù tôi nghi ngờ nó có vấn đề) chạy Solaris 10 8/07 và tôi có một nhóm ZFS, "mysql", trên đĩa bên trong. Trong đó, tôi có một hệ thống tập tin "mysql / data / 4.1.12", mà tôi chụp nhanh hàng giờ với một tập lệnh từ cron.

Tôi có một ảnh chụp nhanh, được tạo ra như một trong những ảnh chụp nhanh hàng giờ, sẽ không phá hủy. Tôi đã đổi tên nó ra khỏi chuỗi thành "mysql/data/4.1.12@wibble" để kịch bản của tôi không cố gắng và không phá hủy nó, nhưng ban đầu nó nằm trong chuỗi, mặc dù tôi nghi ngờ vấn đề đó. Nó đổi tên thành công. Ảnh chụp nhanh có thể được điều hướng thành công và đọc từ thư mục .zfs / snapshots. Nó không có bản sao dựa trên nó.

Cố gắng phá hủy nó làm điều này:

(265) root@web-mysql4:/# zfs destroy mysql/data/4.1.12@wibble
cannot destroy 'mysql/data/4.1.12@wibble': dataset already exists
(266) root@web-mysql4:/# 

điều này rõ ràng là vô nghĩa: tất nhiên nó đã tồn tại, đó là điểm chính!

Bất cứ ai đã nhìn thấy bất cứ điều gì như thế này trước đây? Tìm kiếm trên web cho thấy không có gì rõ ràng tương tự.

Tôi có thể cung cấp các bản vá được cài đặt nếu cần thiết.

Câu trả lời:


10

Vấn đề này hiện đã được trả lời, với sự giúp đỡ của Cindy Swearingen (cindys) tại đây: http://opensolaris.org/jive/thread.jspa?messageID=484242&tstart=0

Tóm tắt: Nếu bạn nhận được gia tăng, đây có thể là CR 6860996:

Một bản sao tạm thời được tạo để nhận tăng dần và trong một số trường hợp, không được xóa tự động.

1. Determine clone names:

# zdb -d <poolname> | grep %

2. Destroy identified clones:

# zfs destroy <clone-with-%-in-the-name>

It will complain that 'dataset does not exist', but you can check
again(see 1)

3. Destroy snapshot(s) that could not be destroyed previously

3

Sau khi nâng cấp lên các bộ bản vá gần đây, tôi có thể xóa ảnh chụp nhanh này thành công. Rõ ràng là một lỗi ở đâu đó mà Sun đã đè bẹp.


2

Tôi không mong đợi đây là vấn đề (tôi nghĩ rằng bạn nhận được một thông báo lỗi khác), nhưng bạn có bất kỳ bản sao nào dựa trên ảnh chụp nhanh đó không?


Không có bản sao dựa trên nó; đó là những gì tôi nghi ngờ lúc đầu, nhưng đó không phải là nó.
Morven

2

Trong khi giải pháp này có thể không liên quan đến vấn đề của OP, tôi cũng có thông báo lỗi khó hiểu tương tự khi cố gắng xóa zvol.

Trong trường hợp của tôi, zvol đã được tạo bởi một nhận zfs bị gián đoạn, được gửi bằng tính năng nối lại "-s". Mã thông báo tiếp tục đã ngăn nó bị phá hủy.

Để sửa nó, tôi đã chạy zfs receive -A <pool/zvol> (trên FreeBSD 10.3)


Hữu ích để biết; chắc chắn có thể đây là trường hợp.
Morven

1

Tôi cũng đã thấy vấn đề này (nov 2009). Một lần nữa, chỉ một ảnh chụp nhanh không thể bị phá hủy và tôi nhận được thông điệp vô nghĩa tương tự

# zfs destroy blue/viss02_backup/46home1f@200910211357
cannot destroy 'blue/viss02_backup/46home1f@200910211357': dataset already exists

Và ảnh chụp nhanh này không phải là bản gốc cho và bản sao hệ thống tập tin. Trong thực tế tôi có một hệ thống tập tin nhân bản - nhưng một tìm kiếm đệ quy cho thấy rằng nó không dựa trên ảnh chụp nhanh rắc rối

# zfs get -H -o value -r origin blue | uniq
-
blue/viss02_backup/zones/puppis@200902031605
-

Cho đến khi tôi đổi tên nó, ảnh chụp nhanh này cũng sẽ làm hỏng các tập lệnh mà tôi chạy để kiểm soát sự tăng sinh của các ảnh chụp nhanh.

Thông tin phiên bản: Đây là Solaris trên x86 (5.10 Generic_141445-09 i86pc) Hệ thống này hiện đang chạy ZFS pool phiên bản 15. Tất cả các nhóm được định dạng bằng phiên bản này.


1

Vấn đề tương tự mà không có bản sao.

Sự cố xảy ra trong khi phiên bản zfs là 10. Chúng tôi cố gắng nâng cấp lên 15 mà không có bất kỳ thay đổi nào


 zfs destroy -rR zpool/mailboxes
 cannot destroy 'zpool/mailboxes@bug': dataset already exists



1

Hãy thử nhìn vào tập dữ liệu với zdb.

zdb -e -d tank

Tôi đã cố gắng để làm

zfs destroy -r tank/dataset

trong đó xuất hiện zfs listvà đã nhận được lỗi này.

Những gì tôi tìm thấy là zdb đã thấy

tank/dataset/dataset

mà không được hiển thị trên zfs list. Tôi đã có thể dễ dàng

zfs destroy -r tank/dataset/dataset

và sau đó

zfs destroy -r tank/dataset

không có lỗi.

Điều này có vẻ như có thể là một lỗi trong zfs list. FreeBSD 11.2-ỔN ĐỊNH.

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.