
前回の記事では、LVM とは何か、そしてそれを何に使用するかを説明しました
。今日は、インストールをセットアップまたは拡張する際に自信を持てるように、LVM の主要な管理ツールのいくつかを説明します。
前に述べたように、LVM はオペレーティング システムと物理ハード ドライブ間の抽象化レイヤーです。これは、物理ハード ドライブとパーティションが、それらが存在するハード ドライブとパーティションに関連付けられなくなることを意味します。むしろ、オペレーティング システムが認識するハード ドライブとパーティションは
、一緒にプールされた、またはソフトウェア RAID 内の任意の数の個別のハード ドライブ
になります。
LVM を管理するために使用できる GUI ツールがありますが、LVM 構成で何が起こっているかを実際に理解するには、コマンド ライン ツールが何であるかを知ることがおそらく最善です。これは、GUI ツールを提供しないサーバーまたはディストリビューションで LVM を管理している場合に特に便利です。
LVM のコマンドのほとんどは互いに非常に似ています。有効な各コマンドの前には次のいずれかが付きます。
- 物理ボリューム = pv
- ボリュームグループ = vg
- 論理ボリューム = lv
物理ボリューム コマンドは、ボリューム グループ内のハード ドライブを追加または削除するためのものです。ボリューム グループ コマンドは、論理ボリューム内で操作する物理パーティションの抽象化されたセットを変更するためのものです。論理ボリューム コマンドは、オペレーティング システムが指定された領域を使用できるように、ボリューム グループをパーティションとして表示します。
ダウンロード可能なLVMチートシート
各プレフィックスでどのようなコマンドが使用できるかを理解できるように、LVM チートシートを作成しました。この記事ではいくつかのコマンドについて説明しますが、ここでは説明しきれない機能もまだたくさんあります。
マシン全体に影響するシステム全体の設定を変更するため、このリストにあるすべてのコマンドは root として実行する必要があります。
(サムネイルをクリックするとフルサイズの画像が表示されます)

現在のLVM情報を表示する方法
最初に行う必要があるのは、LVM がどのように設定されているかを確認することです。の
s
そして
display
コマンドは物理ボリューム (pv)、ボリューム グループ (vg)、および論理ボリューム (lv) を操作するため、現在の設定を確認するときに開始するのに適しています。
の
display
コマンドは情報をフォーマットするため、コマンドよりも理解しやすくなります。
s
指示。各コマンドについて、pv/vg の名前とパスが表示され、空き領域と使用済み領域に関する情報も表示されます。
最も重要な情報は PV 名と VG 名です。これら 2 つの情報を使用して、LVM セットアップの作業を続けることができます。

