Adding a New Disk to CentOS over VMWare (於 VMWare 裏的 CentOS 新增新磁碟並掛載)
環境: CentOS 64bit 6.0 版裝於 vSphere 4.1 上成為一個 VM。
關閉 CentOS 系統 (optional 不一定要執行這個 CentOS 可以 hot-add)。
於 VMWare 中新增 thin provisioned 的第二顆 scsi 硬碟,編號 scsi 0:1。Save Settings。
VMWare vSphere Client 中打開 centos (power on)。
於 CentOS 圖形介面 中「應用程式」>「系統工具」>「磁碟公用程式」看到新增硬碟為 sdb。原本的硬碟 scsi 0:0 (mbr 格式) 編號為 sda ,分為兩個磁區: (1) sda1: /boot 掛載在 ext4 磁區下。(2) sda2: swap、/ 、和 (3) home 為 lvm 磁區。
於 CentOS 圖形介面中「應用程式」>「系統工具」>「磁碟公用程式」切換到第二顆硬碟 > 按「格式化磁碟機」 > 選格式化 VMWare Virtual disk > 架構選 mbr (master boot recorder)
於 CentOS 圖形介面中「應用程式」>「系統工具」>「磁碟公用程式」格式化全部為 ext4 格式 (device: /dev/sdb1),選「編輯分割區」為 8e (linux lvm)。
傳統方式為新增一目錄,掛載新目錄於新磁碟上,並將 /home 資料移往(複製)新磁碟上的新目錄,卸載 /home ,然後再掛載新磁碟上的 home 目錄,可參考下面指令。
$sudo mkdir /disk-tmp
$sudo mount -t ext4 /dev/sdb1 /disk-tmp
$sudo cd /home
$sudo tar -zcvf /disk-tmp/home.tar.gz *
$sudo cd /disk-tmp
$sudo tar -zxvf home.tar.gz
$sudo umount /home
$sudo mount -t ext4 /dev/sdb1 /home
由於新的 CentOS 採用更有彈性的 lvm 方式來處理磁碟空間,所以不採用上面傳統方式來處理。以下指令為:「處理新增的磁碟,並增加相關的 lv 空間給 / 根目錄與 /home 目錄」。
每個指令完成後,可以搭配圖形介面 --> CentOS 中「應用程式」>「系統工具」>「磁碟公用程式」,來看相關的磁碟空間變化。
以下過程都有截圖,可至備存檔找找看。
#fdisk -l
(看新磁碟標記是否正確為 8e -- Liunx LVM)
#pvscan
(掃描 pv)
#pvcreate /dev/sdb1
(建立新磁碟至 pv 中)
#pvscan
(檢查 pv)
#pvdisplay
(看 pv 狀況)
#vgdisplay
(看 vg)
#vgextend vg_centos /dev/sdb1
(將新磁碟 sdb1 納入 vg 名稱為 vg_centos 中)
#lvdisplay
(看 lv 狀態)
#vgdisplay
(看 vg 狀態是否有 sdb1 納入 vg_centos 中)
#ll /dev/vg_centos/lv_root
(看此 lv 的真正目錄名稱為 /dev/dm-x)
#ll /dev/vg_centos/lv_swap
(看此 lv 的真正目錄名稱為 /dev/dm-x)
#ll /dev/vg_centos/lv_home
(看此 lv 的真正目錄名稱為 /dev/dm-x)
#lvresize -l +12800 /dev/vg_centos/lv_home
(新磁碟的空間有 25599 PE(約100gb),分配 12800 PE(約50gb)給 lv_home)
#lvdisplay
(看 lv 狀態,是否 lv_home 成功新增磁碟空間)
#vgdisplay
(看 vg 狀態,是否還有空間給新的 lv)
#lvcreate -l 12799 -n lv_var vg_centos
(將剩下的 12799 PE 空間給新增的 lv_var ,vg 設為 vg_centos)
#lvdisplay
(再次檢查 lv)
#vgdisplay
(再次檢查 vg)
#ll /dev/vg_centos/lv_var
(查新的 lv_var 真正目錄名稱為 /dev/dm-x)
#mkfs -t ext4 /dev/vg_centos/lv_var
(新的 lv 格式化)
#df
(檢查)
#du /var -h
(檢查)
#cat /etc/fstab
(檢查,原本要掛 /var 到 lv_var 磁區上,但後來改變主意,將 lv_var 移除,並將 12799 空間都劃給 / 根目錄)
#lvremove /dev/vg_centos/lv_var
(移除 lv_var)
#vgdisplay
(看到 vg 的 free 空間回來了,有 12799 PE)
#df /home
(第一個數字為「容量」)
#resize2fs /dev/vg_centos/lv_home
(將檔案系統容量確實增加)
#df /home
(看到第一個數字「容量」增加了)
#lvresize -l +12799 /dev/vg_centos/lv_root
#df /
#resize2fs /dev/vg_centos/lv_root
#df /
(以上三個步驟是將 / 根目錄的 lv 增加容量的指令)