Bagaimana menghapus disk buruk dari LVM2 dengan lebih sedikit kehilangan data pada PV lain?

15

Saya memiliki volume LVM2 dengan dua disk. Disk yang lebih besar menjadi rusak, jadi saya tidak bisa pvmove. Apa cara terbaik untuk menghapusnya dari grup untuk menyimpan sebagian besar data dari disk lain? Ini adalah output pvdisplay saya:

Couldn't find device with uuid WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3.
  --- Physical volume ---
  PV Name               unknown device
  VG Name               media
  PV Size               1,82 TiB / not usable 1,05 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476932
  Free PE               0
  Allocated PE          476932
  PV UUID               WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               media
  PV Size               931,51 GiB / not usable 3,19 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              238466
  Free PE               0
  Allocated PE          238466
  PV UUID               oUhOcR-uYjc-rNTv-LNBm-Z9VY-TJJ5-SYezce

Jadi saya ingin menghapus perangkat yang tidak dikenal (tidak ada dalam sistem). Apakah mungkin melakukan ini tanpa disk baru? Sistem file adalah ext4.

kissgyorgy
sumber
jika saya mau melakukan vgreduce --removemissing --force mediaapa yang akan terjadi?
kissgyorgy

Jawaban:

19
# pvdisplay
Couldn't find device with uuid EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx.
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_srvlinux
  PV Size               931.51 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              238466
  Free PE               0
  Allocated PE          238466
  PV UUID               xhwmxE-27ue-dHYC-xAk8-Xh37-ov3t-frl20d

  --- Physical volume ---
  PV Name               unknown device
  VG Name               vg_srvlinux
  PV Size               465.76 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              119234
  Free PE               0
  Allocated PE          119234
  PV UUID               EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx



# vgreduce --removemissing --force vg_srvlinux


  Couldn't find device with uuid EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx.
  Removing partial LV LogVol00.
  Logical volume "LogVol00" successfully removed
  Wrote out consistent volume group vg_srvlinux

# pvdisplay

 --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_srvlinux
  PV Size               931.51 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              238466
  Free PE               238466
  Allocated PE          0
  PV UUID               xhwmxE-27ue-dHYC-xAk8-Xh37-ov3t-frl20d

sekarang semuanya bekerja dengan baik!

ahmed
sumber
Ya ... harap Anda tidak perlu LogVol00 ... sudah hilang sekarang.
MikeyB
1
Lebih baik daripada kehilangan segalanya ...
kissgyorgy
1
oh .. jadi ini cara untuk pulih dari satu kaki cermin yang hilang vgreduce --removemissing --force $vgname?
Aquarius Power
Jika disk buruk maka data dari volume logis LogVol00 sudah hilang. Menghapusnya dari grup belum menghapus data lagi. Selain itu, untuk itulah backup.
jackohug
Ini telah terbukti bermanfaat bagi saya pada beberapa kesempatan sekarang dalam mengelola Ganeti dengan drbd.
dannyman
1

Dari vgreducehalaman manual:

   --removemissing
          Removes all missing physical volumes from the volume group, if there are no  logical  volumes
          allocated  on  those.  This resumes normal operation of the volume group (new logical volumes
          may again be created, changed and so on).

          If this is not possible (there are logical volumes referencing the missing physical  volumes)
          and  you  cannot or do not want to remove them manually, you can run this option with --force
          to have vgreduce remove any partial LVs.

          Any logical volumes and dependent snapshots that were partly on the missing disks get removed
          completely. This includes those parts that lie on disks that are still present.

          If  your  logical  volumes  spanned several disks including the ones that are lost, you might
          want to try to salvage data first by  activating  your  logical  volumes  with  --partial  as
          described in lvm (8).
psusi
sumber
1
jadi pada dasarnya, jika root saya /memiliki kaki cermin, dan cermin itu gagal, saya pikir boot akan gagal, lalu, dengan live distro iso, saya dapat menjalankan perintah itu untuk mengakses lagi sistem saya? jadi, juga, saya pikir yang paling aman adalah memiliki di /bootluar lvm, pada partisi ext4 2GB sederhana, dengan live distro iso?
Aquarius Power
1
@AquariusPower, boot seharusnya tidak gagal jika salah satu kaki mirror hilang. Secara pribadi saya lebih suka menggunakan mdadmuntuk menangani serangan dan LVM di atas hanya untuk membagi array menjadi volume logis. Booting langsung dari raid raid alih-alih memiliki stand alone / boot berarti sistem masih dapat boot dengan baik jika disk boot utama mati.
psusi
mmm ... Saya punya, di setiap PV, partisi kecil untuk boot, tetapi setiap partisi independen; jadi jika saya /bootmenyinkronkan ini dengan raid, saya mungkin bisa mem-boot cepat jika ada yang gagal; Saya suka ini, terima kasih :), saya juga kira Anda lebih suka mdadm karena (mungkin?) Lvm mirror sync bisa lambat dan tidak menyinkronkan data yang cukup pada waktunya untuk memastikan boot mulus yang aman jika salah satu PV gagal (seperti pada pemadaman).
Aquarius Power
1
@AquariusPower, sebenarnya saya lebih suka mdadmuntuk raid keduanya karena saya lebih suka raid10 daripada raid1, dan karena itu dapat membentuk kembali array (lvm tidak dapat mengubah mirror 2 disk menjadi 3 disk raid5 misalnya).
psusi