Không thể loại bỏ khối lượng logic mở


20

Khi tôi cố gắng loại bỏ một khối lượng logic, tôi nhận được thông báo

#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  

Làm thế nào tôi có thể buộc loại bỏ khối lượng này?

Cảm ơn, Everett

Câu trả lời:


13

Khối lượng logic chứa gì? Nó có phải là một hệ thống tập tin (tôi vô tình viết phân vùng)? Nó có thể được gắn kết? Trong trường hợp đó:

umount /dev/my-volumes/volume-1

Nó có bất kỳ ảnh chụp nhanh hoạt động?

Chỉnh sửa: thử lvchange -an -v /dev/my-volumes/volume-1lvremove -vf /dev/my-volumes/volume-1.

Chỉnh sửa 2: vui lòng đăng 'lvs'.

Chỉnh sửa 3: Hãy thử điều này với một số khối lượng có vấn đề khác. Đây không phải là tùy chọn sạch nhất nhưng theo trang web này, nó có thể hoạt động và ít gặp sự cố hơn so với khởi động lại.

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

Nó không chứa bất cứ thứ gì. Đây không phải là một phân vùng. Nó không được gắn kết (nữa). Không có ảnh chụp nhanh hoạt động.
Everett Toews

Chà, bạn đã dùng nó để làm gì? Nó có thể cho chúng ta manh mối về những gì có thể sai.
Eduardo Ivanec

Đã thêm thông tin bạn yêu cầu vào câu hỏi. Nó đã được sử dụng làm tập cho OpenStack Compute (hay còn gọi là Nova). Tôi thực sự đã xoay sở để loại bỏ nó bằng cách đi hạt nhân và khởi động lại máy và sau đó thực hiện một lvremove. Cách quyết liệt hơn tôi muốn được. Tôi vẫn còn một số tập khác treo xung quanh mà tôi muốn loại bỏ mà không phải khởi động lại để bất kỳ trợ giúp nào bạn có thể cung cấp đều được đánh giá cao.
Everett Toews

Tôi đã thêm một cái gì đó để bạn thử với một số lượng có vấn đề khác.
Eduardo Ivanec

Thử nó. Không may mắn. Tôi cũng đã thử mọi thứ từ wiki.davidjb.com/ (do đó "/ dev / dm-1: đọc thất bại ..." trong một số sản phẩm của tôi) nhưng điều đó cũng không hoạt động.
Everett Toews

9

Nếu bạn không thể ngắt kết nối hoặc ghi âm lượng hợp lý, hãy xác minh rằng không có quy trình nào giữ LV

Xác định vị trí các số chính / phụ cho khối lượng logic bạn đang cố xóa, ví dụ: vol0

# dmsetup info -c | grep vol0

Hãy lưu ý đến cột thứ 5, cho biết nếu một khối lượng là mở, cột và cột thứ 2 và thứ 3, tương ứng là các ID chính và ID phụ.

Tìm bất kỳ quy trình nào được đính kèm với tập này bằng cách tìm kiếm trên các ID chính và ID nhỏ được phát hiện ở trên:

# lsof | grep "major,minor"

Tắt hoặc tắt bất kỳ quá trình nào vẫn truy cập vào ổ đĩa để tiếp tục ngắt kết nối và xóa.

sau đó thử lvemove


Trong trường hợp của tôi không giúp đỡ. lsof, fuser không hiển thị bất kỳ việc sử dụng. dmsetup nói thiết bị đang bận. thiết bị không được kết nối (có thể được gắn bất cứ lúc nào). chỉ khởi động lại phần cứng mới giúp: /
John

5

