열린 논리 볼륨을 제거 할 수 없습니다


20

논리 볼륨을 제거하려고하면 메시지가 나타납니다.

#lvremove /dev/my-volumes/volume-1 
Can't remove open logical volume "volume-1"

#lvchange -an -v /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Deactivating logical volume "volume-1"
Found volume group "my-volumes"
LV my-volumes/volume-1 in use: not deactivating

#lvremove -vf /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Can't remove open logical volume "volume-1"

#lvs
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
LV              VG           Attr   LSize   Origin Snap%  Move Log Copy%  Convert
volume-1        my-volumes   -wi-ao  50.00g  

이 볼륨을 강제로 제거하려면 어떻게해야합니까?

고마워, 에버렛

답변:


13

논리 볼륨에는 무엇이 포함됩니까? 파일 시스템입니까 (우연히 파티션을 썼습니다)? 마운트 될 수 있습니까? 이 경우 :

umount /dev/my-volumes/volume-1

활성 스냅 샷이 있습니까?

편집 : 시도 lvchange -an -v /dev/my-volumes/volume-1하고 lvremove -vf /dev/my-volumes/volume-1.

편집 2 : 'lvs'를 게시하십시오.

편집 3 : 다른 문제가있는 볼륨으로 시도하십시오. 가장 깨끗한 옵션은 아니지만 이 사이트 에 따르면 작동 할 수 있으며 재부팅하는 것보다 문제가 적습니다.

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number

아무것도 포함하지 않습니다. 파티션이 아닙니다. 마운트되지 않습니다 (더 이상). 활성 스냅 샷이 없습니다.
Everett Toews

글쎄, 당신은 그것을 위해 무엇을 사용 했습니까? 무엇이 잘못되었는지에 대한 힌트를 줄 수 있습니다.
Eduardo Ivanec

질문에 요청한 정보를 추가했습니다. OpenStack Compute (일명 Nova)의 볼륨으로 사용되었습니다. 나는 실제로 핵을 가지고 기계를 재부팅 한 다음 lvremove를 수행하여 제거했습니다. 내가 원하는 것보다 더 과감한. 재부팅하지 않아도 제거하고 싶은 다른 볼륨이 여전히 남아 있으므로 제공 할 수있는 도움을 주시면 감사하겠습니다.
Everett Toews

문제가있는 다른 볼륨으로 시도 할 수있는 내용을 추가했습니다.
Eduardo

그것을 시도했다. 불운. 나는 또한 wiki.davidjb.com/… ( 모든 출력에서 "/ dev / dm-1 : read failed ...")에서 모든 것을 시도했지만 작동하지 않았습니다.
Everett Toews

9

논리 볼륨을 마운트 해제하거나 lvremove 할 수없는 경우 LV를 보유하는 프로세스가 없는지 확인하십시오.

제거하려는 논리 볼륨의 주 / 부 번호를 찾으십시오. 예 : vol0

# dmsetup info -c | grep vol0

볼륨이 "열렸는지"나타내는 다섯 번째 열과 각각 주 ID와 부 ID 인 두 번째 및 세 번째 열에 유의하십시오.

위에서 발견 된 주요 ID와 부 ID를 검색하여이 볼륨에 첨부 된 프로세스를 찾으십시오.

# lsof | grep "major,minor"

마운트 해제 및 제거를 계속하려면 여전히 볼륨에 액세스하는 프로세스를 종료하거나 종료하십시오.

그런 다음 lvremove를 시도하십시오


내 경우에는 도움이되지 않습니다. lsof, 퓨저에 사용법이 표시되지 않습니다. dmsetup은 장치가 사용 중이라고 말합니다. 장치가 마운트 해제되었습니다 (언제든지 마운트 가능). 하드웨어 재부팅 만 도움이됩니다 : /
John

5

iet 또는 tgt가 실행 중일 수 있으며 ( iscsi_helper/etc/nova/nova.conf 의 값 에 따라 달라지며 기본값은 iet 임) 서비스에 열린 파일 핸들이 있습니다. 이런 식으로 어떤 것을 확인할 수 있습니다 (제 경우에는 tgt입니다)

# fuser /dev/nova-volumes/volume-00000001
/dev/dm-5:           19155

# lsof | grep /dev/dm-5
tgtd      19155            root   12u      BLK              252,5         0t0    2531554 /dev/dm-5

iet 인 경우 다음을 수행하여 서비스를 중지하십시오.

service iscsitarget stop

tgt 인 경우 다음을 수행하여 서비스를 중지하십시오.

service tgt stop

