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つの記事に触発されました:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
これらは素晴らしい記事ですが、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で小さなハードディスクを大きなものに置き換える方法を示します。
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/sdbserver1:~# fdisk /dev/sdb
ディスクのシリンダ数は10443に設定されています。
それには何の問題もありませんが、これは1024よりも大きく、
特定のセットアップでは次の問題を引き起こす可能性があります:
- ブート時に実行されるソフトウェア(例:古いバージョンのLILO)
- 他の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/sde1server1:~# 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/sde1server1:~# 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/sde1server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
物理ボリューム "/dev/sdb1" が正常に作成されました
物理ボリューム "/dev/sdc1" が正常に作成されました
物理ボリューム "/dev/sdd1" が正常に作成されました
物理ボリューム "/dev/sde1" が正常に作成されました次に、現在の物理ボリュームの状態を確認するために実行します:
pvdisplayserver1:~# 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新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。