확인하지 않고 논리 볼륨 삭제

확인하지 않고 논리 볼륨 삭제

논리 볼륨을 삭제하기 위해 자동화된 스크립트를 작성하고 있지만 이를 수행하는 방법을 100% 확신할 수 없습니다. -f플래그를 사용해야 하는 것처럼 보이지만 lvremove문서가 너무 엉성해 편안하게 느낄 수 없습니다.

-f|--강제...

다양한 검사, 검증 및 보호를 재정의합니다. 주의해서 사용하세요.

"다양한 확인, 검증 및 보호"란 무엇입니까? 나에게는 볼륨 삭제를 확인하는 것 외에 다른 것을 피하는 것 같습니다.

답변1

가장 큰 위험은 아직 사용 중인 볼륨을 삭제하는 것입니다. 즉, dmsetup info0이 아닌 것으로 표시되는 경우 Open count.

# dmsetup info SSD-root | grep Open
Open count:        1

하지만 이 경우 lvremove작업이 직접 거부됩니다.

# lvremove SSD/root
  Logical volume SSD/root contains a filesystem in use.

--force여전히 삭제를 거부 하더라도 (집에서 시도하지 마세요).

# lvremove --force --yes --verbose SSD/root
    Device dm-33 (253:33) appears to be mounted on /.
  Logical volume SSD/root contains a filesystem in use.

이는 설치되지 않은 경우에도 작동하며 그렇지 않은 경우에는 사용 중인 경우에도 작동합니다.

# lvcreate -n test -L100M SSD
# losetup --find --show /dev/SSD/test
# time lvremove SSD/test
  Logical volume SSD/test is in use.
real    0m4.816s
user    0m0.008s
sys 0m0.005s

실제로 이것은 매우 느립니다(이 lvremove 호출은 5초가 소요됩니다!). 왜냐하면 마운트 지점을 모든 곳에서 검색하지만 찾지 못하고 계속해서 열린 개수를 다시 확인하기 때문입니다. 그래서 "글쎄 이게 설치되지 않았는데 왜 아직 열려 있는 걸까요?"와 같습니다.

--force따라서 일반 볼륨의 경우 여기에서 사용하는 것이 실제로 위험한 상황을 강요하지 않는 것이 상당히 안전하다고 생각합니다 . 맨페이지에서는 예제 섹션에서 강제 사용을 제안하기도 합니다. 그러나 스냅샷, 캐시 및 기타 특수 볼륨에 어떤 일이 발생하는지 테스트하지 않았습니다.

답변2

매뉴얼 페이지 lvremove도 제공됩니다 --yes.

대화식으로 확인 메시지를 표시하지 말고 항상 대답이 '예'라고 가정하세요.

--force이를 통해 볼륨을 프로그래밍 방식으로 삭제할 수 있으면서도 지정되지 않은 모든 수표 및 잔액 사용을 방지할 수 있습니다 .

(나는 삭제 방지 문제를 해결하지 못했다는 것을 알고 있습니다 --force. 귀하의 기본 요구 사항을 충족한다고 생각하는 대안을 제공했습니다. 정말로 알고 싶다면 이 대답을 받아들일 필요는 없다고 생각하십시오 --force.)

관련 정보