Loại bỏ vg và lv sau khi ổ đĩa vật lý đã được gỡ bỏ


32

Chúng tôi đã có một lỗi đĩa trong một máy chủ và thay thế nó trước khi loại bỏ ổ đĩa khỏi LVM.

Máy chủ có 4 ổ đĩa vật lý (PV), mỗi ổ có nhóm âm lượng riêng (VG). Mỗi VG có 2 hoặc nhiều khối lượng logic (LV's.) Bây giờ LVM đang phàn nàn về ổ đĩa bị thiếu. Vì vậy, chúng tôi có một VG (vg04) với hai LV đã trở thành trẻ mồ côi hơn chúng tôi cần phải loại bỏ khỏi hệ thống.

Vấn đề là mỗi khi chúng tôi chạy bất kỳ lệnh LVM nào, chúng tôi đều nhận được các lỗi 'đọc thất bại' này:

# lvscan
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error

# vgreduce vg04 --removemissing --force
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found

# vgchange -a n /dev/vg04
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found

# lvchange -a n /dev/vg04/vz
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found
  Skipping volume group vg04

Việc thiếu VG và LV không quan trọng, chúng tôi chỉ muốn loại bỏ chúng.

Như bạn có thể thấy, chúng tôi đã thử tất cả các đề xuất được đưa ra, cho đến nay không gặp may mắn.

Đầu ra từ 'lvm dumpconfig' có thể được kiểm tra tại http://pastebin.com/MHiBzrLJ

Câu trả lời:


46

Giải pháp là chạy dmsetup, trong trường hợp này là hai lệnh

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Trước khi làm điều này, tôi đã kiểm tra với lệnh 'thông tin dmsetup' rằng 'số lượng mở' cho cả hai LV đều bằng không.

CẢNH BÁO: dmsetup có thể phá hỏng nghiêm trọng các đĩa của bạn để bất kỳ ai sử dụng thông tin này trong tương lai vui lòng đảm bảo bạn đã đọc trang nam.


3
Điều đó đã lừa Thật tệ khi LVM là một sự trừu tượng bị rò rỉ, nhưng tôi đoán điều này cũng tốt như nó có được.
Navin

1
Cuộc gọi tốt với cảnh báo đó. Nếu tôi hiểu chính xác, cái tên tương tự remove_all --force --deferred --retrysẽ thổi bay mọi ổ đĩa được quản lý LVM trong tầm tay. Nó sẽ tiếp tục cố gắng và không bỏ cuộc, như Kẻ hủy diệt. Tôi siêu tò mò về lý do tại sao một khẩu súng ngắn như thế này được bảo hành.
Dan Ross

Ngoài ra còn có một thiết bị duy nhất "chấm dứt với định kiến ​​cực đoan" (và / hoặc báo thù, nếu thiết bị khiến bạn bận rộn cả đêm): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>Điều này đặc biệt đúng, ví dụ như một thiết bị iscsi đã bị treo và bạn đã gỡ bỏ nó# iscsiadm -m node -U all -T <FQDN>
AdamKalisz

9

Tôi đã trải nghiệm tương tự sau khi loại bỏ một đĩa VMware /dev/sdb.

Sử dụng lsscsiđể xác định thiết bị nào đang được sử dụng (bạn có thể cần cài đặt chương trình) sau đó chạy lsscsi:

# lsscsi
[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0
[2:0:0:0]    disk    VMware   Virtual disk     1.0   /dev/sda
[2:0:1:0]    disk    VMware   Virtual disk     1.0   /dev/sdb <== the removed physical disk
[2:0:2:0]    disk    VMware   Virtual disk     1.0   /dev/sdc

Bây giờ viết tập tin xóa với

# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete

Thiết bị ngay lập tức biến mất.


1
Cảm ơn bạn!! Điều này hoạt động hoàn hảo đối với tôi để loại bỏ các lỗi như "/ dev / sdb: đọc thất bại sau 0 trên 4096 tại 0: Lỗi đầu vào / đầu ra" sau khi xóa vg1-xyz cũ thông qua dmsetup.
quần mèo

1
Chỉ cái này làm việc cho tôi. Bạn làm cho ngày của tôi.
odiszapc

2

vgchange -an / dev / vg04

Nếu bạn có khối lượng logic vẫn hoạt động, bạn có thể phải

lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz

v.v.


2
Thật không may, điều đó cũng không khắc phục được, nó chỉ tiếp tục gây ra lỗi tương tự:
RCD

Trên hệ thống của tôi lvchange -a n <VGNAME>không hoạt động perfekt!
zzeroo
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.