はじめに
今回は、Amazon EBS のパーティション小手先技です。
通常、パーティションを分ける場合は新たにEBSボリュームを追加し分けることが多いと思います。しかし、SSDの場合には容量によってIOPSが設定されるため、ひとつのボリュームで大きくとった方がお得です。そこで、ボリュームを分けるひとつ方法として解説していきます。
容量が300GBのEBSで、AMIはCentOS(hvm)です。
hvmの場合って自動的にresizeしてくれないんですよね orz
作業順序
- ①最初はルートパーティションは8GB
- ②後ろから200GBを確保
- ③ルートパーティションを100GBに拡張
後ろから200GBを確保
最初にパーティションの変更を行うめ parted
をインストールします。
# yum install parted
partedを起動します。
# parted GNU Parted 2.1 /dev/xvda を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
MB表示にします。
(parted) unit B
現在のパーティションを表示します。
(parted) print モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 322122547200B セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32256B 8589934591B 8589902336B primary ext4 boott
パーティションを作成します。
開始は後ろから200GBを確保します。
(parted) mkpart パーティションの種類? primary/プライマリ/extended/拡張? primary ファイルシステムの種類? [ext2]? ext4 開始? 107374182400B 終了? 322122547199B 警告: WARNING: the kernel failed to re-read the partition table on /dev/xvda (デバイスもしくはリソースがビジー状態です). As a result, it may not reflect all of your changes until after reboot.
再起動します。
(parted) quit
# reboot
ファイルシステム作成します。 xvda2
が作成されているので ext4
にします。
# mkfs.ext4 /dev/xvda2 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) --省略-- This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
parted
で確認します。
(parted) print モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 322GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32.3kB 8590MB 8590MB primary ext4 boot 2 117GB 322GB 205GB primary ext4
マウントしてみましょう。 fstab
に以下を追加。
# vi /etc/fstab
/dev/xvda2 /mnt ext4 defaults 0 2
# mount -a
マウントを確認します。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 743M 6.7G 10% / tmpfs 7.4G 0 7.4G 0% /dev/shm /dev/xvdc 37G 177M 35G 1% /media/ephemeral1 /dev/xvda2 197G 60M 187G 1% /mnt
ルートパーティションを100GBに拡張
確認が行えたら、次にルート側を拡張します。dracut-modules-growroot
をインストールします。
# yum install dracut-modules-growroot
以下がインストールされます。
cloud-utils-growpart
dracut-modules-growroot
コマンドでパーティションを拡張します。
# dracut --force --add growroot /boot/initramfs-$(uname -r).img
参考:CentOS on Amazon EC2 でディスクサイズ変更しても変わらないときの対処方法
起動を確認した場合は
Filesystem Size Used Avail Use% Mounted on /dev/xvda1 99G 755M 93G 1% / tmpfs 7.4G 0 7.4G 0% /dev/shm /dev/xvdc 37G 177M 35G 1% /media/ephemeral1 /dev/xvda2 197G 60M 187G 1% /mnt
自動的にリサイズされるAMIの場合は方法が異なります。
最初にルートパーティション分のEBSを確保し以下の行を削除し、parted
で調整しましょう。
# vi /etc/cloud/cloud.cfg – growpart – resizefs
まとめ
安価にひとつのEBSで少々パフォーマンスを向上させたいときにいかがでしょうか。
元記事はこちらです。
「ひとつのEBSを分割してみますよ」