「素材」がなければ、料理は始まらない。
こんにちは!「LINUX工房」管理人の「リナックス先生」です。
前回は、LVM(論理ボリュームマネージャー)が「複数のディスクを束ねて、自由自在に切り分けられる技術」であることを学びました。
概念を理解したら、いよいよ手を動かして構築していきましょう。
LVM構築の最初のステップは、「新しいディスクを用意し、LVM用の素材(PV:物理ボリューム)に加工すること」です。
先生、買ってきましたよ!
1TBの新品ハードディスクです!
これをサーバーに繋げば、すぐにLVMで容量が増やせるんですよね?
気が早いわね、コウ君。
買ってきたばかりのディスクは、まだLinuxにとって「異物」よ。
まずは正しく認識させ、パーティションを切り、「これはLVMの素材ですよ」というラベル(PV)を貼らないと使えないの。
今回はその「下処理」の手順を、コマンド一つ一つ丁寧に解説するわ!
本記事では、Linuxにおけるディスク管理の基礎コマンド(lsblk, fdisk)から、LVM独自のコマンド(pvcreate)まで、実務で使う操作を網羅します。
黒い画面(ターミナル)を開いて、一緒に進めていきましょう。
📚 LVM完全マスター(全8回)目次
現在地:【第2回】物理ボリューム(PV)の作成とディスクの追加
- 【第1回】LVMの仕組みとメリットを完全図解
- 【第2回】物理ボリューム(PV)の作成とディスクの追加
- 【第3回】ボリュームグループ(VG)の作成と管理
- 【第4回】論理ボリューム(LV)の切り出しとフォーマット
- 【第5回】【核心】稼働中にディスク容量を増やす(lvextend)
- 【第6回】ディスク容量の縮小と物理ディスクの交換
- 【第7回】スナップショット機能で一瞬でバックアップを取る
- 【第8回】LVMトラブルシューティングとRAID構成
第1章:Linuxにおける「ディスク」の正体を知る
作業を始める前に、Linuxがハードディスクをどう扱っているかを知る必要があります。
Windowsでは「Cドライブ」「Dドライブ」と呼びますが、Linuxでは「デバイスファイル」として扱われます。
1. デバイスファイル名のルール
ディスクは /dev/ ディレクトリの下に、特定のルールで名前が付けられます。
- SATA / SCSI接続のディスク:
/dev/sda,/dev/sdb,/dev/sdc…(aから順に割り当て) - NVMe接続のSSD:
/dev/nvme0n1,/dev/nvme1n1… - 仮想ディスク(KVMなど):
/dev/vda,/dev/vdb…
今回は一般的なSATA接続や仮想環境を想定し、「現在は /dev/sda があり、新しく /dev/sdb を追加する」というシナリオで進めます。
2. 現状確認の最強コマンド「lsblk」
ディスクの状態を確認するコマンドはいくつかありますが、LVMを扱うなら lsblk が最も見やすく便利です。
List Block Devicesの略です。
lsblk
実行すると、以下のようなツリー構造が表示されます。
🔍 出力の見方
- NAME: デバイス名。
sdaが物理ディスク本体、sda1がその中のパーティションを表します。 - SIZE: 容量。
- TYPE:
disk(ディスク本体)、part(パーティション)、lvm(論理ボリューム)などの種類。 - MOUNTPOINT: 現在どこにマウントされているか。
まずは、何もしていない状態で lsblk を打ち、現在の構成をメモしておきましょう。
第2章:新しいディスクを接続・確認する
それでは、物理的(または仮想的)にディスクを追加します。
ケースA:物理サーバーの場合
サーバーの電源を切り、空いているベイにHDDを挿入します。
(※ホットスワップ対応の高級サーバーなら電源ONのままでもOKですが、基本は停止推奨です)
ケースB:VPS / 仮想マシンの場合
KAGOYA CLOUD VPSやVirtualBoxの管理画面から、「ディスクの追加」を行い、容量(例えば20GB)を指定してアタッチします。
これは電源ONのままでも認識されることが多いですが、認識されない場合は再起動するか、以下のコマンドでSCSIバスをスキャンさせます。
# SCSIバスの再スキャン(認識されない場合のみ) echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan
接続確認
もう一度 lsblk を実行してみましょう。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─cl-root 253:0 0 40G 0 lvm / └─cl-swap 253:1 0 9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ←★これが増えている!
新しい sdb というディスク(20GB)が表示されました。
まだパーティション(sdb1など)がなく、TYPEが disk だけの状態です。
これでLinuxが新しいディスクを認識しました。
第3章:【重要】パーティションを切る?切らない?
ここでLVMにおける一つの論争があります。
「ディスク(/dev/sdb)をそのまま使うか、パーティション(/dev/sdb1)を切ってから使うか」です。
| 方法 | 対象 | メリット | デメリット |
|---|---|---|---|
| パーティションを切る (/dev/sdb1) |
推奨 | 他のOSやツールが見た時に「これはLVMだ」と識別できる(ID: 8e)。誤ってフォーマットされるリスクが減る。 | 作業が1ステップ増える。 |
| ディスク丸ごと (/dev/sdb) |
可能 | 作業が楽。最大容量を無駄なく使える。 | 他のOSから見ると「空のディスク」に見えるため、誤って上書きされる危険がある。 |
リナックス先生の結論としては、「管理の安全性のため、パーティションを切る」ことを強く推奨します。
今回は、基本に忠実に fdisk コマンドを使ってパーティションを作成します。
fdiskコマンド実践(対話モード完全ガイド)
fdisk は対話形式(チャットボットのような感じ)で進みます。
初心者には呪文に見えるので、入力するキーを一つずつ解説します。
1. fdiskを起動
sudo fdisk /dev/sdb
「コマンド (m でヘルプ):」と表示され、入力待ちになります。
2. 新規パーティション作成(n)
コマンド (m でヘルプ): n
- n は New(新規作成)の意味です。
- パーティションタイプ:
p(基本パーティション)を選びます(デフォルトならEnter)。 - パーティション番号:
1を選びます(Enter)。 - 最初のセクタ:そのまま
Enter(ディスクの先頭から)。 - 最後のセクタ:そのまま
Enter(ディスクの最後まで全て)。
これで「ディスク全体を使ったパーティション1」が仮作成されました。
3. パーティションタイプをLVMに変更(t)
コマンド (m でヘルプ): t
- t は Type(タイプ変更)の意味です。
- 16進数コード:
8eと入力します。
💡 「8e」って何?
パーティションには「これはWindows用」「これはLinux用」といったID番号があります。
「8e」は「Linux LVM」を表す特別なIDです。
これを設定しておくと、管理ツールが「ああ、これはLVM用の場所だな」と一目で分かります。
4. 変更を書き込んで終了(w)
コマンド (m でヘルプ): w
- w は Write(書き込み)の意味です。
- これを押すまではディスクに何も書き込まれません。途中で「やっぱりやめたい」と思ったら
q(Quit)を押せば無傷で終了できます。
「パーティションテーブルは変更されました」と表示されれば成功です。lsblk で確認すると、sdb の下に └─sdb1 ができているはずです。
第4章:物理ボリューム(PV)の作成「pvcreate」
さあ、いよいよLVM独自のコマンドが登場します。
作成したパーティション /dev/sdb1 に、「LVM管理用ラベル」を貼り付けます。
使うコマンドは pvcreate です。
1. コマンド実行
sudo pvcreate /dev/sdb1
実行結果:
Physical volume "/dev/sdb1" successfully created.
たったこれだけです。
これで、普通のパーティションだった /dev/sdb1 が、LVMの素材である「物理ボリューム(PV)」に昇格しました。
2. 作成されたか確認する
PVの状態を確認するコマンドは2つあります。
pvs:簡易表示(一覧を見るのに便利)pvdisplay:詳細表示(サイズやUUIDなどを見る)
sudo pvs
出力例:
PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <49.00g 0 /dev/sdb1 lvm2 --- 20.00g 20.00g
新しく作った /dev/sdb1 が表示されていますね。
まだどこのグループ(VG)にも所属していないので、VG欄は空欄です。
これが「未使用の素材」の状態です。
第5章:もし間違えたら?PVの削除「pvremove」
「パーティションを切り間違えた!」などで、PVのラベルを剥がして元のただのパーティションに戻したい時は、pvremove を使います。
sudo pvremove /dev/sdb1
これでLVMの管理情報が消去されます。
※ただし、すでにVG(グループ)に組み込んでデータが入っている場合は、エラーが出て削除できません。LVMにはこういった安全装置がしっかり組み込まれています。
第6章:トラブルシューティング Q&A
初心者がPV作成時によくハマるポイントをまとめました。
Q1. "Device /dev/sdb1 not found" と言われる
A. パーティション情報の更新が遅れている可能性があります。
fdisk で w を押した直後は、OSがまだ変更を認識していないことがあります。
以下のコマンドでカーネルに「パーティションテーブルを読み直せ!」と命令してください。
sudo partprobe
Q2. "Device /dev/sdb1 excluded by a filter." と言われる
A. 過去に別のRAIDやファイルシステムで使われていた痕跡(署名)が残っている可能性があります。
wipefs コマンドを使って、ディスクの署名情報を完全に消去してから再度 pvcreate してください。
sudo wipefs -a /dev/sdb1
まとめ:素材の準備完了!次は「混ぜる」作業へ
お疲れ様でした!
これで新しいディスクをサーバーに追加し、LVMの素材(PV)として使える状態になりました。
今回の作業フロー(復習):
- ディスクを追加する
lsblkで認識を確認するfdiskでパーティション(8e)を作成するpvcreateでPVにするpvsで確認する
今はまだ「小麦粉(PV)」を買ってきてボウルに入れただけの状態です。
次回、第3回は「ボリュームグループ(VG)の作成と管理」です。
この素材を既存のシステムと混ぜ合わせて、巨大なディスクプールを作り上げる工程に入ります。
いよいよLVMの面白さが出てくるところです。お楽しみに!
▼ エンジニアとしてのキャリアを加速させる ▼
LVMを実践練習
「VPS」で環境構築
インフラ技術を仕事に
「ITエンジニア転職」


コメント