Solaris 支援多種檔案系統類型,各有適用場景。本文系統整理 UFS、ZFS、NFS、swap 及 /proc 等檔案系統的特性、管理指令與實務操作。
| 類別 | 檔案系統 | 特性 | 適用場景 |
|---|---|---|---|
| 磁碟型 | UFS | 傳統 Unix 檔案系統,成熟穩定 | 傳統應用、根分割區 |
| ZFS | 128位、儲存池、快照、壓縮、去重、自我修復 | 現代企業儲存、資料庫、虛擬化 | |
| 網路型 | NFS | 網路檔案系統,跨主機共享 | 叢集共享、家目錄集中管理 |
| 虛擬型 | swap | 磁碟支援的虛擬記憶體 | 記憶體擴充、休眠支援 |
| /proc | 記憶體駐留,進程資訊介面 | 系統監控、除錯、核心參數調整 |
每個檔案對應一個 inode,儲存 UID/GID、權限、時間戳、區塊指標等中繼資料。
# 分割與格式化 format # 進入互動模式分割 newfs /dev/rdsk/c1t0d0s3 # 格式化為 UFS(操作原始裝置) # 掛載管理 mount /dev/dsk/c1t0d0s3 /software umount /software # 永久掛載 /etc/vfstab 格式 # 裝置 掛載點 FS型別 fsck次序 掛載選項 掛載狀態 /dev/dsk/c1t0d0s3 /software ufs 2 yes - # 空間擴充(UFS 不支援線上擴充,需離線或更換大磁碟) growfs -M /software /dev/rdsk/c1t0d0s3 # 僅限同分割區擴充 # 檔案系統維護 fsck -F ufs /dev/rdsk/c1t0d0s3 # 掃描修復 fuser -cu /software # 查找佔用進程 fuser -ck /software # 強制釋放佔用進程
ZFS 採用分層架構:實體裝置 → vdev (mirror/raidz) → 儲存池 → 資料集/檔案系統。資源池概念類似記憶體管理,具備自動回收機制。
# 建立儲存池與檔案系統 zpool create datapool mirror c1t0d0 c1t1d0 zfs create datapool/appdata zfs set compression=lz4 datapool/appdata zfs set quota=100G datapool/appdata # 快照與備份 zfs snapshot datapool/appdata@daily_$(date +%Y%m%d) zfs send datapool/appdata@daily_20240101 > /backup/appdata.zfs zfs receive backuppool/appdata < /backup/appdata.zfs # 線上擴充 zpool add datapool mirror c1t2d0 c1t3d0 # 狀態與健康檢查 zpool status -v datapool zpool scrub datapool # 資料完整性掃描 # 移除裝置(受限,需冗餘配置) zpool remove datapool c1t3d0 # 僅支援移除熱備、log、cache 裝置
swap -l 列表、swap -a /dev/dsk/... 新增、swap -d /dev/dsk/... 移除vmstat 觀察 si/so(swap in/out)、sar -w掛載於 /proc,提供進程即時資訊介面:
/proc/PID/as:位址空間/proc/PID/status:進程狀態/proc/PID/cmdline:啟動命令列ps、prstat、pgrep 等工具皆由此讀取| 特性 | 硬連結 | 符號連結 |
|---|---|---|
| 本質 | 指向相同 inode 的目錄項 | 獨立檔案,含路徑字串 |
| 跨檔案系統 | 不可 | 可 |
| 連結目錄 | 不可 | 可 |
| 刪除源檔影響 | 資料保留,連結計數-1 | 連結失效 |
| 建立指令 | ln file link | ln -s file link |
df -h # 檔案系統級空間使用 du -h /var/log # 目錄遞迴空間使用 du -sh /var/log/* # 顯示各子目錄總計