LoginSignup
7
8

More than 5 years have passed since last update.

ConoHaの追加SSDをLVMでルートファイルシステムに割り当てる

Last updated at Posted at 2016-09-21

ConoHaは標準で50GBのSSDが仮想サーバーに付いてきます。そしてオプションで250GBや500GBのSSDを追加することができます。この追加したストレージは、仮想サーバーからは別のドライブと見なされます(Linuxでは/dev/vdaと/dev/vdbになる)。

「50GBで運用していて、足りなくなったので250GBを追加したい」といったケースでは、合わせて300GBの1ドライブとして扱いたくなるでしょう。幸いConoHaのCentOS7系のイメージはLVMが使われているので、以下の手順で2つのドライブをまとめて1ドライブとして扱うことができます。

(注) ConoHaのCentOS 7.3以降のイメージは、LVMではなくext4ファイルシステムが使われているようなので、この記事の手順を使うことはできません

やり方

ConoHaのCentOS7イメージアは以下のようなパーティション構成になっていて、ファイルシステムはxfsです。ほぼデフォルトのインストールです。そして、追加したSSDはマウントされていません。

# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        48G  1.4G   47G   3% /
devtmpfs                devtmpfs  487M     0  487M   0% /dev
tmpfs                   tmpfs     497M     0  497M   0% /dev/shm
tmpfs                   tmpfs     497M   13M  484M   3% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/vda1               xfs       497M  170M  328M  35% /boot
tmpfs                   tmpfs     100M     0  100M   0% /run/user/0

LVMは下記のようなレイアウトになっています。一つの物理ボリューム(PV)。そしてcentosと言う名前の一つのボリュームグループ(VG)です。論理ボリューム(LV)は2つあって、ルートファイルシステムとスワップに割り当てられています(VG Nameは環境によって異なる場合があります)。

# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               49.51 GiB
  PE Size               4.00 MiB
  Total PE              12674
  Alloc PE / Size       12663 / 49.46 GiB
  Free  PE / Size       11 / 44.00 MiB
  VG UUID               YwWgHt-3qRA-0VNA-mwx8-4T8Z-SJWq-bX2kuC

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               centos
  PV Size               49.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              12674
  Free PE               11
  Allocated PE          12663
  PV UUID               OQ0g7d-2BeQ-PXOr-B9lK-hfmU-8F2K-ZR4h8m

パーティショニング

まず追加SSD全体をLVMの物理ボリュームとしてパーティショニングします。fdiskでも良いですが、ここではpartedを使います。

# parted /dev/vdb

print で現在の状況を表示します。

# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Error: /dev/vdb: unrecognised disk label
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted)

そして、
* mklabelでラベルを与えて
* mkpartで領域の確保を行い
* set でLVMフラグを立てます。

mkpartの第3引数は、0以下の値を渡すとディスクの最終セクターを指定したことになります。

(parted) mklabel gpt
(parted) mkpart primary 1 -1
(parted) set 1 lvm on
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name     Flags
 1      1049kB  215GB  215GB               primary  lvm

そして、quitでpartedを終了します。これで/dev/vdb1ができているはずです。

物理ボリュームの作成

作成したパーティションに物理ボリュームを作成します。

# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created

ボリュームグループの作成

作成した物理ボリュームを既存のcentosボリュームグループに追加します。その後vgdisplayを実行すると、容量が増えていることが確認できます。出力が長くなるので載せませんが、vgdisplayに -v オプションを付けると、2つの物理ボリュームが見えるはずです。

# vgextend centos /dev/vdb1
  Volume group "centos" successfully extended
# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               249.50 GiB
  PE Size               4.00 MiB
  Total PE              63873
  Alloc PE / Size       12663 / 49.46 GiB
  Free  PE / Size       51210 / 200.04 GiB
  VG UUID               YwWgHt-3qRA-0VNA-mwx8-4T8Z-SJWq-bX2kuC

論理ボリュームの拡張

次にボリュームグループの新しい空き領域を、既存の論理ボリュームに割り当てます。以下のコマンドは空き領域を全てルートファイルシステムに割り当てています。lvdisplayを実行すると、ディスクサイズ容量が増えていることが確認できます。

# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 47.46 GiB (12151 extents) to 247.50 GiB (63361 extents).
  Logical volume root successfully resized.
# lvdisplay /dev/centos/root
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                YcfoSu-M0o7-cvWK-Op2I-LxyG-0gHK-ffypmV
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-24 14:02:13 +0900
  LV Status              available
  # open                 1
  LV Size                247.50 GiB
  Current LE             63361
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

xfsファイルシステムを拡張する

最後にxfsファイルシステムを拡張して、空き領域をファイルシステムに認識させます。これには xfs_growfs コマンドを使います。

# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3110656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=12442624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6075, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12442624 to 64881664
#

dfなどで空き容量が増えていることが確認できれば完了です。

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  248G  1.4G  247G   1% /
devtmpfs                 487M     0  487M   0% /dev
tmpfs                    497M     0  497M   0% /dev/shm
tmpfs                    497M   13M  484M   3% /run
tmpfs                    497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                497M  170M  328M  35% /boot
tmpfs                    100M     0  100M   0% /run/user/0
7
8
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
7
8