Bạn có thể có iet hoặc tgt đang chạy (cái nào phụ thuộc vào iscsi_helpergiá trị của bạn trong /etc/nova/nova.conf, mặc định là iet) và dịch vụ có tệp mở. Bạn có thể kiểm tra cái nào bằng cách làm một cái gì đó như thế này (trong trường hợp của tôi là 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

Nếu đó là iet, hãy dừng dịch vụ bằng cách thực hiện:

service iscsitarget stop

Nếu đó là tgt, hãy dừng dịch vụ bằng cách thực hiện:

service tgt stop

Sau đó bạn sẽ có thể xóa khối lượng của bạn.


Điều này đã giải quyết vấn đề cho tôi với OpenStack
juanluisrp

5

Tôi đã gặp tình huống tương tự, nhưng loại bỏ LV đã bị chặn, bởi vì tôi đang sử dụng mount -o bind.

Bài viết dưới đây đã giúp ích rất nhiều, sử dụng lsof với số lượng lớn / nhỏ của LV cho thấy quá trình giữ LV đã mở, trong trường hợp của tôi là smbd.

Hơn chỉ đơn giản là mèo / Proc / mounts | grep LV_name đã đưa tôi đến kết luận, tại sao lvremove hoặc dmsetup loại bỏ từ chối để loại bỏ LV không đếm được.

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


2

Tắt các bộ chứa LXC sử dụng các hệ thống tập tin thông qua cấu hình của chúng: lxc.mount.entry


1

Nếu bạn không thể xóa lvm, vui lòng làm theo các bước sau:

  1. ngắt kết nối phân vùng:

    # umount / dev / sda8

    (ví dụ: tôi đã gắn kết phân vùng trên /dev/sda8)

  2. cố gắng loại bỏ lvmnhư vậy:

    # lvremove / dev / vgname / lvname

Nếu bạn gặp lỗi như " không thể xóa âm lượng logic mở trong linux ", thì hãy thử tắt LVM thông qua các lệnh bên dưới và sau đó xóa nó:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Hãy cho chúng tôi biết nếu bạn phải đối mặt với bất kỳ vấn đề.


0

Tôi gặp vấn đề này với LV xuất phát từ 3 PV trên thiết bị iSCSI (có đa luồng).

Không có giải pháp làm việc nhưng khởi động lại đơn giản ! ( nhận xét nó trong fstab , vì vậy nó không được gắn kết lại)

Có lẽ điều đó giúp được ai đó.


0

điều này cũng có thể bị khóa bởi dịch vụ nfslock trong RHEL, chỉ cần dừng dịch vụ đó và bạn sẽ ổn.


0

Tôi đã có một vấn đề tương tự. Các lv tôi đã cố gắng để loại bỏ là một thiết bị khối VM, giữ một tập đoàn. Tập đoàn này đã được lọc trong lvm.conf, nhưng một số mục của trình ánh xạ đã được tạo trước đó.

Để tìm ra đã bị một thiết bị giữ, hãy nhìn vào số phụ của nó (253, ?? ) ll /dev/<vg>/<lv>nên trỏ đến../dm-??

Sau đó ls -la /sys/dev/block/253:??/holderssẽ cung cấp cho bạn các liên kết của vg (ví dụ -> ../../dm-xx) chuyển tiếp trên thiết bị của bạn (dưới dạng pv)

Xóa chúng bằng dmsetup remove /dev/dm-xx(đảm bảo rằng những dm đó không được sử dụng) Sau đó, bạn nên xóa / dev // không còn là "pv" ở đâu đó


Tôi là trường hợp của tôi dmsetup remove /dev/dm-36nhưng tôi gặp lỗi, device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedxem: serverfault.com/questions/926681/NH
rubo77

0

Bạn có thể hủy liên kết LV của mình khỏi thiết bị 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 root 8 ngày 8 tháng 8 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

hủy liên kết / dev / my-sample-volume / volume-sample-1

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


Xin chào và chào mừng. Tôi không nghĩ lvremovelà sẽ đi làm sau unlink, bạn có thể làm rõ phần đó không? Chỉ cần chỉnh sửa câu trả lời của bạn.
kubanchot

Nó nên hoạt động. Tôi đã thử nó. Nó sẽ chỉ hủy liên kết đến liên kết mềm của nó. LV vẫn còn tồn tại và bạn có thể loại bỏ nó bằng lvremove.
dayzero

0

Trong trường hợp của tôi, tôi đã chạy cIDIA trong một container và điều này dường như ngăn chặn việc loại bỏ bất kỳ thiết bị khối nào được gắn khi nó khởi động. Cách khắc phục của tôi là:

  1. Ngắt kết nối âm lượng LVM
  2. Khởi động lại container cIDIA ( docker restart $CONTAINER_ID)
  3. Cố gắng loại bỏ một lần nữa

-1

Tôi có cùng một vấn đề như của bạn. Tôi đã thử lệnh sau và giải quyết: hoán đổi -a

lvemove ...


điều đó có thể khiến ai đó mù quáng thử lệnh của bạn. Tốt hơn là chỉ ra, nếu LV được sử dụng để trao đổi, sau đó trao đổi lv trước, và chỉ điều này, không chỉ -a
roothahn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.