15. Ubuntu Server でのストレージとディスクの管理:シンプルガイド

はじめに

Ubuntu Server でのストレージとディスクの管理は、管理者にとって重要なスキルです。特に、クラウドプラットフォーム(AWS、Azure、Google Cloud)や仮想化プラットフォーム(VMware、Hyper-V、Proxmox)などの動的な環境では重要です。OS ディスクの拡張、データディスクの初期化、ストレージ設定の最適化などのタスクは、一般的なシナリオです。自動化ツールによってこれらのプロセスが簡素化されることはよくありますが、効果的なトラブルシューティングと手動での対応には、基本的な手順をしっかりと理解することが不可欠です。

このガイドでは、ファイルシステムの種類、パーティション分割、フォーマット、ディスクの最適化など、Ubuntu Server でのストレージとディスクの管理について説明します。物理環境と仮想化環境の両方に合わせた実践的な例を通じて、このガイドはストレージ管理タスクを効率的に処理するための知識を提供します。


これまでの記事:

01. Ubuntu Server 入門 – SysOSX: AI & Cloud

02. 初めての Ubuntu Server のセットアップ方法:初心者ガイド – SysOSX: AI & Cloud

03. Ubuntu Server のための Linux コマンドラインをマスターする – SysOSX: AI & Cloud

04. Ubuntu Server のユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud

05. Ubuntu Server のネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud

06. Ubuntu Server へのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud

07. Ubuntu Server へのパッチ適用と更新:包括的ガイド – SysOSX: AI & Cloud

08. Ubuntu Server の保護:強化と防御のための実践的な手順 – SysOSX: AI & Cloud

09. Ubuntu サーバーの監査とロギング

10. Ubuntu Server のシステム監視ツール:包括的ガイド – SysOSX: AI & Cloud

11. Ubuntu サーバーの集中ロギング:必読ガイド – SysOSX: AI & Cloud

12. Ubuntu Server の監査とコンプライアンス:ベストプラクティス – SysOSX: AI & Cloud

13. ホスティングと Web アプリケーションのための Ubuntu Server のセットアップ:究極ガイド – SysOSX: AI & Cloud

14. 1 台の Ubuntu Server で複数の Web サイトをホストする:役立つヒント – SysOSX: AI & Cloud



ファイルシステムの種類を理解する

ファイルシステムは、データがディスクにどのように保存され、アクセスされるかを定義します。適切なファイルシステムを選択することは、パフォーマンス、信頼性、互換性にとって非常に重要です。以下は、Ubuntu サーバーで最も一般的なファイルシステムです:

Ubuntu の一般的なファイルシステム

  1. Ext4(第 4 拡張ファイルシステム)
    • Ubuntu サーバーのデフォルトのファイルシステム。
    • ジャーナリング、大容量ファイルのサポート、優れたパフォーマンスを備えています。
    • 汎用ワークロードに最適。
    • フォーマットするコマンド:sudo mkfs.ext4 /dev/sdX1
  2. XFS
    • 大容量ファイルと高 I/O ワークロード向けに設計された高性能ジャーナリングファイルシステム。
    • エンタープライズ環境やクラウド環境で一般的に使用されています。
    • フォーマットするコマンド:sudo mkfs.xfs /dev/sdX1
  3. Btrfs(B ツリーファイルシステム)
    • スナップショットのサポート、データ圧縮、RAID 機能を提供する高度なファイルシステム。
    • 複雑なワークロードや頻繁なバックアップが必要な環境に適しています。
  4. NTFS
    • 主に Windows 環境との互換性のために使用されます。
    • デュアルブートシステムや、Linux と Windows 間で共有されるディスクに便利です。
  5. FAT32 と exFAT
    • リムーバブルドライブやクロスプラットフォームの互換性に使用される軽量なファイルシステム。

適切なファイルシステムの選択

  • Ext4:汎用ワークロード向け。
  • XFS:エンタープライズ環境やクラウド環境における高性能ワークロード向け。
  • Btrfs:スナップショットや圧縮などの高度な機能。
  • NTFS/FAT32:クロスプラットフォームの互換性。

Ubuntu Server でのディスクのパーティション分割

パーティション分割は、物理ディスクを論理的なセクションに分割し、データの整理と管理を向上させます。これは、システムファイル、バックアップ、アプリケーションデータを分離するのに特に便利です。

Ubuntu Server でディスクをパーティション分割する手順

  • ディスクを特定します:
    lsblk コマンドを使ってすべての利用可能なディスクとそのパーティションを一覧表示します:lsblk
  • パーティションを作成します:
    fdiskまたはpartedを使って新しいパーティションを作成します。例としてfdisk: sudo fdisk /dev/sdX
    • nを押して新しいパーティションを作成します。
    • パーティションのサイズと種類を指定します。
    • wを押して変更をディスクに書き込みます。
  • パーティションを確認します:
    lsblk を再度実行して、新しいパーティションが作成されたことを確認します。

Ubuntu Server でのデータディスクのフォーマット

フォーマットは、ファイルシステムを作成することで、パーティションを使用できる状態にします。

