※3/18追記
どうやらfdiskを使うやり方は少々古いようです。
partedコマンドでDISK領域を増やす方法があったので、こちらもご紹介します。
partedのインストール
デフォルトだとpartedコマンドがないのでインストールします。
# yum install parted
拡張前の状態を確認する
dfだと3.9GBしか認識されていませんが、sda領域自体はトータル10GBありますね。
[root@db ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_templete-lv_root 3.9G 1.3G 2.4G 35% / tmpfs 242M 0 242M 0% /dev/shm /dev/sda1 477M 101M 351M 23% /boot [root@db ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 4.5G 0 part ├─vg_templete-lv_root (dm-0) 253:0 0 4G 0 lvm / └─vg_templete-lv_swap (dm-1) 253:1 0 512M 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom
fdiskでパーティションを確認。一部しか割当たっていない状態。残りはフリー。
[root@db ~]# fdisk -l /dev/sda Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000a9c6d Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 653 4729856 8e Linux LVM Partition 2 does not end on cylinder boundary.
partedでパーティション切り直し
partedコマンドで早速パーティションを切り分けしていきましょう。
[root@db ~]# parted /dev/sda GNU Parted 2.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
初期の段階では、セクタの単位がバラバラになので
以下のコマンドでメガバイト単位に固定した方が見やすいかと。
(parted) unit MB
(parted) print Model: Msft Virtual Disk (scsi) Disk /dev/sda: 10737MB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1.05MB 525MB 524MB primary ext4 boot 2 525MB 5369MB 4843MB primary lvm
2 のパーティション削除します。
なにやら物騒なエラー出力がでましたが、実際に領域が消失した訳ではないのでご安心を。
(parted) rm 2 Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot. (parted) print Model: Msft Virtual Disk (scsi) Disk /dev/sda: 10.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 525MB 524MB primary ext4 boot
全容量を使えるようにパーティションを再作成。増えてますね。
(parted) mkpart primary 525MB 10.7GB (parted) print Model: Msft Virtual Disk (scsi) Disk /dev/sda: 10.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 10.7GB 10.2GB primary
作成したパーティションにLVMフラグをセット。
(parted) set 2 lvm on (parted) print Model: Msft Virtual Disk (scsi) Disk /dev/sda: 10.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 10.7GB 10.2GB primary lvm
最後に quit でpartedを抜けます。
あとは下記にある通り、新パーティションを既存ボリュームに追加する方法を行えば
DISK領域が拡張されます。rebootいらずで更に楽ちんでした。
ふと見たら検証機のDISKの使用量が100%になってました。。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 3.9G 3.7G 4.8M 100% /
不要なファイルを削除してみましたが、それでも容量がなかなか変わらないので
DISK容量の増設をしてみたいと思います。その時の覚書です。
VM管理画面上でDISKを増設
物理的なDISKの容量を拡張します。
※VMWAREの場合
VMwareのメニューから仮想マシン→ハードディスク(IDE)→ハードディスク(IDE)設定を選択
⇒適当に増やしたい分だけ増やしておきます。
※Hyper-Vの場合
Hyper-Vのメニューからディスクの編集…→ ディスクの場所(仮想マシンのDISK)→ 拡張(E)を選択
⇒適当に増やしたい分だけ増やしておきます。
今回は5GB程容量を増やしてみました。
ちなみに増設にはサーバが停止している必要があります。
fdiskでDISKを増やす
増設したらサーバを起動します。
rootでログインしたらfdiskコマンドでちゃんと増えているか確認。
[root@test ~]# fdisk -l /dev/sda Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000bd63d Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 653 4729856 8e Linux LVM Partition 2 does not end on cylinder boundary.
元のDISK容量が3.9GBでしたが、総容量が10.7GBに増えてます。
しかし、実際に使える領域は増えてません。
パーティションを切り直します。Windowsで言うところのフォーマットですね。
※念のためバックアップやスナップショットは取りましょう。
[root@test ~]# fdisk /dev/sda The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
入ったらまず既存のパーティションを一旦消します。
[root@test ~]# [root@test ~]# fdisk /dev/sda The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): d Partition number (1-4): 2 Command (m for help): p Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000bd63d Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary.
消えたので作り直します。
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (64-1305, default 64): Using default value 64 Last cylinder, +cylinders or +size{K,M,G} (64-1305, default 1305): Using default value 1305 Command (m for help): p Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000bd63d Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1305 9969388+ 83 Linux
LVMなので変更します。
Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): p Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000bd63d Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1305 9969388+ 8e Linux LVM
これで新しいディスク領域が使えるようになりました。
確認して大丈夫だったら保存して抜けます。
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. 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) Syncing disks.
そしてマシンを再起動します。
# reboot
新しいパーティションを既存ボリュームに追加する
再起動した直後はまだDISK領域は増えてませんので、ディスクを拡張します。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 3.9G 3.7G 4.6M 100% /
最後の仕上げです。
物理ボリュームをリサイズします。
[root@test ~]# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
論理ボリュームを拡張します。
lvextendを実行することで、拡張されたVGの未使用領域をLVに追加できます。
以下はVG上の未使用領域のすべてをLVに追加する場合の実行例。
[root@test ~]# lvextend -l +100%FREE /dev/mapper/VolGroup-lv_root Size of logical volume VolGroup/lv_root changed from 4.01 GiB (1026 extents) to 9.00 GiB (2305 extents). Logical volume lv_root successfully resized.
resize2fsを実行してファイルシステムを拡張します。
[root@test ~]# resize2fs /dev/mapper/VolGroup-lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 2360320 (4k) blocks. The filesystem on /dev/mapper/VolGroup-lv_root is now 2360320 blocks long.
こちらで作業が完了になります。
[root@test ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 8.8G 3.7G 4.7G 44% /
DISKの使用量が100%から44%まで減少しました。成功ですね。
※参考サイト
http://d.hatena.ne.jp/tatz_tsuchiya/20140202/1391328269
http://qiita.com/2or3/items/501f206a6091a4ce895f
http://qiita.com/g_maeda/items/3602dc2f7af3f711f9c4
http://yomon.hatenablog.com/entry/2016/04/22/233825