그런 다음 볼륨을 삭제할 수 있어야합니다.


이것은 OpenStack으로 문제를 해결했습니다
juanluisrp

5

비슷한 상황이 발생했지만 mount -o bind를 사용했기 때문에 LV 제거가 차단되었습니다.

아래 기사는 주요 / 부수의 LV와 함께 lsof를 사용하여 프로세스가 열린 LV를 보여주었습니다. smbd.

단순히 cat / proc / mounts | grep LV_name은 lvremove 또는 dmsetup remove가 마운트 해제 된 LV를 제거하는 것을 거부하는 이유를 결론으로 ​​이끌었습니다.

http://kb.eclipseinc.com/kb/why-cant-i-remove-a-linux-logical-volume/


2

구성을 통해 파일 시스템을 사용하는 LXC 컨테이너를 종료하십시오. lxc.mount.entry


1

를 제거 할 수없는 경우 lvm다음 단계를 따르십시오.

  1. 파티션을 마운트 해제하십시오 :

    # umount / dev / sda8

    (예 : 파티션을에 마운트했습니다. /dev/sda8)

  2. 다음 lvm과 같이 제거하십시오 .

    # lvremove / dev / vgname / lvname

" linux에서 열린 논리 볼륨을 제거 할 수 없습니다 "와 같은 오류가 발생하면 아래 명령을 통해 LVM을 비활성화 한 다음 제거하십시오.

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

문제가 발생하면 알려주십시오.


0

iSCSI 장치의 3 PV (멀티 경로 지정)에서 나오는 LV 에이 문제가있었습니다.

해결책은 없었지만 간단한 재부트 ! ( fstab에서 주석 처리하여 다시 마운트되지 않음)

어쩌면 누군가를 도울 수 있습니다.



0

나는 비슷한 문제가 있었다. 내가 제거하려고 한 lv는 볼륨 그룹을 보유한 VM 블록 장치였습니다. 이 볼륨 그룹은 lvm.conf에서 필터링되었지만 일부 dev 매퍼 항목이 이전에 생성되었습니다.

장치가 파악한 것으로 파악하려면 부 번호 (253, ?? ) ll /dev/<vg>/<lv>를 확인하십시오.../dm-??

그런 다음 장치에서 ls -la /sys/dev/block/253:??/holdersvg (ex -> ../../dm-xx) 릴레이 링크를 ( pv로) 제공합니다

그들을 제거 dmsetup remove /dev/dm-xx(반드시 그 DM 사용하지 않는 것을 확인) 그럼 당신은 / dev에 // 더 이상이다 "태양 광 발전"어딘가를 제거해야


Im 내 경우 dmsetup remove /dev/dm-36이지만 이것은 오류가 발생합니다 device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failed: serverfault.com/questions/926681/…
rubo77

0

LV를 DM 장치에서 연결 해제 할 수 있습니다.

퓨저 -kuc / dev / my-sample-volumes / volume-sample-1

/ dev / dm-21 : 2400ce (루트) 2739ce (루트) 4793ce (루트)

ls -l / dev / my-sample-volumes / volume-sample-1

lrwxrwxrwx 1 루트 루트 8 8 월 15 일 02:53 / dev / my-sample-volumes / volume-sample-1-> ../dm-21

/ dev / my-sample-volumes / volume-sample-1 연결 해제

lvremove / dev / my-sample-volumes / volume-sample-1


안녕하세요. 나는 lvremove이후에 작동 할 것이라고 생각하지 않습니다. unlink그 부분을 명확히 할 수 있습니까? 답을 수정하십시오.
kubanczyk

작동해야합니다. 나는 그것을 테스트했습니다. 소프트 링크와의 연결이 해제됩니다. LV는 여전히 존재해야하며 lvremove로 제거 할 수 있습니다.
dayzero

0

필자의 경우 컨테이너에서 cAdvisor 를 실행 중이 었으며 시작했을 때 마운트 된 블록 장치가 제거되지 않는 것으로 보입니다. 내 수정은 :

  1. LVM 볼륨 마운트 해제
  2. cAdvisor 컨테이너를 다시 시작하십시오 ( docker restart $CONTAINER_ID).
  3. 제거를 다시 시도하십시오

-1

나는 당신과 같은 문제가 있습니다. 다음 명령을 시도하고 해결했습니다. swapoff -a

lvremove ...


누군가가 맹목적으로 당신의 명령을 시도하게 할 수 있습니다. 더 나은는 LV가 먼저 다음 정맥 주사 후 swapoff, 스왑을 사용하는 경우 그냥 지적 만이 아니라 -a합니다
roothahn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.