Hyper-V上でLinux(CentOS7)の仮想サーバー上でOTRSを動かしていましたが、突然アクセスできなくなってしまいました。
原因を調べたところ、サーバー上の/dev/mapper/centos-rootの使用率が100%になっていたため、こちらを拡張したところ元通りに動かすことができましたので、このディスクの拡張作業について備忘録も兼ねてメモしたいと思います
以下のサイトを参考にしました。
LVMで新たにディスクを追加して既存のLVを拡張する
partedコマンドでディスクを切る時の備忘録的な
Linuxディスク関連コマンドまとめ
CentOS7で仮想Disk拡張後のLVM論理ボリューム拡張設定
まずはHyper-Vマネージャーで以下手順で対象のサーバのディスクを拡張します
- 対象の仮想マシンをシャットダウンし、右側「操作」メニュー中の「ディスクの編集」を押します。
- 拡張するディスクを選択し、「操作の選択」-> 拡張(E) -> 次へ進みます。
- 新しいサイズ(S)に任意のサイズを入力 -> 完了(F)を押します。
- 対象のマシンを右クリック -> 設定 -> ハードドライブを選択 -> ハードディスクのところで検査(I)を押します。
- 最大ディスクサイズ(M)の部分が更新されていれば成功です。
次にOS上のディスク及びボリューム拡張を行います
lsblkコマンドでディスク構成を確認します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 150G 0 disk
├sda1 8:1 0 500M 0 part /boot
└sda2 8:2 0 39.5G 0 part
├centos-root 253:0 0 38.7G 0 lvm /
└centos-swap 253:1 0 820M 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
次にfdiskを使用して空いた部分のパーティション拡張を行います。
$ fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
コマンド (m でヘルプ): p
Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x00096bdc
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 83886079 41430016 8e Linux LVM
コマンド (m でヘルプ): d
パーティション番号 (1,2, default 2): 2
Partition 2 is deleted
コマンド (m でヘルプ): p
Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x00096bdc
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 1026047 512000 83 Linux
コマンド (m でヘルプ): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
パーティション番号 (2-4, default 2): 2
最初 sector (1026048-314572799, 初期値 1026048):
初期値 1026048 を使います
Last sector, +sectors or +size{K,M,G} (1026048-314572799, 初期値 314572799):
初期値 314572799 を使います
Partition 2 of type Linux and of size 149.5 GiB is set
コマンド (m でヘルプ): p
Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x00096bdc
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 314572799 156773376 83 Linux
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
$ reboot
再起動します。
$ reboot
再度lsblkでディスク構成の状態を確認します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 150G 0 disk
├sda1 8:1 0 500M 0 part /boot
└sda2 8:2 0 149.5G 0 part
├centos-root 253:0 0 38.7G 0 lvm /
└centos-swap 253:1 0 820M 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
2020/7/3追記:上記lsblkで容量が拡張されていない場合は、pvresizeコマンドを実行してください。
$ pvresize /dev/sda2
次に、lvdisplayで拡張対象のボリュームを特定します。
$ lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID jdWlNT-JUfL-GAtK-L7iK-iqYs-xDBx-AvWv9l
LV Write Access read/write
LV Creation host, time localhost, 2015-08-04 08:43:11 +0900
LV Status available
# open 2
LV Size 820.00 MiB
Current LE 205
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID lYcIj2-o0DK-5YeR-nSB6-UCVu-DbFD-ziofUo
LV Write Access read/write
LV Creation host, time localhost, 2015-08-04 08:43:12 +0900
LV Status available
# open 1
LV Size <38.71 GiB
Current LE 9909
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
次に、lvextendコマンドで論理ボリューム(LV)を拡張します。以下の例は空き容量を古に拡張した場合の例です。
$ lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from <38.71 GiB (9909 extents) to <148.71 GiB (38069 extents).
Logical volume centos/root successfully resized.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 150G 0 disk
├sda1 8:1 0 500M 0 part /boot
└sda2 8:2 0 149.5G 0 part
├centos-root 253:0 0 148.7G 0 lvm /
└centos-swap 253:1 0 820M 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
df -hでディスクの状態を確認します。この時点ではまだファイルシステムが拡張されていません。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 39G 33G 6.4G 84% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 301M 197M 61% /boot
tmpfs 379M 0 379M 0% /run/user/1000
tmpfs 379M 0 379M 0% /run/user/1001
最後にxfs_growfsコマンドで拡張したLVを対象にファイルシステムを拡張します。
$ xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256 agcount=24, agsize=436992 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=10146816, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10146816 to 38982656
再度df -hコマンドで、ファイルシステムが拡張されたことを確認します。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 149G 33G 117G 22% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 301M 197M 61% /boot
tmpfs 379M 0 379M 0% /run/user/1000
tmpfs 379M 0 379M 0% /run/user/1001
[amazon_link asins='4800711967,4798055158,4797382686,B01G35U2HG,B00XOM9NEU,4797380942,4798146374,B01B2DO82O,B01N27ZIL9' template='ProductCarousel' store='kuma055-22' marketplace='JP' link_id='b498e061-ce0b-11e8-844f-29d10c0c134c']
コメント