Ubuntu Server でデータディスクをフォーマットする手順

  • 必要なツールをインストールします:
    mkfs ユーティリティがインストールされていることを確認してください(ほとんどのディストリビューションではデフォルトで含まれています)。
  • パーティションをフォーマットします:
    mkfsコマンドでパーティションをフォーマットします。例: sudo mkfs.ext4 /dev/sdX1
  • マウントポイントを作成します:
    重要な注意:クラウド環境では、/mntをマウントポイントとして使用しないでください。/mntディレクトリは、クラウドプラットフォーム(Azure や AWS など)で一時ディスク用に予約されていることが多く、再起動やシステム更新時にクリアされる場合があります。代わりに、/dataまたは/storageなどのカスタムディレクトリを使用してください。例:
sudo mkdir /data
  • パーティションをマウントします:
    フォーマットしたパーティションを、新しく作成したディレクトリにマウントします:
sudo mount /dev/sdX1 /data
  • マウントを永続化します:
    パーティションが起動時に自動的にマウントされるように、/etc/fstabファイルに追加します:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab  

マウントの永続化:クラウド環境では UUID を使用する

パーティションが起動時に自動的にマウントされるようにするには、/etc/fstabファイルに追加することが不可欠です。ただし、クラウド環境では、デバイス名を直接参照するのではなく、UUID(汎用一意識別子)を使用してディスクをマウントすることをお勧めします(例:/dev/sdX1)。デバイス名は、特に仮想化環境やクラウド環境では、システムの再起動後に変わる可能性があり、マウントの失敗につながる恐れがあります。UUID を使用することで、一貫性のある信頼性の高いマウントが保証されます。

UUID を使用してマウントを永続化する手順

  • パーティションの UUID を調べます:
    blkidコマンドでパーティションの UUID を取得します:
sudo blkid
  • 出力例:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
  • /etc/fstabファイルを編集します:
    /etc/fstabファイルに、デバイス名の代わりに UUID を使用したエントリを追加します。
    例:echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
  • 設定を確認します:
    パーティションをアンマウントし、mount -aコマンドを使用して再度マウントすることで設定をテストします:
sudo umount /data  
sudo mount -a  

  • 再起動して確認します:
    起動時にディスクが正しくマウントされることを確認するために、システムを再起動します:sudo reboot

クラウド環境で UUID を使用する理由

  • 一貫性:デバイス名(/dev/sdXなど)は、クラウドプラットフォームにおける動的なデバイス列挙のため、再起動後に変わる場合があります。
  • 信頼性:UUID は各パーティションに固有で変わらないため、信頼性の高いマウントが保証されます。
  • ベストプラクティス:AWS、Azure、Google Cloud などのクラウドプロバイダーは、本番環境でディスクをマウントする際に UUID またはラベルを使用することを推奨しています。

クラウドと仮想化のシナリオ:ディスクの拡張と初期化

シナリオ 1:OS ディスクの拡張

AWS、Azure、Google Cloud などのクラウドプラットフォームでは、OS ディスクを物理層から拡張できます。多くのプラットフォームは OS ディスクを自動的に検出して拡張します。ただし、新しい容量を利用するためにファイルシステムのサイズを変更するには、手動での対応が必要な場合があります。

Ubuntu Server で OS ディスクを拡張する手順:

  1. ディスク容量を確認します:
    拡張されたディスク容量を次のコマンドで確認します:lsblk: lsblk
  2. ファイルシステムのサイズを変更します:
    resize2fs を Ext4 ファイルシステムに使用します:sudo resize2fs /dev/sdX1

シナリオ 2:データディスクの初期化、前のセクションを参照してください


ディスク使用量の監視と最適化

ディスク使用量の監視

  1. ディスク容量の使用状況を確認します:
    dfコマンドでディスク容量の使用状況を表示します:df -h
  2. ディレクトリの使用量を分析します:
    duコマンドで特定のディレクトリのサイズを確認します:du -sh /var/log
  3. 高度な監視:
    ncduをインストールして、対話的なディスク使用量分析を行います:
sudo apt install ncdu 
ncdu /

ディスク使用量の最適化

  • 一時ファイルを削除します:
sudo apt-get autoclean  
sudo apt-get clean  
sudo apt-get autoremove  

  • ディスク容量を消費している大きなファイルを見つける
    findコマンドを使って大きなファイルを特定します:
sudo find / -type f -size +100M

参考資料

次の記事では、データベースサーバーのセットアップ (Ubuntu サーバー)について詳しく説明します。学べる内容は次のとおりです:

  • MySQLまたはMariaDBをインストールして設定し、アプリケーションで使用できるようにします。
  • 機密データを保護するために、データベースサーバーを安全に保ちます。
  • 本番環境向けにデータベースのパフォーマンスを最適化します。

データベースをクラウドにデプロイする場合でも、オンプレミスにデプロイする場合でも、このガイドはデータベースインフラを効果的に管理するのに役立つ実践的な知見を提供します。

お見逃しなく。お楽しみに!

5 thoughts on “15. Managing Storage and Disks on Ubuntu Server: Simple Guide”

コメントを残す