論理ボリュームの作成
論理ボリュームは、オペレーティング システムが LVM で使用するパーティションです。論理ボリュームを作成するには、まず物理ボリュームとボリューム グループが必要です。新しい論理ボリュームを作成するために必要なすべての手順は次のとおりです。
物理ボリュームの作成
パーティションや情報のない新品のハード ドライブを使用して、最初から始めます。まず、作業するディスクを見つけます。 (/dev/sda、sdbなど)
注: すべてのコマンドは root として実行するか、コマンドの先頭に「sudo」を追加して実行する必要があることに注意してください。
fdisk -l
ハード ドライブがこれまでにフォーマットまたはパーティション化されたことがない場合は、おそらく fdisk 出力に次のような内容が表示されるでしょう。次の手順で必要なパーティションを作成するので、これはまったく問題ありません。
新しいディスクは /dev/sdb にあるので、fdisk を使用してドライブ上に新しいパーティションを作成しましょう。
Gparted など、
GUI で新しいパーティションを作成できるツールは多数ありますが、ターミナルはすでに開いているので、 fdisk を使用して必要なパーティションを作成します。
ターミナルから次のコマンドを入力します。
fdisk /dev/sdb
これにより、特別な fdisk プロンプトが表示されます。
指定された順序でコマンドを入力して、新しいハード ドライブを 100% 使用し、LVM の準備が整った新しいプライマリ パーティションを作成します。パーティション サイズを変更する必要がある場合、または複数のパーティションが必要な場合は、GParted を使用するか、fdisk について自分で読むことをお勧めします。
警告: 次の手順ではハードドライブをフォーマットします。以下の手順を実行する前に、このハード ドライブに関する情報が何もないことを確認してください。
-
n= 新しいパーティションを作成する
-
p= プライマリ パーティションを作成します
-
1= パーティションをディスク上の最初に作成します
Enter を 2 回押して、デフォルトの最初のシリンダーと最後のシリンダーを受け入れます。
LVM で使用するパーティションを準備するには、次の 2 つのコマンドを使用します。
-
t= パーティションタイプを変更する
-
8e= LVM パーティション タイプに変更
情報を確認してハードドライブに書き込みます。
-
p= ディスクに変更を書き込む前に確認できるようにパーティション設定を表示します
-
w= 変更をディスクに書き込む
これらのコマンドを実行すると、fdisk プロンプトが終了し、ターミナルの bash プロンプトに戻ります。
入力
pvcreate /dev/sdb1
作成したばかりのパーティションに LVM 物理ボリュームを作成します。
なぜファイル システムでパーティションをフォーマットしなかったのかと疑問に思われるかもしれませんが、心配しないでください。この手順は後で説明します。
ボリュームグループの作成
パーティションを指定し、物理ボリュームを作成したので、ボリューム グループを作成する必要があります。幸いなことに、これに必要なコマンドは 1 つだけです。
vgcreate vgpool /dev/sdb1
Vgpool は、作成した新しいボリューム グループの名前です。任意の名前を付けることができますが、後で参照するときにボリューム グループであることがわかるように、ラベルの先頭に vg を付けることをお勧めします。
論理ボリュームの作成
LVM が使用する論理ボリュームを作成するには、次の手順を実行します。
lvcreate -L 3G -n lvstuff vgpool
-L コマンドは論理ボリュームのサイズ (この場合は 3 GB) を指定し、-n コマンドはボリュームに名前を付けます。 Vgpool は、lvcreate コマンドがどのボリュームからスペースを取得するかを認識するために参照されます。
論理ボリュームのフォーマットとマウント
最後のステップは、ファイル システムを使用して新しい論理ボリュームをフォーマットすることです。 Linux ファイル システムの選択についてサポートが必要な場合は、
ニーズに最適なファイル システムを選択するのに役立つハウツーを
お読みください。
mkfs -t ext3 /dev/vgpool/lvstuff
マウント ポイントを作成し、使用できる場所にボリュームをマウントします。
mkdir /mnt/stuffmount -t ext3 /dev/vgpool/lvstuff /mnt/stuff

論理ボリュームのサイズ変更
論理ボリュームの利点の 1 つは、すべてをより大きなハード ドライブに移動することなく、共有を物理的に大きくしたり小さくしたりできることです。代わりに、新しいハードドライブを追加して、オンザフライでボリュームグループを拡張できます。または、使用されていないハードドライブがある場合は、それをボリュームグループから削除して論理ボリュームを縮小できます。
物理ボリューム、ボリューム グループ、論理ボリュームを大きくしたり小さくしたりするには、3 つの基本ツールがあります。
注: これらの各コマンドの前に、作業内容に応じて pv、vg、または lv を付ける必要があります。
-
resize– 物理ボリュームと論理ボリュームは縮小または拡張できますが、ボリューム グループは縮小または拡張できません
-
extend– ボリュームグループと論理ボリュームを大きくすることはできますが、小さくすることはできません
-
reduce– ボリュームグループと論理ボリュームを小さくすることはできますが、大きくすることはできません
作成したばかりの論理ボリューム「lvstuff」に新しいハードドライブを追加する方法の例を見てみましょう。
新しいハードドライブの取り付けとフォーマット
新しいハード ドライブを取り付けるには、上記の手順に従って新しいパーティションを作成し、そのパーティション タイプを LVM (8e) に変更します。次に、pvcreate を使用して、LVM が認識できる物理ボリュームを作成します。
新しいハードドライブをボリュームグループに追加
新しいハード ドライブをボリューム グループに追加するには、新しいパーティション (この場合は /dev/sdc1) と、それを追加するボリューム グループの名前を知る必要があります。
これにより、新しい物理ボリュームが既存のボリューム グループに追加されます。
vgextend vgpool /dev/sdc1
論理ボリュームの拡張
論理ボリュームのサイズを変更するには、デバイスごとではなくサイズごとにどの程度拡張するかを指定する必要があります。この例では、8 GB ハード ドライブを 3 GB vgpool に追加しただけです。そのスペースを使用できるようにするには、lvextend または lvresize を使用します。
lvextend -L8G /dev/vgpool/lvstuff
このコマンドは機能しますが、希望どおりに既存のボリュームに 8 GB を追加するのではなく、実際には論理ボリュームのサイズが 8 GB に変更されることがわかります。利用可能な最後の 3 GB を追加するには、次のコマンドを使用する必要があります。
lvextend -L+3G /dev/vgpool/lvstuff
これで、論理ボリュームのサイズは 11 GB になりました。
ファイルシステムの拡張
論理ボリュームは 11 GB ですが、そのボリューム上のファイル システムはまだ 3 GB しかありません。ファイル システムで使用可能な 11 GB 全体を使用するには、resize2fs コマンドを使用する必要があります。 size2fs に 11 GB の論理ボリュームを指定するだけで、魔法のようなことが行われます。
resize2fs /dev/vgpool/lvstuff
注: ext3/4 以外の別のファイル システムを使用している場合は、ファイル システムのサイズ変更ツールを参照してください。
論理ボリュームの縮小
ボリューム グループからハード ドライブを削除する場合は、上記の手順を逆の順序で実行し、代わりに lvreduce と vgreduce を使用する必要があります。
- ファイル システムのサイズを変更します (サイズを変更する前に、必ずファイルをハード ドライブの安全な領域に移動してください)
- 論理ボリュームを縮小します (拡張する + の代わりに、サイズによって縮小する – を使用することもできます)
- vgreduce を使用してボリューム グループからハード ドライブを削除する

