LVMガイド · 4 min read · Sep 22, 2025

LVMの初心者ガイド

バージョン 1.0
著者: Falko Timme
最終更新日: 2015-02-09

このガイドでは、Linux上でLVM(論理ボリューム管理)を使用する方法を示します。また、RAID1と一緒にLVMを使用する方法についての特別な章もあります。LVMはかなり抽象的なトピックであるため、このアーティクルにはダウンロードして起動できるDebian EtchのVMwareイメージが付属しており、そのDebian Etchシステム上でここで実行するすべてのコマンドを実行し、あなたの結果を私のものと比較することができます。この実践的なアプローチにより、LVMにすぐに慣れることができるでしょう。

ただし、このチュートリアルがあなたにとって機能することを保証するものではありません!

1 前提条件

このチュートリアルは、私が読んだ2つの記事に触発されました:

これらは素晴らしい記事ですが、LVMを使ったことがないと理解するのが難しいです。だからこそ、私はダウンロードしてVMware ServerまたはVMware Playerで実行できるDebian EtchのVMwareイメージを作成しました(その方法についてはhttps://www.howtoforge.com/import_vmware_imagesを参照してください)。

このガイドの過程で必要なすべてのツールをDebian Etchシステムにインストールしました(次のコマンドを実行することで)

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

そのため、心配する必要はありません。

Debian EtchシステムのネットワークはDHCPを通じて構成されているため、IPアドレスの競合について心配する必要はありません。ルートパスワードはhowtoforgeです。また、PuTTYのようなSSHクライアントを使ってそのシステムに接続することもできます。Debian EtchシステムのIPアドレスを調べるには、次のコマンドを実行します。

ifconfig

システムには6つのSCSIハードディスク、/dev/sda - /dev/sdfがあります。/dev/sdaはDebian Etchシステム自体に使用され、/dev/sdb - /dev/sdfはLVMとRAIDに使用します。/dev/sdb - /dev/sdfはそれぞれ80GBのディスクスペースを持っています。最初はそれぞれに25GBのディスクスペースしかないかのように振る舞い(したがって、それぞれに25GBのみを使用し)、チュートリアルの過程で25GBのハードディスクを80GBのハードディスクに「置き換える」ことで、LVMで小さなハードディスクを大きなものに置き換える方法を示します。

記事http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.htmlでは250GBと800GBのハードディスクを使用していますが、pvmoveのような一部のコマンドはそのようなハードディスクサイズでは時間がかかるため、25GBと80GBのハードディスクを使用することにしました(LVMの動作を理解するには十分です)。

1.1 概要

このDebian EtchのVMwareイメージ(約310MB)をダウンロードし、次のように起動します。パスワードhowtoforgeでrootとしてログインします。

2 LVMレイアウト

基本的にLVMは次のようになります:

1つ以上の物理ボリューム(例:/dev/sdb1 - /dev/sde1)があり、これらの物理ボリューム上に1つ以上のボリュームグループ(例:fileserver)を作成し、各ボリュームグループ内に1つ以上の論理ボリュームを作成できます。複数の物理ボリュームを使用する場合、各論理ボリュームは基盤となる物理ボリュームのいずれかよりも大きくすることができます(ただし、もちろん論理ボリュームの合計は物理ボリュームが提供する総スペースを超えることはできません)。

論理ボリュームに全スペースを割り当てず、いくつかのスペースを未使用のままにしておくことは良い習慣です。そうすれば、必要に応じて後で1つ以上の論理ボリュームを拡張できます。

この例では、fileserverというボリュームグループを作成し、/dev/fileserver/share、/dev/fileserver/backup、/dev/fileserver/mediaという論理ボリュームを作成します(これらは今のところ物理ボリュームが提供するスペースの半分しか使用しません - これにより、後でRAID1に切り替えることができます(このチュートリアルでも説明されています))。

3 最初のLVMセットアップ

ハードディスクについて調べてみましょう:

fdisk -l

出力は次のようになります:

server1:~# fdisk -l  
 
 ディスク /dev/sda: 21.4 GB, 21474836480 バイト  
 255 ヘッド, 63 セクタ/トラック, 2610 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sda1   *            1            18        144553+   83   Linux  
 /dev/sda2                19          2450   19535040    83   Linux  
 /dev/sda4              2451          2610   1285200    82   Linux swap / Solaris  
 
 ディスク /dev/sdb: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sdb には有効なパーティションテーブルが含まれていません  
 
 ディスク /dev/sdc: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sdc には有効なパーティションテーブルが含まれていません  
 
 ディスク /dev/sdd: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sdd には有効なパーティションテーブルが含まれていません  
 
 ディスク /dev/sde: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sde には有効なパーティションテーブルが含まれていません  
 
 ディスク /dev/sdf: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sdf には有効なパーティションテーブルが含まれていません

/dev/sdb - /dev/sdfにはまだパーティションがありません。/dev/sdb1、/dev/sdc1、/dev/sdd1、および/dev/sde1のパーティションを作成し、/dev/sdfは今のところそのままにしておきます。ハードディスクが80GBではなく25GBのスペースしかないかのように振る舞い、/dev/sdb1、/dev/sdc1、/dev/sdd1、および/dev/sde1に25GBを割り当てます:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
ディスクのシリンダ数は10443に設定されています。
それには何の問題もありませんが、これは1024よりも大きく、
特定のセットアップでは次の問題を引き起こす可能性があります:

  1. ブート時に実行されるソフトウェア(例:古いバージョンのLILO)
  2. 他のOSからのブートおよびパーティショニングソフトウェア
    (例:DOS FDISK、OS/2 FDISK)

コマンド(ヘルプはm): <– m
コマンドアクション
a   ブート可能フラグを切り替える
b   bsdディスクラベルを編集
c   dos互換フラグを切り替える
d   パーティションを削除
l   既知のパーティションタイプをリスト
m   このメニューを表示
n   新しいパーティションを追加
o   新しい空のDOSパーティションテーブルを作成
p   パーティションテーブルを表示
q   変更を保存せずに終了
s   新しい空のSunディスクラベルを作成
t   パーティションのシステムIDを変更
u   表示/エントリ単位を変更
v   パーティションテーブルを検証
w   テーブルをディスクに書き込み、終了
x   追加機能(専門家のみ)

コマンド(ヘルプはm): <– n
コマンドアクション
e   拡張
p   プライマリパーティション(1-4)
<– p
パーティション番号(1-4): <– 1
最初のシリンダ(1-10443、デフォルトは1): <–
デフォルト値1を使用
最後のシリンダまたは+サイズまたは+サイズMまたは+サイズK(1-10443、デフォルトは10443): <– +25000M

コマンド(ヘルプはm): <– t
選択したパーティション1
16進数コード(コードをリストするにはL): <– L

0   空             1e   隠しW95 FAT1 80   古いMinix         be   Solarisブート
1   FAT12             24   NEC DOS           81   Minix / 古いLin   bf   Solaris
2   XENIXルート       39   Plan 9           82   Linux swap / So c1   DRDOS/sec(FAT-
3   XENIXユーザー       3c   PartitionMagic   83   Linux             c4   DRDOS/sec(FAT-
4   FAT16 <32M       40   Venix 80286       84   OS/2隠しC:   c6   DRDOS/sec(FAT-
5   拡張          41   PPC PRePブート   85   Linux拡張   c7   Syrinx
6   FAT16             42   SFS               86   NTFSボリュームセット da   Non-FSデータ
7   HPFS/NTFS         4d   QNX4.x           87   NTFSボリュームセット db   CP/M / CTOS / .
8   AIX               4e   QNX4.x 2ndパート   88   Linuxプレーンテキスト   de   Dellユーティリティ
9   AIXブート可能   4f   QNX4.x 3rdパート   8e   Linux LVM         df   BootIt
a   OS/2ブートマネージャ   50   OnTrack DM       93   Amoeba            e1   DOSアクセス
b   W95 FAT32         51   OnTrack DM6 Aux   94   Amoeba BBT        e3   DOS R/O
c   W95 FAT32(LBA) 52   CP/M              9f   BSD/OS            e4   SpeedStor
e   W95 FAT16(LBA) 53   OnTrack DM6 Aux   a0   IBM Thinkpad hi   eb   BeOS fs
f   W95 Ext’d(LBA) 54   OnTrackDM6        a5   FreeBSD           ee   EFI GPT
10   OPUS              55   EZ-Drive          a6   OpenBSD           ef   EFI(FAT-12/16/
11   隠しFAT12   56   Golden Bow        a7   NeXTSTEP          f0   Linux/PA-RISC b
12   Compaq診断   5c   Priam Edisk   a8   Darwin UFS       f1   SpeedStor
14   隠しFAT16 <3   61   SpeedStor         a9   NetBSD            f4   SpeedStor
16   隠しFAT16   63   GNU HURDまたはSys   ab   Darwinブート   f2   DOSセカンダリ
17   隠しHPFS/NTF   64   Novell Netware   b7   BSDI fs           fd   Linux raid auto
18   AST SmartSleep   65   Novell Netware   b8   BSDIスワップ       fe   LANstep
1b   隠しW95 FAT3   70   DiskSecure Mult   bb   Boot Wizard hid   ff   BBT
1c   隠しW95 FAT3   75   PC/IX
16進数コード(コードをリストするにはL): <– 8e
パーティション1のシステムタイプを8e(Linux LVM)に変更しました。

コマンド(ヘルプはm): <– w
パーティションテーブルが変更されました!

ioctl()を呼び出してパーティションテーブルを再読み込みします。
ディスクを同期しています。

次に、/dev/sdc - /dev/sdeのハードディスクについても同様の操作を行います:

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

その後、再度実行します。

fdisk -l

出力は次のようになるはずです:

server1:~# fdisk -l  
 
 ディスク /dev/sda: 21.4 GB, 21474836480 バイト  
 255 ヘッド, 63 セクタ/トラック, 2610 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sda1   *            1            18        144553+   83   Linux  
 /dev/sda2                19          2450   19535040    83   Linux  
 /dev/sda4              2451          2610   1285200    82   Linux swap / Solaris  
 
 ディスク /dev/sdb: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sdb1                 1        3040    24418768+   8e  Linux LVM  
 
 ディスク /dev/sdc: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sdc1                 1        3040    24418768+   8e  Linux LVM  
 
 ディスク /dev/sdd: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sdd1                 1        3040    24418768+   8e  Linux LVM  
 
 ディスク /dev/sde: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
   デバイス ブート    開始        終了        ブロック   Id   システム  
 /dev/sde1                 1        3040    24418768+   8e  Linux LVM  
 
 ディスク /dev/sdf: 85.8 GB, 85899345920 バイト  
 255 ヘッド, 63 セクタ/トラック, 10443 シリンダ  
 単位 = シリンダの 16065 * 512 = 8225280 バイト  
 
 ディスク /dev/sdf には有効なパーティションテーブルが含まれていません

次に、LVM用に新しいパーティションを準備します:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   物理ボリューム "/dev/sdb1" が正常に作成されました  
   物理ボリューム "/dev/sdc1" が正常に作成されました  
   物理ボリューム "/dev/sdd1" が正常に作成されました  
   物理ボリューム "/dev/sde1" が正常に作成されました

トレーニング目的でこの最後のアクションを元に戻しましょう:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   物理ボリューム "/dev/sdb1" のラベルが正常に消去されました  
   物理ボリューム "/dev/sdc1" のラベルが正常に消去されました  
   物理ボリューム "/dev/sdd1" のラベルが正常に消去されました  
   物理ボリューム "/dev/sde1" のラベルが正常に消去されました

次に、再度実行します:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   物理ボリューム "/dev/sdb1" が正常に作成されました  
   物理ボリューム "/dev/sdc1" が正常に作成されました  
   物理ボリューム "/dev/sdd1" が正常に作成されました  
   物理ボリューム "/dev/sde1" が正常に作成されました

次に、現在の物理ボリュームの状態を確認するために実行します:

pvdisplay
server1:~# pvdisplay  
   --- NEW 物理ボリューム ---  
   PV名                 /dev/sdb1  
   VG名  
   PVサイズ             23.29 GB  
   割り当て可能             NO  
   PEサイズ(KByte)       0  
   合計PE                0  
   空きPE                 0  
   割り当て済PE            0  
   PV UUID                 G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   --- NEW 物理ボリューム ---  
   PV名                 /dev/sdc1  
   VG名  
   PVサイズ             23.29 GB  
   割り当て可能             NO  
   PEサイズ(KByte)       0  
   合計PE                0  
   空きPE                 0  
   割り当て済PE            0  
   PV UUID                 40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   --- NEW 物理ボリューム ---  
   PV名                 /dev/sdd1  
   VG名  
   PVサイズ             23.29 GB  
   割り当て可能             NO  
   PEサイズ(KByte)       0  
   合計PE                0  
   空きPE                 0  
   割り当て済PE            0  
   PV UUID                 4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   --- NEW 物理ボリューム ---  
   PV名                 /dev/sde1  
   VG名  
   PVサイズ             23.29 GB  
   割り当て可能             NO  
   PEサイズ(KByte)       0  
   合計PE                0  
   空きPE                 0  
   割り当て済PE            0  
   PV UUID                 3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。