ボリュームの考え方基礎と作成の流れ(概要) | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

前回記事では、Linuxのパーティションの考え方と作成方法について書きました。

(分かりにくかったので、ちょっとだけ加筆修正しています)

 

今回は、パーティションを土台とした、ボリュームという考え方について書いていきます。

(ボリュームの具体的な作成コマンドは書いていません。あくまでボリュームの概念の説明と、作成の流れ概要のみの記事です)

 

ちなみに去年10月くらいにも似たような記事書いてたんですが、

見直したらあまりにもお粗末すぎてw 自分で書いたはずなのに参考になりませんでしたw

 

 

もくじ

1.パーティションとは(おさらい)

2.ボリュームとは概要 / ボリュームのメリット / 使用ケース例

3.ボリュームの構成概要(作成の流れ)

 

 

1.パーティションとは(おさらい)

Linuxには、1つの物理ディスク(外部記憶装置。ハードディスクやSSDなど)を、論理的に分割して、

あたかも複数のディスクを用いているようにする技術がある。

分割した記憶領域のことを、パーティションと呼ぶ。

 

※詳細は前回記事の前半でも説明しています。

 

 

2.ボリュームとは

■概要

ボリュームとは、1つ以上のパーティションを土台として作る記憶領域である。

 

ただし、ボリュームの作成は必須ではない。

論理的に区切った単位=パーティション上に、ファイルシステム(※)を直接作成すれば、ファイル配置などは可能である。

(※)ファイルシステム:ファイルやディレクトリを作るために必須となるOSの機能。

 

ボリュームを作成した場合でも、ファイルを配置するには、ファイルシステムの作成が必要となる。

つまり、以下の図のようなイメージである。(左:ボリュームなし  右:ボリュームあり)

 

ボリュームを作成するのは手間だし、無くてもファイル配置(記憶領域へのデータ保存)は可能である。

であればボリューム作成は無意味のようにも思える。

 

■ボリュームのメリット

ではなぜ、わざわざボリュームを作成するのか?

それは、記憶領域の拡張性に大きなメリットがあるためである。

 

ボリュームの定義を再掲すると、

ボリュームとは、1つ以上のパーティションを土台として作る記憶領域である。

 

そのため、2つの物理ディスク上にそれぞれ作成したパーティションを土台として、
1つの大きなボリューム(記憶領域)を作成することができる。

また、最初は1つのパーティションを土台にしていたところを、容量が不足したため後から別のパーティションを追加して、2つのパーティションを土台としたボリューム(記憶領域)とすることもできる。

 

(拡張の張の字が抜けてるように見える方は、心の目で見てくださいw

 

上の図のように、記憶領域の調整が柔軟に可能となるため、ボリュームという仕組みをわざわざ入れているのである。

ボリューム無しでパーティションを利用する場合は、最大でも1つの物理ディスクサイズを超えて容量を確保することはできないため、

特に2つ以上の物理ディスクを用いて1つの記憶領域を作りたいときに、ボリュームは便利である。

 

 

■ボリュームを使用するケース例

例えば、データベースの物理データファイル格納先パーティションを考えてみたい。

データベースの物理データサイズは、システム稼働とともに、当初予想以上に増える可能性がある。

またシステム改修などにより、データベースに格納する内容が増え、結果としてもう1台ディスクを追加して対応したいことがあるかもしれない。

 

そうした将来の拡張に備えて、最初は1つのパーティション上にボリュームを作成し、

データベースの物理データファイルを配置しておくと良い。

(もちろん最初から大きいのであれば、複数のパーティション上に作成してもOK)

 

 

また、OSやミドルウェアの設定ファイルの格納先として作成するパーティションも考えてみる。

設定ファイルについては、容量が激増することは考えにくい。

そのため設定ファイルの格納先パーティションのサイズ拡張は基本的に考慮する必要がなく、

わざわざボリュームを作成せず、パーティション上に直接ファイルシステムを作成すればOKなはずである。

 

このように、拡張性があるからといって全てのパーティション上にボリュームを作る必要は無く、

将来の拡張可能性がある時に、ボリューム構成をとれば良い。

 

 

3.Linuxのボリューム構成概要(作成概要)

ボリューム構成についてもう少し詳しく見ていく。

 

分かりやすいよう、1TBの大きさのパーティションと、500GBの大きさのパーティションを利用して、

1つの大きなボリューム領域を作成する時の構成で説明する。

イメージ:

 

この場合、いきなり1つの大きな領域を作れるわけではなく、

まず各パーティション上に、「物理ボリューム」と呼ばれる領域をそれぞれ作成する必要がある。

 

 

そのあと、作成した各物理ボリュームを、ボリュームグループという、1つの大きなくくりとして定義する。

上記のように、ボリュームグループを作成することで、合計1.5TB分の記憶領域のプールができることになる。

 

ボリュームグループを作成した後は、

ボリュームグループ内にプールされている記憶領域をもとに、「論理ボリューム」を作る。

この論理ボリューム上に、ファイルシステム機能を作成することで、ファイルの配置等が可能になる仕組みである。

 

ここまでのボリューム作成の流れをまとめると、

物理ディスクから作成したパーティションを土台として、

 ①物理ボリュームを作る。

 ②1つ以上の物理ボリュームを合体させて、記憶領域のプールである、ボリュームグループを作成する。

 ③ボリュームグループから、論理ボリュームを作成する。

となる。

 

なお上記の流れでは1つの大きな論理ボリュームを作成したが、

複数の論理ボリュームを作ることも可能である。

 

 

ちなみに、ボリュームグループは、デフォルトで4MBごとにブロック(物理エクステントと呼ばれる)に分けられており、最小で4MBの記憶領域=論理ボリュームを作ることができるようになっている。

 

ざっくりイメージとしてはこんな感じ。

 

 

ここまで、ボリュームの構成と、作成の流れ(概要)を説明した。

 

 

具体的な作成手順は、RedHatの公式などご確認ください。

 

 

今回は以上!