mdadmで劣化したRAIDアレイの上にLVM物理ボリュームを縮小し、スペアを追加して再構築する


8

私はDebian WheezyRAID-1に500ギガバイトのHDDのカップルを備えたシステム(mdadmの上にミラー)は、座っているLVM5つのパーティションと論理ボリューム(bootrootusrvar及びtmp、47.15ジブの合計サイズ)。物理ボリュームの418.38 GiBは無料です。GRUB両方のドライブにインストールされています。

HDDの1つに障害が発生し、アレイは劣化しましたが、データは損なわれていません。

私が欲しいのは、システムを最初から再インストールする必要なしに、これら2つのHDDをすべて80 GB 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  

または、SSDに新しいRAID / VG / LVをrsync作成して、ファイルを上書きすることもできます。オンラインではありませんが、何よりも高速です。
frostschutz 2014

最初に、PVとアレイの両方を縮小する必要があります。次に、アレイを回復します。
神経伝達物質2014

回答:


5

pvを縮小したり、アレイを再構築したりする必要はありません。新しいドライブから新しいアレイを作成し、それを新しいpv(pvcreate+ vgextend)として追加してpvmoveから、既存のすべてのlvを古いpvから削除し、古いpv(vgreduce)を削除して、そのドライブのサービスを停止するだけです。


優れた代替ソリューションですが、時間を節約するために古いアレイを使い続けることを好みます。古いシステムに新しいアレイを再統合したくないのです。
神経伝達物質2014

1
@TranslucentCloudは、それが取るより少ない、古いもののサイズを変更する新しいドライブのいずれかでそれを再構築し、古いドライブを削除し、再びそれを再構築するよりも、新しい配列を作成するために時間を。
psusi 14

しかしGRUB、Liveシステムからインストールしようとする追加のステップに直面する可能性があります。本番システムを起動して、GRUBを1つの簡単なコマンドでインストールする方が簡単です。
神経伝達物質2014

@TranslucentCloud、ライブシステムについて誰が言ったのですか?どちらの方法でも、新しいドライブにGRUBをインストールする必要があります。debianを実行しているので、これはかなり簡単ですdpkg-reconfigure grub-pc。新しいドライブを選択してください。
psusi 14

1
@TranslucentCloud LVMの重要な点は、システムの使用中に物をサイズ変更および移動できることです。MDと同様に、実行中にディスクを交換してサイズを変更できます。あなたを防ぐことができる唯一のことは、ファイルシステムがライブサイズ変更をサポートしていない場合です(それを縮小しなければならなかった場合)。
frostschutz 2014

3

そうではありませんlvmoveけどpvmove

pvmove --alloc=anywhere /dev/md0:89600-102950 /dev/md0:0-12070

これにより、89600〜102950の範囲内のエクステントが0〜12070の範囲に移動します。投稿したデータによると、LVはPVの先頭に再配置されます。


はい、これLVにより、タスクの一部の調整が解決されます。
神経伝達物質2014

3

注意:このガイドは最適ではありません。承認された回答を確認する

さて、私がしようとしたことをする方法を見つけました。これはある種のチュートリアルになります。

この間、まだ認識していませんでしたが、LVを使用した操作は、ファイルシステムがマウントされて一部のLinuxディストリビューション(SystemRescueCD)で起動されたときに実際に可能liveです。ここの人々は私に、実際のファイルシステムを操作せずにLVを調整してPVを縮小するだけの場合は必要がないと説明しました。

したがって、このガイドを使用すると、LVMの性質、つまり物事をライブで実行する可能性に直面するため、確実に目的どおりの結果が得られますが、効率的な方法ではありません。

  1. 物理ボリューム上の論理ボリュームは隣接していないため、物理ボリュームの先頭に移動する必要があります。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  
    
  2. これPVで、SSDのサイズ(80GB)に縮小する準備ができました。80ギガバイトは実際には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
    
  3. この後、配列自体のサイズを変更できます。このレベルにはファイルシステムがないためmdadm --grow、実際には配列を縮小するためにも使用できる単一のコマンドのみで終わります。サイズはに入力する必要がある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
    
  4. 次に、既存の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


PVを大きくしすぎなかったと思います。SSDが80GBの場合、パーティションとメタデータのために、オフセットを使用してPVを80GBに設定できない場合があります。また、もちろんこれはオンラインでの操作であり、ライブCDは必要ありません。
frostschutz 14

@frostschutz、おそらくご存じのとおり、PVを80ギガバイトに設定していませんが、74.5ギガバイト(ステップ3)に設定しています。これは、SSDのサイズに一致する十分なスペースです。また、LVはシステムによってマウントおよび使用されるため、ライブシステムを起動する必要がありました。
神経伝達物質2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.