ไม่สามารถทำลาย ZFS snapshot: ชุดข้อมูลมีอยู่แล้ว


11

ฉันมีเซิร์ฟเวอร์ (T5220 แต่ฉันสงสัยว่ามันสำคัญ) ที่รัน Solaris 10 8/07 และฉันมีพูล ZFS "mysql" บนดิสก์ภายใน ภายในนั้นฉันมีระบบไฟล์ "mysql / data / 4.1.12" ซึ่งฉันถ่ายภาพทุกชั่วโมงด้วยสคริปต์จาก cron

ฉันมีหนึ่งสแนปชอตซึ่งสร้างขึ้นเป็นหนึ่งในสแน็ปช็อตรายชั่วโมงเหล่านั้นซึ่งจะไม่ทำลาย ฉันได้เปลี่ยนชื่อมันเป็นลำดับ "mysql/data/4.1.12@wibble" เพื่อที่สคริปต์ของฉันจะไม่พยายามและล้มเหลวในการทำลาย แต่ตอนแรกมันอยู่ในลำดับแม้ว่าฉันสงสัยว่ามันสำคัญ เปลี่ยนชื่อสำเร็จแล้ว สแน็ปช็อตสามารถสำรวจได้สำเร็จและอ่านจากไดเรกทอรี. zfs / snapshots มันไม่มีการโคลนนิ่งจากมัน

พยายามทำลายสิ่งนี้:

(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:/# 

ซึ่งดูเหมือนจะไร้สาระ: แน่นอนว่ามันมีอยู่แล้วนั่นคือประเด็น!

ใครเคยเห็นอะไรแบบนี้มาก่อน? การค้นหาเว็บแสดงให้เห็นว่าไม่มีอะไรคล้ายกันอย่างชัดเจน

ฉันสามารถจัดหาแพตช์ติดตั้งได้หากจำเป็น

คำตอบ:


10

ตอนนี้ปัญหานี้ได้รับการตอบรับโดย Cindy Swearingen (cindys) ที่นี่: http://opensolaris.org/jive/thread.jspa?messageID=484242&tstart=0

สรุป: หากคุณได้รับแบบเพิ่มหน่วยนี่อาจเป็น CR 6860996:

โคลนชั่วคราวถูกสร้างขึ้นสำหรับการรับที่เพิ่มขึ้นและในบางกรณีจะไม่ถูกลบโดยอัตโนมัติ

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

หลังจากอัปเกรดเป็นชุดแพตช์ล่าสุดฉันสามารถลบสแนปชอตนี้ได้สำเร็จ เห็นได้ชัดว่าเป็นข้อผิดพลาดบางแห่งที่ซันบีบ


2

ฉันไม่คาดหวังว่าปัญหานี้จะเกิดขึ้น (ฉันคิดว่าคุณได้รับข้อความแสดงข้อผิดพลาดที่แตกต่างกัน) แต่คุณมีโคลนใด ๆ จากภาพรวมนั้นหรือไม่


ไม่มีการโคลนตาม นั่นคือสิ่งที่ฉันสงสัยในตอนแรก แต่นั่นไม่ใช่
Morven

2

ในขณะที่วิธีนี้อาจไม่เกี่ยวข้องกับปัญหาของ OP ฉันยังมีข้อความแสดงข้อผิดพลาดเดียวกันนี้เมื่อพยายามลบ zvol

ในกรณีของฉัน zvol ได้รับการสร้างขึ้นโดยการรับขัดจังหวะ zfs ซึ่งถูกส่งโดยใช้คุณลักษณะ "-s" ที่กลับมาทำงานต่อได้ โทเค็นประวัติถูกป้องกันไม่ให้ถูกทำลาย

เพื่อแก้ไขฉันวิ่งzfs receive -A <pool/zvol> (บน FreeBSD 10.3)


มีประโยชน์ที่จะรู้; เป็นไปได้อย่างแน่นอนในกรณีนี้
Morven

1

ฉันได้เห็นปัญหานี้แล้วเช่นกัน (พฤศจิกายน 2009) อีกครั้งหนึ่งสแนปชอตไม่สามารถทำลายได้และฉันได้รับข้อความไร้สาระเดียวกัน

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

และสแนปชอตนี้ไม่ใช่ต้นกำเนิดสำหรับและโคลนระบบไฟล์ ในความเป็นจริงฉันมีหนึ่งระบบไฟล์ที่โคลน - แต่การค้นหาแบบเรียกซ้ำแสดงให้เห็นว่ามันไม่ได้ขึ้นอยู่กับสแน็ปช็อตที่ลำบาก

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

จนกว่าฉันจะเปลี่ยนชื่อสแนปชอตนี้จะทำให้สคริปต์ที่ฉันเรียกใช้ควบคุมการแพร่กระจายของสแน็ปช็อตได้เช่นกัน

ข้อมูลรุ่น: นี่คือ Solaris บน x86 (5.10 Generic_141445-09 i86pc) ระบบนี้กำลังใช้งานพูล ZFS เวอร์ชัน 15 พูลทั้งหมดถูกฟอร์แมตโดยใช้เวอร์ชันนี้


1

ปัญหาเดียวกันโดยไม่มีการโคลนใด ๆ

ปัญหาเกิดขึ้นในขณะที่รุ่น zfs คือ 10 เราพยายามอัปเกรดเป็น 15 โดยไม่มีการเปลี่ยนแปลงใด ๆ


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


1

ฉันวิ่งเข้าไปนานแล้วและเขียนที่นี่: http://www.bitshop.com/Blogs/tabid/95/EntryId/101/ZFS-Destroy-dataset-does-not-exist-zdb-error-16.aspx

อย่างไรก็ตามเวลานี้ไม่ใช่ปัญหาที่เกี่ยวข้องกับ% ฉันใช้ Illumus / Illumian 1.0 ซึ่งเป็น zpool เวอร์ชัน 26

นี่เป็นเซิร์ฟเวอร์ / ภาพเก่าที่ฉันพยายามลบ


1

ลองดูชุดข้อมูลด้วย zdb

zdb -e -d tank

ฉันพยายามทำ

zfs destroy -r tank/dataset

ซึ่งแสดงขึ้นzfs listและได้รับข้อผิดพลาดนี้

สิ่งที่ฉันพบคือ zdb เห็น

tank/dataset/dataset

zfs listซึ่งไม่ได้ปรากฏขึ้นใน ฉันสามารถทำได้อย่างง่ายดาย

zfs destroy -r tank/dataset/dataset

แล้ว

zfs destroy -r tank/dataset

โดยไม่มีข้อผิดพลาด

zfs listนี้ดูเหมือนว่าอาจจะข้อผิดพลาดใน FreeBSD 11.2- เสถียร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.