ไม่สามารถลบโลจิคัลวอลุ่มแบบเปิด


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  

ฉันจะบังคับให้ลบไดรฟ์ข้อมูลนี้ได้อย่างไร

ขอบคุณ Everett

คำตอบ:


13

โลจิคัลวอลุ่มประกอบด้วยอะไร? มันเป็นระบบไฟล์ (ฉันเขียนพาร์ทิชันโดยไม่ตั้งใจ) หรือไม่? มันสามารถติดตั้งได้หรือไม่ ในกรณีนั้น:

umount /dev/my-volumes/volume-1

มีสแนปชอตใด ๆ หรือไม่

แก้ไข: ลองและlvchange -an -v /dev/my-volumes/volume-1lvremove -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 (aka Nova) จริง ๆ แล้วฉันสามารถลบมันได้โดยไปที่นิวเคลียร์และรีบูตเครื่องแล้วทำ lvremove รุนแรงกว่าที่ฉันต้องการ ฉันยังคงมีเล่มอื่น ๆ ที่ห้อยอยู่ซึ่งฉันต้องการกำจัดโดยไม่ต้องรีบูตดังนั้นความช่วยเหลือใด ๆ ที่คุณสามารถให้นั้นได้รับการชื่นชม
Everett Toews

ฉันได้เพิ่มบางสิ่งให้คุณลองกับโวลุ่มที่มีปัญหาอื่น ๆ
Eduardo Ivanec

พยายามมัน ไม่มีโชค. ฉันลองทุกอย่างจากwiki.davidjb.com/ด้วย (ดังนั้น "/ dev / dm-1: read ล้มเหลว ... " ในผลงานบางส่วนของฉัน) แต่นั่นก็ไม่ได้ผลเช่นกัน
Everett Toews

9

หากคุณไม่สามารถยกเลิกการเมานท์หรือ lvremove โลจิคัลวอลุ่มให้ตรวจสอบว่าไม่มีกระบวนการที่ถือ LV

ค้นหาหมายเลขหลัก / รองสำหรับโลจิคัลวอลุ่มที่คุณต้องการลบเช่น: vol0

# dmsetup info -c | grep vol0

จดบันทึกคอลัมน์ที่ 5 ซึ่งระบุว่าปริมาณเป็น“ เปิด” และคอลัมน์ที่ 2 และ 3 ซึ่งเป็นรหัสหลักและรหัสรองตามลำดับ

ค้นหากระบวนการใด ๆ ที่แนบมากับหนังสือเล่มนี้โดยค้นหารหัสหลักและรหัสรองที่ค้นพบข้างต้น:

# lsof | grep "major,minor"

ปิดหรือฆ่ากระบวนการใด ๆ ที่ยังคงเข้าถึงโวลุ่มเพื่อยกเลิกการต่อเชื่อมและถอดออก

จากนั้นลอง lvremove


ในกรณีของฉันไม่มีความช่วยเหลือ lsof, fuser ไม่แสดงการใช้งานใด ๆ dmsetup พูดว่าอุปกรณ์ไม่ว่าง อุปกรณ์ถูกถอนติดตั้ง (สามารถติดตั้งได้ตลอดเวลา) การรีบูตฮาร์ดแวร์ช่วยเท่านั้น: /
John

5

