##はじめに
論理ボリュームについて調べてみました。
環境は お名前.com VPS にインストールした CentOS 7.4 です。
##パーティション構成を把握する
お名前.com VPS は初期状態だとストレージが2つに分割されています。
私はOS領域に60GB、残り140GBを /home
にマウントする想定でストレージを再構成してからインストールしました。CentOS 7.4 のインストール自体は基本デフォルト構成でインストール済みです。
まずは実体把握のために df
コマンドを実行してみます。
[root@localhost ~]# df
tmpfs
は一時ファイルを格納するための仕組みなので、特に気にしないことにします。
以外のデバイスとマウントポイントは以下の通り整理できます。
デバイス | マウントポイント |
---|---|
/dev/mapper/centos-root | / |
/dev/mapper/centos-home | /home |
/dev/vda1 | /boot |
CentOS 7.4 をインストールしたデバイスは /dev/vda
なので、fdisk
コマンドで構成を確認してみます。
[root@localhost ~]# fdisk -l /dev/vda
/boot
にマウントしている /dev/vda1
はbootデバイスであることが判ります。
/dev/vda2
は、Linux LVM となっていますが、これは論理ボリュームマネージャー(LVM: Logical Volume Manager)です。
論理ボリュームマネージャーとは、論理ボリュームという単位でパーティションを扱うことで、物理的なストレージ構成を隠蔽するための仕組みです。例えば、複数の物理ストレージをまとめてひとつのボリュームグループとして定義し、それを論理ボリュームに分けて扱うことが可能です。こうすることで、物理的なストレージ構成の変更をユーザーやアプリケーションで意識する必要がなくなるので、ストレージデバイスの管理が容易となります。
/dev/vda
の構造をもう少し詳しく調べてみました。
まずは、ボリュームグループを調査するために、vgdisplay
コマンドを実行します。
[root@localhost ~]# vgdisplay
ボリュームグループは centos
という名前で定義されていました。
次に論理ボリュームを調査するために、lvdisplay
コマンドを実行します。
[root@localhost ~]# lvdisplay
以下の3つの論理ボリュームを確認することができました。
論理ボリューム名 |
---|
/dev/centos/swap |
/dev/centos/home |
/dev/centos/root |
デバイスとして、ボリュームグループ centos
の配下に紐付いていることがわかります。
これらの結果から、/dev/vda
は以下の図のように表現することができます。
/dev/vda1
は前述したとおりbootパーティションですので、論理ボリュームマネージャーではありません。
/dev/vda2
は論理ボリュームマネージャーであり、ボリュームグループ /dev/centos
を3つの論理ボリューム /dev/centos/swap
/dev/centos/root
/dev/centos/home
に分割しています。
また、括弧内に記載の /dev/mapper/centos-swap
/dev/mapper/centos-root
/dev/mapper/centos-home
は、デバイスマッパーが割り当てたデバイスであり、同じものを示しています。
同じものを示しているかは、それぞれのデバイスパスを見ればわかります。
[root@localhost ~]# cd /dev/centos
[root@localhost centos]# ls -la
[root@localhost centos]# cd /dev/mapper
[root@localhost mapper]# ls -la
デバイスマッパーは、/dev/dm-(数字)
というカーネルが管理する便宜上のデバイスを /dev/mapper/(マップ名)
にマッピングします。
論理ボリュームマネージャーはデバイスマッパーを利用するアプリケーションとしての位置づけなので、論理ボリュームはデバイスマッパーが形成したデバイスを示すシンボリックリンクであるというのが正しい解釈だと考えられます。(あくまで私がそのように解釈しただけですが ^^;)
##最後に
今回は論理ボリュームマネージャーについて調べてみました。特に論理ボリュームに対する利点などを追求する内容ではありませんでしたが、構造上どのように形成されているかのイメージはつかめたように感じます。
そもそもこの内容を調べたのは、残り140GBの領域を /home
にマウントしようと考えていたときに、ある程度 Linux のファイルシステムやストレージの扱いについて理解しておいたほうが良いのでは?と思い立ったからです。
理解しきるのは非常に難しいのでしょうが、難しい中にも少しの理解やキーワードを知る機会を得たことは非常に良かったと思います。