はじめに
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も実施します!