15. 在 Ubuntu Server 上管理儲存空間和磁碟:簡明指南

簡介

在 Ubuntu Server 上管理儲存空間和磁碟是管理員的一項關鍵技能,尤其是在雲端平台(AWS、Azure、Google Cloud)或虛擬化平台(VMware、Hyper-V、Proxmox)等動態環境中。擴充作業系統磁碟、初始化資料磁碟或最佳化儲存設定等工作都是常見情境。雖然自動化工具通常可以簡化這些流程,但紮實理解底層步驟對於有效疑難排解和手動介入至關重要。

在本指南中,我們將探討 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. 在一台 Ubuntu Server 上託管多個網站:實用技巧 – SysOSX: AI & Cloud



了解檔案系統類型

檔案系統定義了資料在磁碟上的儲存和存取方式。選擇合適的檔案系統對於效能、可靠性和相容性至關重要。以下是 Ubuntu 伺服器最常見的檔案系統:

Ubuntu 的常見檔案系統

  1. Ext4(第四代擴充檔案系統)
    • 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:作業系統磁碟擴充

在 AWS、Azure 或 Google Cloud 等雲端平台上,可以從實體層擴充作業系統磁碟。許多平台會自動偵測並擴充作業系統磁碟。但是,可能需要手動介入來調整檔案系統的大小,以利用新增空間。

在 Ubuntu Server 上擴充作業系統磁碟的步驟:

  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以供你的應用程式使用。
  • 保護你的資料庫伺服器,以保障敏感資料的安全。
  • 針對生產環境最佳化資料庫效能。

無論你是在雲端還是本地部署資料庫,本指南都將提供可行的見解,幫助你有效管理資料庫基礎設施。

千萬不要錯過——敬請期待!