【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)
VMwareのハードディスク容量を増やそうとして調査をしているうちにLVMという技術を知った。
一度パーティションを切ったら専用ソフトを使わないとハードディスク容量を拡張できないと思っていたのでショック。あまりに無知。
前にVMwareのHDD容量を増やす方法を書いたけど、ここに書いてあるやり方がスマートで簡単。
LVMでファイルシステムを構成しておくと後でディスク容量を増やそうと思ったときに簡単にできる。LVMについて詳しくしりたい場合はwikipediaを読んだり、Google先生に聞いてみる。
CentOSの場合はデフォルトでLVMのファイルシステムを構成してくれるので楽。Ubuntuの場合はインストール時に明示的に選択しないと駄目みたい(今度確認しときます)。
以下、さっきのリンクを参考に自分で実行したコマンドをメモ。
まずはVMwareの場合はディスク容量を追加するコマンドをホストで打つ。物理マシンの場合はハードディスクを追加する。
現在の容量と合わせて40GBに拡張したい場合のコマンドはこれ。
# vmware-vdiskmanager -x 40Gb vdisk.vmdk
2GBでsplitしてあって拡張できない場合はvCenter Converterを使って1つに結合したりする。参考記事。vmware-vdiskmanagerを使ってもできるらしい。
あとは追加した(仮想)マシン側で作業。
fdiskでlvm用のパーティションを作成。
# fdisk /dev/sda
コマンド (m でヘルプ): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytesデバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVMコマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 3
最初 シリンダ (2611-5221, default 2611):(リターン)
Using default value 2611
終点 シリンダ または +サイズ または +サイズM または +サイズK (2611-5221, default 5221):(リターン)
Using default value 5221コマンド (m でヘルプ): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytesデバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
/dev/sda3 2611 5221 20972857+ 83 Linuxコマンド (m でヘルプ): t
領域番号 (1-4): 3
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 3 から 8e (Linux LVM) に変更しましたコマンド (m でヘルプ): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytesデバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
/dev/sda3 2611 5221 20972857+ 8e Linux LVMコマンド (m でヘルプ): w
領域テーブルは交換されました!ioctl() を呼び出して領域テーブルを再読込みします。
警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。
fdiskが終了するので再起動
# reboot
LVM物理ボリュームを作成
# pvcreate /dev/sda3
ボリュームグループ確認
# vgs
ボリュームグループに物理ボリュームを割り当てる
# vgextend cl /dev/sda3
論理ボリュームを増加させる # lvextend -L +20Gb /dev/VolGroup00/LogVol00# lvextend -l +100%FREE /dev/cl/root
ファイルシステムサイズの再認識 # resize2fs /dev/VolGroup00/LogVol00
# xfs_growfs /
容量が増えたか確認 # df -m
# df -h
LVMって便利だね。今まで「VMware hdd 拡張」というキーワードで訪れてくれた人に申し訳ない。
[2022/12/06: CentOS Stream 8に合わせてコマンド修正]