คุณอาจมี iet หรือ tgt ทำงานอยู่ (ซึ่งขึ้นอยู่กับiscsi_helperค่าของคุณใน /etc/nova/nova.conf ค่าเริ่มต้นคือ iet) และบริการมี filehandle ที่เปิดอยู่ คุณสามารถตรวจสอบที่หนึ่งโดยทำอะไรเช่นนี้ (ในกรณีของฉันมันเป็น 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

ฉันเข้าสู่สถานการณ์ที่คล้ายกัน แต่การลบ LV ถูกปิดกั้นเนื่องจากฉันใช้การเมานต์ -o ผูก

บทความด้านล่างช่วยได้มากโดยใช้ lsof กับตัวเลขหลัก / รองของ LV แสดงว่ากระบวนการถือเปิด LV ในกรณีของฉัน smbd

มากกว่าแค่ cat / proc / mounts grep LV_name ทำให้ฉันสรุปได้ว่าทำไม lvremove หรือ dmsetup เอาการปฏิเสธที่จะกำจัด LV ที่ไม่ได้ต่อเชื่อม

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



1

หากคุณไม่สามารถลบได้lvmโปรดทำตามขั้นตอนเหล่านี้:

  1. unmount the Partition:

    # umount / dev / sda8

    (เช่นฉันได้ติดตั้งพาร์ติชันไว้/dev/sda8)

  2. พยายามที่จะลบlvmเช่น:

    # lvremove / dev / vgname / lvname

หากคุณได้รับข้อผิดพลาดเช่น " ไม่สามารถลบโลจิคัลวอลุ่มแบบเปิดใน linux " ให้ลองปิดการใช้งานคำสั่ง LVM ผ่านด้านล่างจากนั้นจึงลบออก:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

แจ้งให้เราทราบหากคุณประสบปัญหาใด ๆ


0

ฉันมีปัญหากับ LV ที่มาจาก 3 PV บนอุปกรณ์ iSCSI (พร้อมการรวมหลายหน้า)

ไม่มีวิธีแก้ปัญหาทำงาน แต่รีบูตง่าย! ( แสดงความคิดเห็นใน fstabดังนั้นจึงไม่ได้ติดตั้งอีกครั้ง)

บางทีนั่นอาจช่วยใครซักคน


0

สิ่งนี้อาจถูกล็อคโดยบริการ nfslock ใน RHEL เพียงหยุดบริการนั้นและคุณก็พร้อมที่จะไป


0

ฉันมีปัญหาที่คล้ายกัน เลเวลที่ฉันพยายามจะเอาออกคืออุปกรณ์บล็อก VM ซึ่งเป็นกลุ่ม volumegroup volumegroup นี้ถูกกรองใน lvm.conf แต่บางรายการ dev mapper ถูกสร้างขึ้นก่อนหน้านี้

หากต้องการทราบว่าอุปกรณ์ถูกยึดไว้ให้ดูที่หมายเลขรอง (253, ?? ) ll /dev/<vg>/<lv>ควรชี้ไปที่../dm-??

จากนั้นls -la /sys/dev/block/253:??/holdersจะให้ลิงก์ของ vg (เช่น-> ../../dm-xx) การถ่ายทอดบนอุปกรณ์ของคุณ (เช่น pv)

ลบออกด้วยdmsetup remove /dev/dm-xx(ให้แน่ใจว่าไม่ได้ใช้ dm เหล่านั้น) จากนั้นคุณควรลบ / dev // ซึ่งไม่ใช่ "pv" ที่อื่น


ฉันเป็นกรณีนี้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:

fuser -kuc / dev / my-sample-volume / volume-sample-1

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

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

lrwxrwxrwx 1 รูทราก 8 Aug 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

unlink / dev / my-sample-volume / volume-sample-1

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


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

มันควรจะทำงาน ฉันได้ทำการทดสอบแล้ว มันจะยกเลิกการลิงก์ไปยัง softlink ของมัน LV ควรยังคงมีอยู่และคุณอาจลบด้วย lvremove
dayzero

0

ในกรณีของฉันฉันใช้cAdvisorในภาชนะและดูเหมือนว่าจะป้องกันการลบอุปกรณ์บล็อกใด ๆ ที่ติดตั้งเมื่อมันเริ่ม การแก้ไขของฉันคือ:

  1. ถอนติดตั้งวอลุ่ม LVM
  2. รีสตาร์ทคอนเทนเนอร์ cAdvisor ( docker restart $CONTAINER_ID)
  3. พยายามลบอีกครั้ง

-1

ฉันมีปัญหาเช่นเดียวกับคุณ ฉันลองคำสั่งต่อไปนี้และแก้ไข: swapoff -a

lvremove ...


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