Blog Detail

CentOS7のLVMを使ってHDD追加&パーティションの拡張をしてみる。(メモ)

2016年11月17日
Linux
, , , ,
No Comments

CentOS7のインストール時にパーティション作成を「おまかせ」で進めると、LVMを使って後でいろいろ変更出来る様に設定した状態でインストールしてくれます。
今回はこの状態から、新たにHDDを追加しその領域を全て /homeパーティションの領域として追加する手順を書いておこうと思います。

LVM(Logical Volume Manager)、論理ボリュームマネージャを使うには、いくつかの概念を理解しておく必要があります。
簡単にまとめておきます。

  • lvmパーティション
    LVM配下で使いたいディスク領域をパーティション単位で指定したい場合は「lvmパーティション」を作成します。
    通常のfdiskやpartedで切ったパーティションに lvmフラグ を立てておきます。
  • PV(Physical volume)
    LVMに登録する物理的なディスク領域です。lvmパーティションやHDD丸ごと全て登録する事も出来ます。
  • VG(Volume group)
    PVを集めたものです。複数のPVをひとつのディスク領域の様に扱うことが出来る様になります。
  • LV(Logical volume)
    VGから割り当てたディスク領域で作成した論理的なパーティションです。これにファイルシステムを作成しマウントして利用します。

まず、現状を確認してみます。
500GByteのHDDにCentOS7のインストーラーおまかせのパーティション作成でインストールしてあります。

現状確認

HDDのパーティションの状態

LVMはLinuxカーネルに組み込まれた機能です。Linuxカーネルが立ち上がってから利用出来る機能ですから、LVMの論理ボリュームからブートは行なえません。
ですので、/bootパーティションだけ通常通り primaryのパーティションを切って直接xfsのファイルシステムが作成されています。
他の領域は全てLVM配下の領域としている様です。

LVの状態を確認します。

ルートパーティション、/home/パーティション、swapパーティションの領域が centosという名前のVGから領域を切り取って作成されているのがわかります。

では、VG centosの中身を確認しておきましょう。

VG centos はPV /dev/sda2 の物理ディスク領域が登録されている事が解ります。

PVの登録状況を確認しましょう。

lvmビットが立っていた /dev/sda2パーティションが登録されているのが解ります。

まとめると、/dev/sda2のディスク領域を VG centos に登録し、そのVGの領域を切り分け ルート、ホーム、スワップの各論理パーティションを作成している。という事になります。

HDDの追加登録

新たにHDDを追加し、この領域を全て /homeパーティションに追加していきます。

新しいHDDは、4TB、2TB、1.5TB の3本を一気に追加しちゃいます。
容量もメーカーもバラバラ、柔軟性に富んでいるのがLVMの良いところです。

HDDをサーバーに搭載し、Linuxからは以下の様に認識しています。
もともと接続されていたシステムが入っているHDDは /dev/sda、500GBのものです。

  • 4TB /dev/sdb
  • 2TB /dev/sdc
  • 1.5TB /dev/sdd

PVへの登録

HDDにパーティションテーブルを作成し、LVMパーティションを作成してこれを登録する方法もありますが、今回はHDD全てをLVM配下で利用しますので、HDDデバイスを直接PVとして登録しちゃいます。

PVの登録は「pvcreate」コマンドを実行します。

/dev/sdb、/dev/sdc、/dev/sdd 全てPVに登録しました。
これらのディスク領域がLVM配下で利用出来る様になりました。

VGへの登録

VG centos へ新たに作成したPVを全て追加登録して、VG centosのディスク領域を拡張していきます。
VGへのPVの追加登録は「vgextend」コマンドを実行します。

VGを確認してみましょう。

PV /dev/sdb、/dev/sdc、/dev/sdd が新たに加わっていればOKです。
VG centosに新たに空き容量が増え、新たにLVへ容量を割り当てる準備が整いました。

LV(home)への登録

VG centosの新たに増えたディスク領域をLV home に全て追加登録していきます。
LVへのVG領域の追加割当は「lvextend」コマンドを実行します。

ここまでの作業で、論理的な /home/パーティションの容量は新たに追加登録したディスク領域によって拡張されました。
この状態では以前の小さなパーティションサイズに合わせて作成されたファイルシステムが存在していますので、そのファイルシステムの容量でしか利用する事が出来ません。
新しいパーティションサイズをフルに利用する為には、新たにファイルシステムを作成し直すか、既存のファイルシステムを拡張する必要があります。
今回はファイルシステムを拡張する方法を行ってみます。

ファイルシステムの拡張

CentOS7の標準ファイルシステムは XFSとなった様です。
今回インストールしたマシンでも XFSでホームパーティションがフォーマットされていました。

このXFSのファイルシステムの拡張を行います。
XFSの拡張を行うコマンドは「xfs_growfs」です。

容量を確認してみます。

/home にマウントされたファイルシステムが想定される容量になっていればOKです。

以前の ext3/ext4 ファイルシステムの場合は「resize2fs」コマンドで同様の作業を行います。

感想

LVMは非常に柔軟的なディスク管理が行え、とても便利な仕組みです。
長く運用する予定のサーバーを構築する際には導入を検討するべきだと思います。
あるパーティションの容量が逼迫した際には、楽に対応策が考えられる事でしょう。

しかしながら、私としてはあまり積極的に使用してはきませんでした。
高度な処理が追加されるからには、それに伴いオーバーヘッドが発生するからです。
重いのか軽いのかは私には解りませんが、必ずオーバーヘッドは発生します。
という事なので、普段働かせているサーバーは極力付加機能を省いたパフォーマンス第一の構成でサーバー構築する事にしています。

今回作成したマシンは、データバックアップ用のサーバーとして作成したものです。
この様な用途の場合、ディスクI/Oの性能を最大化する必要もありませんし、何よりLVMの機能の恩恵にあずかりたい用途です。
容量が不足したらHDDの追加だけで簡単に対応出来ますからね。これは大きなメリットです。

何でもそうですが、適材適所で効率良く使っていきたいですね。

Leave A Comment