第 14 堂課:進階檔案系統管理
14.1.1:什麼是 RAID
例題:
根據上述的內容,簡易說明磁碟陣列對於伺服器的重要性在哪裡?
容錯率,以及增加讀取速度
14.1.2:Software RAID 的使用
例題:現在利用上述的動作,以底下的設定來規範磁碟陣列:
- 利用 4 個 partition 組成 RAID 5;
- 每個 partition 約為 300MB 大小,需確定每個 partition 一樣大較佳;
- 利用 1 個 partition 設定為 spare disk
- 這個 spare disk 的大小與其他 RAID 所需 partition 一樣大!
- chunk 設定為 256K 這麼大即可!
- 將此 RAID 5 裝置掛載到 /srv/raid 目錄下
請特別注意,因為使用了磁碟陣列,因此在進行 mkfs 時,務必參考磁碟陣列優化的參數。以 mkfs.xfs 為例, 請參考 su 以及 sw 的參數意義。此案例中, su 應為 256k,而 sw 應該是 (4-1) =3 。
//TODO Docker 沒辦法作這練習
例題:
- 先觀察剛剛建立的磁碟陣列是否正常運作,同時觀察檔案系統是否正常 (/srv/raid 是否可讀寫)
- 將某顆運作中的磁碟 (例如 /dev/vda7) 設定為錯誤 (--fail),再觀察磁碟陣列與檔案系統
- 將錯誤的磁碟抽離 (--remove) 之後,假設修理完畢,再加入該磁碟陣列 (--add),然後再次觀察磁碟陣列與檔案系統
//TODO Docker 沒辦法作這練習
14.2.1:LVM 基礎: PV, PE, VG, LV 的意義
例題:
使用 gdisk 或 fdisk 指令查詢一下,若需要將 partition 指定為 LVM 時,其 system ID (檔案系統識別碼) 應該指定為什麼?
8e
14.2.2:LVM 實做流程
例題:
- 請將上述的 /dev/myvg/mylv 實際格式化為 xfs 檔案系統,且此 fileysytem 可以開機後自動掛載於 /srv/lvm 目錄下。
- 再建立一個名為 /dev/myvg/mylvm2 的 LV 裝置,容量約為 300MB 左右,格式化為 ext4 檔案系統,開機後自動掛載於 /srv/lvm2 目錄下。
//TODO Docker 沒辦法作這練習
14.2.3:彈性化處理 LVM 檔案系統
例題:
- 請將所有剩餘的容量分配給 /dev/myvg/mylv
- 透過 xfs_growfs 來放大 /dev/myvg/mylv 這個檔案系統 (請自行 man xfs_growfs)
- 你目前的系統中,根目錄所在 filesystem 能否放大加入額外的 2GB 容量?若可以,請實做,若不行,請說明原因。
//TODO Docker 沒辦法作這練習
14.3.1:關閉與取消 software RAID 與 LVM 的方式
例題:
- 請透過上述的方案,將 /dev/md0 以及 myvg 含所屬的 PV 刪除掉
- 將所屬的 /dev/vda{4...13} 使用 gdisk 刪除掉,等待下個章節使用
//TODO Docker 沒辦法作這練習
14.3.2:在 Software RAID 上面建置 LVM
例題:
- 以上述的流程完成本節的測試。
//TODO Docker 沒辦法作這練習
14.4.1:Quota 的管理與限制
例題:
- 在測試的系統中, /home 為 xfs 檔案系統,請在設定檔中加入 usrquota, grpquota 的掛載參數;
- 能否直接卸載 /home 再掛載?為什麼?如何進行卸載再掛載的動作?
- 如何觀察已經掛載的檔案系統參數?
//TODO Docker 沒辦法作這練習
14.4.2:xfs 檔案系統的 quota 實做
例題:
- 建立一個名為 "quotaman" 的用戶,該用戶的密碼設定為 "myPassWord"
- 觀察 quotaman 剛剛建立好帳號後的 quota 數值
- 讓 quotaman 的實際容量限制為 200M 而寬限容量限制為 150M 左右,設定完畢請觀察是否正確
- 前往 tty2 終端機,並實際以 quotaman 的身份登入,同時執行『 dd if=/dev/zero of=test.img bs=1M count=160 』這個指令, 檢查 quotaman 家目錄是否有大型檔案?且該指令執行是否會出錯?
- 回歸 root 的身份,再次觀察 quotaman 的 quota 報告,是否有出現 grace time 的資料?為什麼?
- 再次來到 quotaman 的 tty2 終端機,再次使用『 dd if=/dev/zero of=test.img bs=1M count=260 』這個指令, 檢查 quotaman 家目錄是否有大型檔案?且該指令執行是否會出錯?
- 若使用 vim /etc/hosts 等指令後,離開 vim 會出現什麼錯誤訊息?為什麼?
- quotaman 需要如何處理資料後,才能夠正常的繼續操作系統?
//TODO Docker 沒辦法作這練習