私のDebian Wheezy
システムには、RAID-1(ミラー)に複数の500GB HDDがあり、mdadm
その上にLVM
合計サイズが47.15GiBの5つのパーティション(、、、および)を持つ論理ボリュームがあります。物理ボリュームには418.38GiBを使用できます。両方のドライブにインストールされます。boot
root
usr
var
tmp
GRUB
HDDの1つに障害が発生し、アレイのパフォーマンスが低下していますが、データは破損していません。
私が望むのは、システムを最初から再インストールせずに2台のHDDをすべて80GB SSDに交換することです。ここで微妙なことは、SSDのサイズに合わせてLVM物理ボリュームを縮小する必要がありますが、論理ボリュームが連続していない(最初は空き容量が多い)、論理ボリュームをSSD内で移動する必要があることです。何とか物理ボリューム。そしてlvmove
Debianにはコマンドはありません。
どうやってこれを達成できますか?
いくつかのコンソール出力:
バージョン:
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
アレイの詳細:
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
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
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
答え1
PVを縮小したり、アレイを再構築する必要はありません。新しいドライブから新しいアレイを作成し、それを新しいpv(pvcreate
+ vgextend
)として追加し、pvmove
古いPVから既存のlvをすべて削除し、古いpv(vgreduce
)を削除してドライブのサービスを停止します。
答え2
しかしlvmove
、pvmove
pvmove --alloc=anywhere /dev/md0:89600-102950 /dev/md0:0-12070
これにより、89600-102950の範囲内のすべての項目が0-12070の範囲に移動されます。公開されたデータによれば、LVはPVの先頭に再配置されます。
答え3
注:このガイドは最適なガイドとは離れています。受け入れられた回答を確認してください。
さて、私が試したことをする方法を見つけました。これは一種のチュートリアルになります。
この期間中、LVの運営は実際に可能ファイルシステムが一部のlive
Linuxディストリビューション(SystemRescueCD)にマウントされ起動されている場合。ここでは、実際のファイルシステムを操作せずにLVを並べ替えてPVを縮小する場合は、これを行う必要はないと説明しました。
したがって、このガイドを使用することで確実に達成することができますが、LVMの本質、つまり作業の実行可能性に直面するので、効率的な方法ではありません。生きる。
物理ボリュームから論理ボリュームが不連続であるため、何らかの方法で物理ボリュームの先頭に移動する必要があります。
pvmove
@frostschutzが提案したように、コマンドは次のLVs
場所に移動できますPV
。root@wheezy:/home/a# pvmove --alloc=anywhere /dev/md0:89600-102950 /dev/md0:0-12070 /dev/md0: Moved: 100.0% root@wheezy:/home/a# 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 38 boot 0 linear /dev/md0:0-37 /dev/md0 system lvm2 a-- 465.53g 418.38g 38 512 root 0 linear /dev/md0:38-549 /dev/md0 system lvm2 a-- 465.53g 418.38g 550 5120 usr 0 linear /dev/md0:550-5669 /dev/md0 system lvm2 a-- 465.53g 418.38g 5670 2560 tmp 0 linear /dev/md0:5670-8229 /dev/md0 system lvm2 a-- 465.53g 418.38g 8230 3840 var 0 linear /dev/md0:8230-12069 /dev/md0 system lvm2 a-- 465.53g 418.38g 12070 107106 0 free
これで
PV
SSDサイズ(80GB)に縮小する準備が整いました。 80GBは実際には80000000000バイトです。root@wheezy:/home/a# pvresize --setphysicalvolumesize 80000000000B /dev/md0 Physical volume "/dev/md0" changed 1 physical volume(s) resized / 0 physical volume(s) not resized root@wheezy:/home/a# pvs PV VG Fmt Attr PSize PFree /dev/md0 system lvm2 a-- 74.50g 27.36g
その後、配列自体のサイズを変更できます。このレベルにはファイルシステムがないため、配列の縮小にも
mdadm --grow
実際に動作するコマンドを1つだけ使用するようになりました。サイズはkibibytes
80000000000 / 1024 = 78125000と入力する必要があります。root@wheezy:/home/a# mdadm --grow --size=78125000 /dev/md0 mdadm: component size of /dev/md0 has been set to 78125000K root@wheezy:/home/a# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Thu Dec 4 12:20:22 2014 Raid Level : raid1 Array Size : 78125000 (74.51 GiB 80.00 GB) Used Dev Size : 78125000 (74.51 GiB 80.00 GB) Raid Devices : 2 Total Devices : 1 Persistence : Superblock is persistent Update Time : Thu Dec 4 17:56:53 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 : 60 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 0 0 1 removed
これで、既存のSSDをアレイに追加して再構築します。
root@wheezy:/home/a# mdadm --add /dev/md0 /dev/sdc mdadm: added /dev/sdc root@wheezy:/home/a# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdc[2] sdb[0] 78125000 blocks super 1.2 [2/1] [U_] [>....................] recovery = 1.3% (1081920/78125000) finish=11.8min speed=108192K/sec unused devices: <none>
再構築後、健康な配列を持つようになりました。そのメンバーを交換でき、GRUBインストールを使用できますgrub-install /dev/sdc
。