Saya memiliki Debian Wheezy
sistem dengan beberapa 500 GB HDD di RAID-1 ( mdadm
mirror), di atas yang duduk LVM
volume logis dengan 5 partisi ( boot
, root
, usr
, var
dan tmp
), ukuran total 47,15 GiB. 418,38 GiB dalam volume fisik tidak dipungut biaya. GRUB
diinstal pada kedua drive.
Salah satu HDD gagal dan sekarang array rusak, tetapi data masih utuh.
Yang saya inginkan adalah menukar semua 2 HDD ini menjadi 80 GB SSD tanpa perlu menginstal ulang sistem dari awal. Titik halus di sini adalah bahwa saya perlu mengecilkan volume fisik LVM agar sesuai dengan ukuran SSD, tetapi volume logis tidak bersebelahan (ada banyak ruang kosong di awal), jadi saya harus entah bagaimana memindahkan volume logis dalam fisik. . Dan tidak ada lvmove
perintah di Debian.
Bagaimana saya mencapai ini?
Beberapa keluaran konsol:
Versi:
root@wheezy:~# uname -a && mdadm --version && lvm version
Linux wheezy 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux
mdadm - v3.2.5 - 18th May 2012
LVM version: 2.02.95(2) (2012-03-06)
Library version: 1.02.74 (2012-03-06)
Driver version: 4.22.0
Detail susunan:
root@wheezy:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 4 12:20:22 2014
Raid Level : raid1
Array Size : 488148544 (465.53 GiB 499.86 GB)
Used Dev Size : 488148544 (465.53 GiB 499.86 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Dec 4 13:08:59 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : wheezy:0 (local to host wheezy)
UUID : 44ea4079:b3b837d3:b9bb2ca1:1b95272a
Events : 26
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 0 0 1 removed
Detail singkat LVM:
root@wheezy:~# pvs && vgs && lvs
PV VG Fmt Attr PSize PFree
/dev/md0 system lvm2 a-- 465.53g 418.38g
VG #PV #LV #SN Attr VSize VFree
system 1 5 0 wz--n- 465.53g 418.38g
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
boot system -wi----- 152.00m
root system -wi----- 2.00g
tmp system -wi----- 10.00g
usr system -wi----- 20.00g
var system -wi----- 15.00g
Segmentasi PV:
root@wheezy:~# pvs -v --segments /dev/md0
Using physical volume(s) on command line
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/md0 system lvm2 a-- 465.53g 418.38g 0 89600 0 free
/dev/md0 system lvm2 a-- 465.53g 418.38g 89600 38 boot 0 linear /dev/md0:89600-89637
/dev/md0 system lvm2 a-- 465.53g 418.38g 89638 512 root 0 linear /dev/md0:89638-90149
/dev/md0 system lvm2 a-- 465.53g 418.38g 90150 5120 usr 0 linear /dev/md0:90150-95269
/dev/md0 system lvm2 a-- 465.53g 418.38g 95270 3840 var 0 linear /dev/md0:95270-99109
/dev/md0 system lvm2 a-- 465.53g 418.38g 99110 1280 0 free
/dev/md0 system lvm2 a-- 465.53g 418.38g 100390 2560 tmp 0 linear /dev/md0:100390-102949
/dev/md0 system lvm2 a-- 465.53g 418.38g 102950 16226 0 free
rsync
file Anda. Ini tidak online tetapi cenderung lebih cepat dari yang lainnya.Jawaban:
Anda tidak perlu mengecilkan pv atau membangun kembali array. Anda hanya perlu membuat array baru dari drive baru dan menambahkannya sebagai pv baru (
pvcreate
+vgextend
), lalupvmove
semua lv yang ada dari pv lama, kemudian hapus pv lama (vgreduce
) dan lepaskan drive itu dari layanan.sumber
GRUB
dari sistem Live. Lebih mudah untuk boot ke sistem produksi dan menginstal GRUB darinya dengan satu perintah sederhana.dpkg-reconfigure grub-pc
dan pilih drive baru.Bukan
lvmove
tapipvmove
.Itu harus memindahkan setiap luasan dalam rentang 89600-102950 ke rentang 0-12070. Menurut data yang Anda poskan, seharusnya LV Anda dipindahkan ke bagian awal PV Anda.
sumber
LV
menyelaraskan bagian dari tugas.PERHATIAN: PANDUAN INI JAUH DARI OPTIMAL. PERIKSA JAWABAN YANG DITERIMA
Oke, saya sudah tahu bagaimana melakukan apa yang saya coba. Ini akan menjadi semacam tutorial.
Selama waktu ini saya belum menyadari, bahwa manipulasi dengan LVs sebenarnya mungkin ketika filesystem dipasang dan di-boot ke beberapa
live
distro Linux (SystemRescueCD). Orang-orang di sini menjelaskan kepada saya, bahwa tidak ada keharusan dalam hal ini jika Anda tidak memanipulasi dengan sistem file aktual dan hanya menyelaraskan LV dan menyusut PV.Jadi dengan panduan ini Anda pasti akan mencapai apa yang Anda inginkan, tetapi tidak dengan cara yang efisien, karena itu bertentangan dengan sifat LVM - kemungkinan untuk melakukan sesuatu secara langsung .
Karena sifat volume logis yang tidak bersebelahan pada volume fisik saya, saya harus entah bagaimana memindahkannya di awal volume fisik. The
pvmove
perintah, seperti yang disarankan oleh @frostschutz dapat bergerakLVs
dalamPV
:Sekarang
PV
siap untuk menyusut ke ukuran SSD (80GB). 80 gigabyte sebenarnya adalah 80000000000 byte:Setelah ini, saya bisa mengubah ukuran array itu sendiri. Tidak ada filesystem pada level ini, jadi saya berakhir hanya dengan satu
mdadm --grow
perintah, yang sebenarnya dapat digunakan untuk mengecilkan array juga. Ukurannya harus dimasukkankibibytes
, jadi itu adalah 80000000000/1024 = 78125000:Sekarang saatnya menambahkan SSD yang ada ke array dan membiarkannya membangun kembali:
Setelah membangun kembali saya memiliki array yang sehat. Anggotanya dapat ditukar dan instalasi GRUB dapat dilakukan secara rutin (setelah boot ke sistem produksi) dengan
grub-install /dev/sdc
.sumber