Linuxサーバーのパーティション設計ガイド|LVM・/var分離・スワップ容量の決め方

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Linuxtips, Linuxサーバー構築(Rocky Linux/RHEL9) > Linuxサーバーのパーティション設計ガイド|LVM・/var分離・スワップ容量の決め方
「パーティションはどう切ればいいのか、毎回よくわからない」
インストーラーで「自動分割」を選んで済ませてしまい、後から /var が満杯になって運用が止まった——そんなトラブルを現場で何度も見てきました。

この記事では、Linuxサーバーのパーティション設計について、ファイルシステムの選定から LVM の基本、/var や /tmp の分離理由、スワップ容量の決め方、クラウド環境での考え方まで、実務で使える内容をひとまとめに解説します。

この記事のポイント

・/var や /tmp を分離しないと、ログ爆発でシステムが停止する
・LVM を使えばディスク容量を後から柔軟に拡張できる
・スワップはRAMの容量と用途で推奨サイズが変わる
・クラウド環境では EBS/ディスク追加でオンライン拡張が前提


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

パーティション設計の考え方

パーティション設計で最初に意識すべきことは「障害の封じ込め」です。

たとえば /var を独立パーティションにせず、/ と同居させていると、Apacheのアクセスログや spool が肥大化したとき、/ の空き容量がゼロになります。
/ の空き容量がゼロになると ssh ログインすらできなくなり、サーバーが事実上の停止状態に陥ります。

パーティションを分けるのは「ファイルシステムの整頓」ではなく、ある領域の問題が別の領域に波及しないようにするための設計です。

設計の基本方針は次の3点です。

・読み書きが多い領域は独立させる:/var(ログ・spool)、/tmp(一時ファイル)
・成長しやすい領域は LVM で構成する:後からオンラインで拡張できる
・安全策として /boot は物理パーティションで確保する:LVM/RAID 障害時でも起動できる

ファイルシステムの選定(xfs / ext4 / btrfs)

1. xfs

RHEL 7 以降のデフォルト。大容量ファイルの読み書きが速く、マルチスレッドI/O性能が高い。
ただし縮小(shrink)ができないため、LVM ボリュームを小さくしたい場合は再作成が必要です。

推奨用途:RHEL/AlmaLinux/Rocky Linux 系のすべてのパーティション

2. ext4

Ubuntu/Debian のデフォルト。歴史が長く、トラブルシュートの情報が豊富です。
xfs と異なり縮小が可能なため、ディスク構成の見直し時に柔軟性があります。

推奨用途:Ubuntu/Debian 系サーバー、開発環境

3. btrfs

スナップショット・サブボリューム・透過的圧縮が強み。SUSE Linux / Fedora でデフォルト採用。
ただし本番の高トラフィックサーバーではまだ慎重に扱うべきです。RAID-5/6 はカーネルバージョンによっては不安定な報告があります。

推奨用途:スナップショット主体の開発環境、SUSE 系

/var・/tmp・/home を分離する理由

1. /var を分離する

/var 配下には以下のような「増え続けるデータ」が格納されます。

・/var/log:syslog / messages / httpd / maillog など
・/var/spool:cron・mail キュー・プリントスプール
・/var/cache:yum/dnf のパッケージキャッシュ

特に攻撃を受けたときのログ爆発や、設定ミスによる無限ループログが / を圧迫するケースは実務でよく起きます。
独立パーティションにしておけば、/ が満杯になることはありません。

推奨サイズ:最低 5GB、本番 Web サーバーでは 20GB 以上(ログ保持期間による)

2. /tmp を分離する

コンパイルや一時ファイルの書き出しが大量に発生するワークロードでは、/tmp が数十 GB になることがあります。
また、セキュリティ観点では /tmp に実行ビットを立てた悪意あるスクリプトを置く攻撃手法(tmpfs noexec マウント)への対策としても独立が有効です。

推奨サイズ:2GB 以上(tmpfs で RAM を使う構成も検討)

