RHEL6.7 LVMからディスクを切り離した時のメモ

#はじめに
RHELのインストールで何か指定を間違ってしまい、気付いたら仮想マシンに付けたすべてのディスクがLVMに組み込まれていた。
LVMからディスクを外し、別パーティションとしてマウントした時のメモ

#状況の確認の仕方

sdbとsdc使われてる・・・

```
# pvs
  PV         VG           Fmt  Attr PSize   PFree
  /dev/sda2  vg_name lvm2 a--   99.51g    0
  /dev/sdb1  vg_name lvm2 a--  100.00g    0
  /dev/sdc1  vg_name lvm2 a--  200.00g    0
```

しっかりボリュームグループの一員です。

```
# vgs
  VG           #PV #LV #SN Attr   VSize   VFree
  vg_hostname   3   3   0 wz--n- 399.50g    0
```

こんな感じのLVMがいる

```
lvs
  LV      VG           Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home vg_hostname -wi-ao---- 341.67g                                       
  lv_root vg_hostname -wi-ao----  50.00g                                       
  lv_swap vg_hostname -wi-ao----   7.83g
```

上記から/,swap,/homeに使われているかと・・・余計な事しやがって
一番/homeが大きいので、それから血祭です

```
# df -Ph
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/vg_hostname-lv_root   50G  2.0G   45G   5% /
tmpfs                             3.9G     0  3.9G   0% /dev/shm
/dev/sda1                         477M   42M  411M  10% /boot
/dev/mapper/vg_hostname-lv_home  337G   67M  320G   1% /home
```

#/homeをどうにかする

/homeをアンマウント
`# umount /home`

事前にfsckする必要があるみたいなので、実施

```
# fsck.ext4 -f /dev/mapper/vg_hostname-lv_home
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg_hostname-lv_home: 11/22396928 files (0.0% non-contiguous), 1455475/89567232 blocks
```

Cドライブにすべてを寄せたいので、40GBまで縮小

```
# resize2fs /dev/mapper/vg_hostname-lv_home 40G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/vg_hostname-lv_home to 10485760 (4k) blocks.
The filesystem on /dev/mapper/vg_hostname-lv_home is now 10485760 blocks long.
```

論理ディスクも40GBに縮小

```
# lvreduce -L 40G /dev/mapper/vg_hostname-lv_home
  WARNING: Reducing active logical volume to 40.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)

  Do you really want to reduce lv_home? [y/n]: y

  Size of logical volume vg_hostname/lv_home changed from 341.67 GiB (87468 extents) to 40.00 GiB (10240 extents).
  Logical volume lv_home successfully resized
```

再マウント
`mount /home`

再確認。減った！！

```
# pvs
  PV         VG           Fmt  Attr PSize   PFree
  /dev/sda2  vg_hostname lvm2 a--   99.51g  41.68g
  /dev/sdb1  vg_hostname lvm2 a--  100.00g 100.00g
  /dev/sdc1  vg_hostname lvm2 a--  200.00g 160.00g

# vgs
  VG           #PV #LV #SN Attr   VSize   VFree
  vg_hostname   3   3   0 wz--n- 399.50g 301.67g

# lvs
  LV      VG           Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home vg_hostname -wi-ao---- 40.00g                                        
  lv_root vg_hostname -wi-ao---- 50.00g                                        
  lv_swap vg_hostname -wi-ao----  7.83g

# df -Ph
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/vg_hostname-lv_root   50G  2.0G   45G   5% /
tmpfs                             3.9G     0  3.9G   0% /dev/shm
/dev/sda1                         477M   42M  411M  10% /boot
/dev/mapper/vg_hostname-lv_home   40G   48M   38G   1% /home
```

#いよいよディスクを外していく
##sdb1

sdbの空き領域が100%＝使ってないディスク　なので、こいつから外します。

```
# pvs
  PV         VG           Fmt  Attr PSize   PFree
  /dev/sda2  vg_hostname lvm2 a--   99.51g  41.68g
  /dev/sdb1  vg_hostname lvm2 a--  100.00g 100.00g
  /dev/sdc1  vg_hostname lvm2 a--  200.00g 160.00g
```

こっちだと使用量わかります

```
# pvs -o+pv_used
  PV         VG           Fmt  Attr PSize   PFree   Used
  /dev/sda2  vg_oraclelin lvm2 a--   99.51g  41.68g 57.83g
  /dev/sdb1  vg_oraclelin lvm2 a--  100.00g 100.00g     0
  /dev/sdc1  vg_oraclelin lvm2 a--  200.00g 160.00g 40.00g
```

ディスク削除できた！

```
# vgreduce vg_hostname /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg_hostname"
```

##sdc1
なかに入っているデータを移動してくれるコマンドを打ちます
`pvmove /dev/sdc1`

完了したらディスクを削除します。

```
# vgreduce vg_hostname /dev/sdc1
  Removed "/dev/sdc1" from volume group "vg_hostname"
```

##確認
無事ディスクが外れました！

```
pvs -o+pv_used
  PV         VG           Fmt  Attr PSize   PFree   Used
  /dev/sda2  vg_hostname  lvm2 a--   99.51g   1.68g 97.83g
  /dev/sdb1               lvm2 ---  100.00g 100.00g     0
  /dev/sdc1               lvm2 ---  200.00g 200.00g     0
```

#パーティションの再構成

一回パーティションを削除します！

```
fdisk /dev/sdb

コマンド (m でヘルプ): p

ディスク /dev/sdb: 107.4 GB, 107374182400 バイト
ヘッド 255, セクタ 63, シリンダ 13054
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0003d5af

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               1       13055   104856576   8e  Linux LVM

コマンド (m でヘルプ): d
選択した領域 1

コマンド (m でヘルプ): p

ディスク /dev/sdb: 107.4 GB, 107374182400 バイト
ヘッド 255, セクタ 63, シリンダ 13054
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0003d5af

デバイス ブート      始点        終点     ブロック   Id  システム

コマンド (m でヘルプ): w
パーティションテーブルは変更されました！

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

```

LVMの呪縛から解き放たれた・・・・

```
# pvs
  PV         VG           Fmt  Attr PSize   PFree
  /dev/sda2  vg_hostname  lvm2 a--   99.51g   1.68g
  /dev/sdc1               lvm2 ---  200.00g 200.00g
```

同様にsdcも実施します！