はじめに
この実験では、Linux システムのディスク容量を監視するための不可欠なツールである df コマンドについて学習します。あなたは、多忙なウェブサーバーを管理するシステム管理者の役割を担い、df を使ってディスク使用量を分析し、潜在的なストレージの問題を特定して、サーバーの円滑な運用を維持します。この実験は初心者向けに設計されているため、Linux が初めての方でも心配いりません。各ステップを丁寧に進めていきましょう。
基本的な df コマンドの理解
システム管理者としての最初の任務は、ウェブサーバーのディスク使用状況の概要を把握することです。オプションなしで df コマンドを実行すると、マウントされているすべてのファイルシステムの状況を素早く確認できます。
まず、プロジェクトディレクトリに移動しましょう。
cd ~/project
次に、基本的な df コマンドを実行します。
df
ヒント:仮想マシンのストレージは動的に変化するため、df コマンドの出力結果が例と一致しない場合がありますが、この点は無視して構いません。
以下のような出力が表示されるはずです。
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 20971520 1314600 19656920 7% /
tmpfs 65536 0 65536 0% /dev
tmpfs 4068320 0 4068320 0% /sys/fs/cgroup
shm 65536 0 65536 0% /dev/shm
/dev/vdb 104806400 17442788 87363612 17% /etc/hosts
tmpfs 102400 51200 51200 50% /mnt/ramdisk
出力内容を詳しく見ていきましょう。
Filesystem(ファイルシステム):デバイス名またはパーティション名を表示します。1K-blocks(1K ブロック):1 キロバイト単位のブロック数で表したファイルシステムの総容量です。Used(使用済み):使用されている 1K ブロックの数です。Available(空き容量):利用可能な 1K ブロックの数です。Use%(使用率):ファイルシステムの使用済み容量の割合です。Mounted on(マウント先):そのファイルシステムがディレクトリツリーのどこにマウントされているかを示します。
コンテナ環境でよく使われる overlay ファイルシステムに注目してください。/dev/vdb デバイスは仮想ディスクである可能性が高く、/mnt/ramdisk にマウントされている tmpfs はメモリ(RAM)ベースのファイルシステムであることがわかります。
df の出力を読みやすくする
df のデフォルト出力はサイズを 1K ブロック単位で表示するため、直感的に理解するのが難しい場合があります。たとえば、20640796 個の 1K ブロックが何ギガバイトになるかを計算するのは大変です。幸いなことに、-h オプション(human-readable:人間が読みやすい形式)を使用することで、出力を分かりやすくできます。
次のコマンドを実行してください。
df -h
以下のような出力が表示されるはずです。
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/vdb 100G 17G 84G 17% /etc/hosts
tmpfs 100M 50M 50M 50% /mnt/ramdisk
サイズが GB(ギガバイト)や MB(メガバイト)で表示されるようになったことに注目してください。これにより、一目で状況を把握しやすくなります。たとえば、メインのファイルシステム(overlay)のサイズは 20G で、使用量はわずか 1.3G、空き容量は 19G であることがすぐにわかります。
ファイルシステムの種類を表示する
システム管理者にとって、サーバー上のファイルシステムの種類(タイプ)を知ることは重要です。ファイルシステムの種類によって、機能やパフォーマンス特性が異なるからです。-T オプションを使用すると、この情報を表示できます。
次のコマンドを実行してください。
df -T
以下のような出力が表示されるはずです。
Filesystem Type 1K-blocks Used Available Use% Mounted on
overlay overlay 20971520 1314600 19656920 7% /
tmpfs tmpfs 65536 0 65536 0% /dev
tmpfs tmpfs 4068320 0 4068320 0% /sys/fs/cgroup
shm tmpfs 65536 0 65536 0% /dev/shm
/dev/vdb xfs 104806400 17442728 87363672 17% /etc/hosts
tmpfs tmpfs 102400 51200 51200 50% /mnt/ramdisk
この出力には、各マウント済みファイルシステムの種類を示す Type カラムが追加されています。表示されている種類を確認してみましょう。
overlay: ユニオンファイルシステムの一種で、コンテナ環境でよく使用されます。tmpfs: メモリやスワップパーティション上に存在する一時的なファイルシステムです。xfs: 高性能なジャーナリングファイルシステムで、ここでは/etc/hostsのマウントに使用されています。
ファイルシステムの種類を理解することは、トラブルシューティングやシステムのパフォーマンス最適化に役立ちます。
i ノードの使用状況を分析する
Linux において、i ノード(inode)は、ファイルの権限、所有者、ディスク上の場所などの重要な情報を保存するデータ構造です。システム上の各ファイルは 1 つの i ノードを消費します。興味深いことに、ディスク容量に十分な空きがあっても、i ノードを使い切ってしまうと新しいファイルを作成できなくなります。そのため、i ノードの使用状況を監視することは非常に重要です。
-i オプションを使用して i ノードの使用状況を確認してみましょう。
df -i
以下のような出力が表示されるはずです。
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 52428800 539001 51889799 2% /
tmpfs 1017080 206 1016874 1% /dev
tmpfs 1017080 17 1017063 1% /sys/fs/cgroup
shm 1017080 1 1017079 1% /dev/shm
/dev/vdb 52428800 539001 51889799 2% /etc/hosts
tmpfs 1017080 2 1017078 1% /mnt/ramdisk
出力内容の解説:
Inodes: ファイルシステムの i ノード総数IUsed: 現在使用中の i ノード数IFree: 空いている i ノード数IUse%: i ノードの使用率
この例では、メインのファイルシステム(overlay)の i ノード使用率はわずか 2% です。これは良好な状態で、i ノード不足によって新しいファイルが作成できなくなる心配は当面ないことを意味します。
オプションを組み合わせて包括的に分析する
個別のオプションについて学んだので、次はそれらを組み合わせてサーバーのストレージ状況をより包括的に把握してみましょう。複数のオプションを同時に使うことで、必要な情報を一度に取得できます。
次のコマンドを実行してください。
df -hT
このコマンドは、人間が読みやすい形式(-h)とファイルシステムの種類(-T)のオプションを組み合わせています。
以下のような出力が表示されるはずです。
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 20G 1.3G 19G 7% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm tmpfs 64M 0 64M 0% /dev/shm
/dev/vdb xfs 100G 17G 84G 17% /etc/hosts
tmpfs tmpfs 100M 50M 50M 50% /mnt/ramdisk
この出力は、ファイルシステムの種類と読みやすいサイズ表示を網羅しており、システムのストレージ状況を素早く詳細に把握するのに最適な方法です。
特定のファイルシステムに焦点を当てる
システム管理者として、特定のファイルシステムの状態だけを確認したいことがよくあります。たとえば、ルートファイルシステムの空き容量を素早くチェックしたい場合などです。df コマンドの後にマウントポイントを指定することで、これを実現できます。
ルートファイルシステムに注目してみましょう。次のコマンドを実行します。
df -h /
以下のような出力が表示されるはずです。
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
このコマンドは、ルートファイルシステムの使用状況のみを素早く表示します。他のファイルシステムの情報が必要なく、特定の箇所だけに関心がある場合に非常に便利です。
ユーザーのホームディレクトリの空き容量を確認する
サーバー管理業務の一環として、ユーザーがホームディレクトリで十分な容量を使えるようにしておく必要があります。多くのシステムでは、ユーザーのホームディレクトリは /home ディレクトリに配置されています。/home ディレクトリの空き容量を確認してみましょう。
次のコマンドを実行してください。
df -h /home
以下のような出力が表示される可能性があります。
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
これは、/home ディレクトリがルートディレクトリ(/)と同じファイルシステム上にあることを示しています。このケースでは、ユーザーのホームディレクトリ用に十分な空き容量(19G)があることがわかります。
もしファイルシステムが満杯に近づいている(Use% の値が高い)場合は、どのユーザーが最も容量を消費しているか調査したり、ストレージ容量の拡張を検討したりする必要があります。
特定のファイルシステムの種類を除外する
時として、df の出力から特定のファイルシステムの種類を除外したい場合があります。たとえば、メモリ上に保存され物理的なディスク使用量を表さない一時的なファイルシステム(tmpfs)を除外したい場合です。これには -x オプションを使用します。
次のコマンドを実行して、tmpfs ファイルシステムを除外します。
df -h -x tmpfs
以下のような出力が表示されるはずです。
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
/dev/vdb 100G 17G 84G 17% /etc/hosts
出力から tmpfs ファイルシステムが消えていることに注目してください。物理的なディスク使用量のみに関心があり、仮想的なファイルシステムをフィルタリングしたい場合に役立ちます。
合計の要約を表示する
最後の仕上げとして、すべてのファイルシステムの合計要約を表示してみましょう。これには --total オプションを使用します。これは、すべてのファイルシステムを合わせた全体的なディスク使用量を確認したいときに特に便利です。
次のコマンドを実行してください。
df -h --total
以下のような出力が表示されるはずです。
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/vdb 100G 17G 84G 17% /etc/hosts
tmpfs 100M 50M 50M 50% /mnt/ramdisk
total 125G 18G 107G 15% -
これにより、全ファイルシステムのディスク使用量の合計が表示されます。最終行(total)を見ると、全体で 125G 中 18G が使用されており、全体の使用率は約 15% であることがわかります。
まとめ
この実験では、Linux システムのディスク容量を監視・分析するための df コマンドの使い方を学びました。以下の内容を含む、df コマンドのさまざまなオプションを実践しました。
dfの基本的な使い方-hによる人間が読みやすい形式での表示-Tによるファイルシステムの種類表示-iによる i ノード使用状況の分析- オプションを組み合わせた包括的な分析
- 特定のファイルシステムへのフォーカス
-xによる特定のファイルシステム種類の除外--totalによる合計要約の表示
これらのスキルは、効果的なシステム管理を行い、Linux サーバーの最適なパフォーマンスを維持するために不可欠です。システム管理の学習を続ける中で、df コマンドは非常に価値のあるツールになるでしょう。
この実験でカバーしきれなかったその他の df オプションには以下のようなものがあります。
-a: 擬似ファイルシステム、重複、アクセス不能なものを含むすべてのファイルシステムを表示-k: サイズをキロバイト単位で表示(デフォルト)-m: サイズをメガバイト単位で表示-P: POSIX 出力形式を使用--sync: 使用情報を取得する前に sync を呼び出す-t: 特定の種類のファイルシステムのみを表示
df は強力なツールですが、ディスク使用量を監視するための多くのツールの 1 つに過ぎません。Linux の学習が進むにつれて、du(disk usage)、ncdu(NCurses Disk Usage)、およびさまざまなシステム監視ツールについても探索してみることをお勧めします。



