ZFS 스냅 샷을 삭제할 수 없습니다 : 데이터 세트가 이미 존재합니다


11

Solaris 10 8/07을 실행하는 서버 (T5220, 문제는 의심 스럽지만)가 있으며 내부 디스크에 "mysql"ZFS 풀이 있습니다. 그 안에 파일 시스템 "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 년 11 월). 다시 한 번만 스냅 샷을 삭제할 수 없으며 동일한 넌센스 메시지가 나타납니다.

# 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
-

이름을 바꿀 때까지이 스냅 샷은 스냅 샷의 확산을 제어하기 위해 실행하는 스크립트를 손상시킵니다.

버전 정보 : x86 (5.10 Generic_141445-09 i86pc)의 Solaris입니다.이 시스템은 현재 ZFS 풀 버전 15를 실행하고 있습니다. 모든 풀은이 버전을 사용하여 포맷됩니다.


1

클론이없는 동일한 문제.

zfs 버전이 10 인 동안 문제가 발생합니다. 변경하지 않고 15로 업그레이드하려고합니다.


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



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.