tmpfs として /tmp をマウントする例(/etc/fstab):

# /tmp を tmpfs(メモリ上)としてマウント(再起動で消える) tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0

3. /home を分離する

複数ユーザーが使うサーバーでは、1ユーザーが大量のファイルを置いてシステム全体を圧迫するリスクがあります。
ユーザーディレクトリのクォータ設定も、独立パーティションの方が管理しやすいです。

推奨サイズ:ユーザー数と利用状況による(Web サーバーなら 10GB 程度)

LVM の基本と推奨

LVM(Logical Volume Manager)は、物理ディスクを抽象化して柔軟に管理するしくみです。
従来の固定パーティション設計と違い、容量をオンラインで拡張できる点が最大のメリットです。

1. LVM の3層構造

層 名称 概要
物理層 PV(Physical Volume) 実際のディスクまたはパーティション
グループ層 VG(Volume Group) 複数の PV をひとまとめにした仮想プール
論理層 LV(Logical Volume) VG から切り出した仮想パーティション

2. LVM の基本操作(構築例)

# 1. PV 作成(/dev/sdb を LVM 用に初期化) pvcreate /dev/sdb # 2. VG 作成(VG 名: vg_data) vgcreate vg_data /dev/sdb # 3. LV 作成(/var 用に 20GB) lvcreate -L 20G -n lv_var vg_data # 4. ファイルシステム作成と マウント mkfs.xfs /dev/vg_data/lv_var mount /dev/vg_data/lv_var /var

3. LVM ボリュームの拡張(オンライン)

RHEL/AlmaLinux で xfs の場合:

# LV を 10GB 追加拡張 lvextend -L +10G /dev/vg_data/lv_var # xfs はオンラインでファイルシステムも拡張できる xfs_growfs /var

Ubuntu/Debian で ext4 の場合:

# LV を 10GB 追加拡張し、ext4 を同時に拡張 lvextend -L +10G -r /dev/vg_data/lv_var # -r オプションで resize2fs が自動実行される

スワップ容量の決め方

スワップは「RAM が足りなくなったとき、ディスクを一時的なメモリとして使う領域」です。
スワップが多ければ安心というわけではなく、スワップアウトが頻発するとシステムが著しく遅くなります。

1. RAM 別の推奨スワップ容量

RAM 容量 推奨スワップ(RedHat ガイドライン) ハイバーネーション使用時
2GB 未満 RAM の 2 倍 RAM の 3 倍
2GB ~ 8GB RAM と同量 RAM の 2 倍
8GB ~ 64GB 最低 4GB RAM の 1.5 倍
64GB 超 ワークロードによる(4GB を目安に調整) ハイバーネーション非推奨

2. スワップパーティション vs スワップファイル

・スワップパーティション:パフォーマンスがやや優れる。インストール時に設計が必要
・スワップファイル:後からでも作成・削除が容易。クラウド環境に向いている

スワップファイルを後から追加する手順(RHEL/AlmaLinux/Ubuntu 共通):

# 1. 2GB のスワップファイルを作成(fallocate が使えない場合は dd を使う) fallocate -l 2G /swapfile # 2. パーミッションを 600 に変更(root のみ読み書き可) chmod 600 /swapfile # 3. スワップ領域として初期化 mkswap /swapfile # 4. 有効化 swapon /swapfile # 5. /etc/fstab に追記して再起動後も有効にする echo '/swapfile none swap sw 0 0' >> /etc/fstab # 確認 swapon --show

# 実行例 [root@web01 ~]# swapon --show NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2

3. swappiness チューニング

swappiness は「どのくらい積極的にスワップを使うか」を 0 ~ 100 で設定するカーネルパラメータです。

・デフォルト値:60
・データベースサーバー推奨:10 前後(RAM をできるだけ使い続ける)
・一般 Web サーバー:30 程度で問題ない場合が多い

