LoginSignup
3
3

More than 5 years have passed since last update.

ディスクの空き容量を LVM にくっつける

Posted at

VM やクラウドをいじっているとき、インスタンスに割り当てるディスクを増やしたものの起動したイメージでドライブサイズが決まってしまい後ろが未使用のまま空いているという場面に良く出会います。
このような時の解決方法は環境によってさまざまなのですが、最近私がよくやっている手順が

  1. fdisk で新しいパーティションを作り後ろの空きをすべて割り当てる
  2. 作成した新しいパーティションを LVM にする
  3. 既存の LVM に新しいパーティションをくっつける

というものです。

あまりにもよくやる手順なのでシェルスクリプトにまとめてみました。

#!/bin/bash

DEVICE=/dev/sda
ADDDEVICE=debian-vg
ADDDRIVE=/dev/debian-vg/root

SMAX=`fdisk -l ${DEVICE} | awk '$0 ~ /sectors$/ {print $7-1}'`
SMIN=`fdisk -l ${DEVICE} | awk '$0 ~ /^\/dev/ {if(m<$3) m=$3} END{print m+1}'`

echo 'free area '${SMIN}' - '${SMAX}
parted -s -a optimal ${DEVICE} -- mkpart P${PART} ${SMIN}s ${SMAX}s
PART=`parted -s ${DEVICE} print | awk '$1 ~ /^([0-9]+)/ {if(m<$3) m=$3;n=$1} END{print n}'`
parted -s ${DEVICE} set ${PART} lvm on

echo 'create device '${DEVICE}${PART}
pvcreate ${DEVICE}${PART}
vgextend ${ADDDEVICE} ${DEVICE}${PART}
lvextend -l +100%FREE ${ADDDRIVE}
resize2fs ${ADDDRIVE}

ADDDEVICE が追加先の LVM VG 名、ADDDRIVE が追加先のドライブデバイス名になります。
これらはあらかじめ編集して指定しておきます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3