View All Posts. MiCHiLU.com powered by Django ;-)

[Linux]: LVM上のデータを移動して物理領域を解放する

不要な Disk を LVM から外すために、まずは LVM 上のデータを移動して Disk を空にする まで。 File System の状態を確認する。

$ df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/hda5             110G  3.8G  101G   4% /
/dev/mapper/raid3-root
                      112G   89G   23G  80% /opt

/opt は RAID 上の LVM だったはず。

$ cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 hdc3[1]
      116856704 blocks [2/1] [_U]

unused devices: <none>

やはり、 Disk 1個で RAID1 になっている模様。。 はやくミラーしなきゃ!

$ sudo /sbin/mdadm --detail --scan
ARRAY /dev/md3 level=raid1 num-devices=2 UUID=faedf221:a27d31bb:7199f477:4afeb281
   devices=/dev/hdc3

$ sudo /sbin/mdadm --detail /dev/md3
/dev/md3:
        Version : 00.90.01
  Creation Time : Thu Sep  1 11:20:51 2005
     Raid Level : raid1
     Array Size : 116856704 (111.44 GiB 119.66 GB)
    Device Size : 116856704 (111.44 GiB 119.66 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 3
    Persistence : Superblock is persistent

    Update Time : Sun Apr  9 19:29:23 2006
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

    Number   Major   Minor   RaidDevice State
       0       0        0       -1      removed
       1      22        3        1      active sync   /dev/hdc3
           UUID : faedf221:a27d31bb:7199f477:4afeb281
         Events : 0.6076544

うへー、 2006/04 からほったらかしてるのか。。 たぶん、この頃が Django にハマった時期でしょう。 Ni!

Disk のパーティションを見てみる。

$ sudo /sbin/fdisk -l /dev/hda

Disk /dev/hda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14          62      393592+  82  Linux スワップ
/dev/hda3           14594       30401   126977760   8e  Linux LVM
/dev/hda4              63       14593   116720257+   5  拡張領域
/dev/hda5              63       14593   116720226   83  Linux

領域テーブル項目がディスクの順序と一致しません


$ sudo /sbin/fdisk -l /dev/hdc

Disk /dev/hdc: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           2          13       96390   83  Linux
/dev/hdc2              14          45      257040   82  Linux スワップ
/dev/hdc3              46       14593   116856810   fd  Linux raid 自動検出

むふー。 RAID1 に追加しようとしている領域 /dev/hda3 は LVM に参加している模様。

$ sudo /usr/sbin/pvdisplay
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               raid3
  PV Size               111.44 GB / not usable 0
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              3566
  Free PE               3566
  Allocated PE          0
  PV UUID               1gcxri-t7QV-Oma5-1MlP-wl82-tgKm-uvnx4j

  --- Physical volume ---
  PV Name               /dev/hda3
  VG Name               raid3
  PV Size               121.06 GB / not usable 0
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              3874
  Free PE               308
  Allocated PE          3566
  PV UUID               PlIvr3-HsCV-1kMK-H9nq-EikG-ytQM-cvSEQU

だはー。 データのすべては /dev/hda3 に載っている! /dev/md3Allocated PE は ゼロ。 これでは、 RAID の意味が無いねー。 それにしても、よくこんな状態で放置していたものだw と苦笑い。

/dev/hda3 上のデータをどかす。 Physical volume (PV) 間でデータの移動を行う。

$ sudo /usr/sbin/pvmove /dev/hda3 /dev/md3
  Unable to start dmeventd.
  Unable to start dmeventd.
  raid3-pvmove0: event registration failed: そのようなプロセスはありません
  /dev/hda3: Moved: 0.1%
  /dev/hda3: Moved: 0.2%

120GB だもんで、しばらく待つ。

$ sudo /usr/sbin/pvdisplay
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               raid3
  PV Size               111.44 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              3566
  Free PE               0
  Allocated PE          3566
  PV UUID               1gcxri-t7QV-Oma5-1MlP-wl82-tgKm-uvnx4j

  --- Physical volume ---
  PV Name               /dev/hda3
  VG Name               raid3
  PV Size               121.06 GB / not usable 0
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              3874
  Free PE               308
  Allocated PE          3566
  PV UUID               PlIvr3-HsCV-1kMK-H9nq-EikG-ytQM-cvSEQU

領域としては /dev/md3 の方では確保が済んで、 /dev/md3Free PE は無くなっている。 pvmove コマンドを実行した後は、進捗が表示されるけれども Ctrl+C で切ってもバックグランドで動いているみたい。 pvdisplay コマンドではまだ /dev/hda3Allocated PE0 になっていなかったので、もう一度、

$ sudo /usr/sbin/pvmove /dev/hda3 /dev/md3
  Detected pvmove in progress for /dev/hda3
  Ignoring remaining command line arguments
  /dev/hda3: Moved: 100.0%

$ sudo /usr/sbin/pvdisplay /dev/hda3
  --- Physical volume ---
  PV Name               /dev/hda3
  VG Name               raid3
  PV Size               121.06 GB / not usable 0
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              3874
  Free PE               3874
  Allocated PE          0
  PV UUID               PlIvr3-HsCV-1kMK-H9nq-EikG-ytQM-cvSEQU

Allocated PE が ゼロ になりデータの移動は完了。 次、 Volume group (VG) から PV /dev/hda3 を外す。

$ sudo /usr/sbin/vgdisplay
  --- Volume group ---
  VG Name               raid3
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                255
  Cur LV                1
  Open LV               1
  Max PV                255
  Cur PV                2
  Act PV                2
  VG Size               232.50 GB
  PE Size               32.00 MB
  Total PE              7440
  Alloc PE / Size       3566 / 111.44 GB
  Free  PE / Size       3874 / 121.06 GB
  VG UUID               ZYKw3N-yKo2-mKia-uAfO-2afi-Hbt5-4bwXgG

$ sudo /usr/sbin/vgreduce raid3 /dev/hda3
  Removed "/dev/hda3" from volume group "raid3"

$ sudo /usr/sbin/vgdisplay
  --- Volume group ---
  VG Name               raid3
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  12
  VG Access             read/write
  VG Status             resizable
  MAX LV                255
  Cur LV                1
  Open LV               1
  Max PV                255
  Cur PV                1
  Act PV                1
  VG Size               111.44 GB
  PE Size               32.00 MB
  Total PE              3566
  Alloc PE / Size       3566 / 111.44 GB
  Free  PE / Size       0 / 0
  VG UUID               ZYKw3N-yKo2-mKia-uAfO-2afi-Hbt5-4bwXgG

VG の Free PE / Size が ゼロ になった。 /dev/hda3 を LVM から解放する。

$ sudo /usr/sbin/pvdisplay /dev/hda3
  --- NEW Physical volume ---
  PV Name               /dev/hda3
  VG Name
  PV Size               121.10 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               PlIvr3-HsCV-1kMK-H9nq-EikG-ytQM-cvSEQU

$ sudo /usr/sbin/pvremove /dev/hda3
  Labels on physical volume "/dev/hda3" successfully wiped

PV のメンバから /dev/hda3 が消滅。

$ sudo /usr/sbin/pvdisplay
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               raid3
  PV Size               111.44 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              3566
  Free PE               0
  Allocated PE          3566
  PV UUID               1gcxri-t7QV-Oma5-1MlP-wl82-tgKm-uvnx4j

ここまでで、 LVM 上のデータ移動と Disk 領域の解放は終了。

Mon, 23 Apr 2007 22:32:09 +0900 source edit
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.
View All Posts. MiCHiLU.com powered by Django ;-)