# 現在の値を確認 cat /proc/sys/vm/swappiness # 一時的に変更(再起動で戻る) sysctl vm.swappiness=10 # 永続化(/etc/sysctl.conf または /etc/sysctl.d/ に追記) echo 'vm.swappiness=10' >> /etc/sysctl.d/99-swap.conf sysctl -p /etc/sysctl.d/99-swap.conf

クラウド環境(AWS/GCP/Azure)での設計の差

クラウド環境ではオンプレミスと設計思想が異なる点があります。

1. 物理パーティション設計は最小限にする

クラウドでは EBS(AWS)や Persistent Disk(GCP)を後から追加・拡張できます。
インストール時に細かくパーティションを切るよりも、最初は / と /boot だけにして、/var などは後からアタッチする方が運用しやすいケースもあります。

2. スワップは原則「なし」から始める

EC2 の t 系インスタンスなどはメモリが少ないため、スワップを設けることもありますが、スワップアウトが多発するならインスタンスタイプの見直しが正解です。
スワップに頼った設計はコスト管理が難しくなります。

3. LVM は使えるが AWS 推奨構成に注意

EBS ルートボリューム(gp3)は LVM なしでも growpart + xfs_growfs でオンライン拡張できます。

# AWS EC2 (Amazon Linux 2023) でルートボリュームを拡張した場合の手順 # ※ AWS コンソールから EBS のサイズを先に変更しておく # パーティションを拡張(/dev/xvda の パーティション1) growpart /dev/xvda 1 # xfs ファイルシステムを拡張 xfs_growfs / # 確認 df -hT /

トラブルシュート:よくある設計失敗と対処法

1. /var を分離せず、ログで / が満杯になった

症状:ssh でログインできなくなった、systemd が起動できなくなった。
対処:/ に余裕があるうちに LVM で /var 用の LV を切り出す。既に満杯の場合は不要ログを削除してから再設計。

2. LVM なしで構築し、ディスクが足りなくなった

症状:固定パーティションでディスクが満杯、拡張できない。
対処:追加ディスクをマウントしてシンボリックリンクで逃がすか、LVM への移行(手順は複雑なため計画的に)。

3. スワップをゼロにしたら OOM Killer が暴走した

症状:急なメモリ不足でプロセスが突然落ちる。
対処:最低でも小容量のスワップファイルを確保して OOM Killer の発動タイミングを遅らせる。

本記事のまとめ

やりたいこと コマンド・設定
LV のサイズを確認する lvs
VG の空き容量を確認する vgs
LV を拡張する(xfs) lvextend -L +10G /dev/vg/lv && xfs_growfs /マウントポイント
LV を拡張する(ext4) lvextend -L +10G -r /dev/vg/lv
スワップファイルを追加する fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
スワップの状態を確認する swapon --show
swappiness を変更する sysctl vm.swappiness=10
tmpfs で /tmp をメモリに乗せる fstab に tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0
パーティション設計は「後から直せない」領域です。構築時に少し手間をかけて LVM を採用しておくだけで、将来の運用トラブルを大幅に減らせます。
LVM の詳細な構築手順は「pvcreate・vgcreate・lvcreateコマンドでLVMボリュームを構築する方法」も合わせてご覧ください。
また、ディスクのブロックデバイス情報の確認には「blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法」が役立ちます。
マウント設定全般については「mount コマンドの使い方」もあわせて参照してください。

パーティション設計の基礎を固めたら、次はサーバー全体の構築スキルを体系的に身につけませんか?

LVM・パーティション設計はLinuxサーバー構築の根幹です。ファイルシステム・ネットワーク・セキュリティ設定と合わせて体系的に学ぶことで、現場で即戦力として活躍できるエンジニアになれます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

※ 「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

<PR>手元に置いて学びを深める1冊

本気で学ぶ Linux実践入門 サーバ運用のための業務レベル管理術

まず無料メルマガで基礎を固めつつ、LVM・パーティション設計を体系的に深めたい方に手元に置いてほしい実践書。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。