論理ボリュームのバックアップ
スナップショットは、一部の新しい高度なファイル システムに付属する機能ですが、ext3/4 にはオンザフライでスナップショットを作成する機能がありません。 LVM スナップショットの最も優れた点の 1 つは、ファイル システムがオフラインになることがなく、余分なハード ドライブのスペースを占有することなく、必要なだけスナップショットを作成できることです。
LVM がスナップショットを作成すると、論理ボリュームの外観を正確に示す写真が撮影され、その写真を使用して別のハードドライブにコピーを作成できます。コピーの作成中、論理ボリュームに追加する必要がある新しい情報は通常と同じようにディスクに書き込まれますが、元のイメージが破壊されないように変更が追跡されます。
スナップショットを作成するには、バックアップの作成中に論理ボリュームに書き込まれる新しい情報を保持するのに十分な空き領域を持つ新しい論理ボリュームを作成する必要があります。ドライブへの書き込みがアクティブに行われていない場合は、非常に少量のストレージを使用できます。バックアップが完了したら、一時論理ボリュームを削除するだけで、元の論理ボリュームは通常どおり続行されます。
新しいスナップショットの作成
lvstuff のスナップショットを作成するには、前と同様に lvcreate コマンドを使用しますが、-s フラグを使用します。
lvcreate -L512M -s -n lvstuffbackup /dev/vgpool/lvstuff
ここでは、ドライブがアクティブに使用されていないため、512 MB のみの論理ボリュームを作成しました。 512 MB には、バックアップを作成する間、新しい書き込みが保存されます。
新しいスナップショットをマウントする
前と同様に、そこからファイルをコピーできるように、マウント ポイントを作成して新しいスナップショットをマウントする必要があります。
mkdir /mnt/lvstuffbackupmount /dev/vgpool/lvstuffbackup /mnt/lvstuffbackup
スナップショットのコピーと論理ボリュームの削除
あとは、/mnt/lvstuffbackup/ からすべてのファイルを外付けハード ドライブにコピーするか、tar で圧縮してすべてを 1 つのファイルにまとめるだけです。
注: tar -c はアーカイブを作成し、-f はアーカイブの場所とファイル名を示します。 tar コマンドのヘルプについては、次を使用してください
man tar
ターミナル内で。
tar -cf /home/rothgar/ Backup /lvstuff-ss /mnt/lvstuffbackup/tar -cf /home/rothgar/ Backup /lvstuff-ss /mnt/lvstuffbackup/
バックアップの実行中、lvstuff に書き込まれるすべてのファイルは、前に作成した一時論理ボリューム内で追跡されることに注意してください。バックアップの実行中に十分な空き領域があることを確認してください。
バックアップが完了したら、ボリュームをアンマウントし、一時スナップショットを削除します。
umount /mnt/lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/umount /mnt/lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/

論理ボリュームの削除
論理ボリュームを削除するには、まずボリュームがアンマウントされていることを確認する必要があります。その後、lvremove を使用して削除できます。論理ボリュームを削除した後にボリューム グループを削除し、ボリューム グループを削除した後に物理ボリュームを削除することもできます。
ここでは、作成したボリュームとグループを使用するすべてのコマンドを示します。
umount /mnt/lvstuff
lvremove /dev/vgpool/lvstuff
vgremove vgpool
pvremove /dev/sdb1 /dev/sdc1umount /mnt/lvstuff
lvremove /dev/vgpool/lvstuff
vgremove vgpool
pvremove /dev/sdb1 /dev/sdc1
これで、LVM を使用するために知っておく必要があることのほとんどがカバーされます。このトピックに関してある程度の経験がある場合は、必ずコメントで知恵を共有してください。





