修復Proxmox VE:增加第二顆硬碟到LVM / Fix Proxmox VE: Add Another Disk to LVM
修復Proxmox VE:增加第二顆硬碟到LVM / Fix Proxmox VE: Add Another Disk to LVM
之前我寫過「Proxmox VE增加第二顆硬碟」的做法,是用額外掛載的方式來新增一個新的Storage。這次我要做的是比較完整的做法:將新增加硬碟加入LVM中。操作步驟主要參考Jarrod的LVM教學。
操作環境 / Proxmox VE Environment
本文是以Proxmox VE 3.4為例子,以VirtualBox來架設。重點是這個電腦有兩顆硬碟,Proxmox VE是安裝在第一顆硬碟中,第二顆硬碟是空的。
操作步驟 / Operation Process
Step 1. 登入 / Login
你可以用Proxmox VE的Web GUI中的Shell來登入,也可以直接登入本機端。總之要先以root的身份操作指令。
Step 2. 分割新的硬碟 / Partition the new disk
首先我們要確定新硬碟的路徑。一般來說,第一顆SATA硬碟為 /dev/sda 、第二顆為 /dev/sdb,而IDE的路徑則是 /dev/had 、第二顆則是 /dev/hdb。詳情請看鳥哥的說明。
因為我安裝的是第二顆的SATA硬碟,所以路徑為 /dev/sdb。
硬碟的分割要使用fdisk,搭配第二顆硬碟的路徑/dev/sdb,指令如下:(粗體的地方表示是我們要輸入的指令)
root@pve:~#fdisk /dev/sdb
接下來會跳到fdisk的對話介面:
Command (m for help):
如果該硬碟裡面已經有資料,那就要用d指令來刪除。
Command (m for help): d
Selected partition 1
然後新增磁碟分割區,建立一個主要分割區,空間為整顆硬碟:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): "enter"
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): "enter"
Using default value 2610
然後將該分割區的檔案類型修改為Linux LVM:
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
最後將分割表的資訊寫入硬碟:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
完成。新增硬碟的磁碟分割位置為 /dev/sdb1。
Step 3. 增加邏輯捲軸 / Increasing the logical volume
接下來要連續輸入四個指令。注意裡面的磁碟分割路徑 /dev/sdb1,這是剛剛用fdisk新增的磁碟分割。
pvcreate /dev/sdb1
vgextend pve /dev/sdb1
lvextend /dev/pve/data /dev/sdb1
resize2fs /dev/pve/data
這樣就把第二顆硬碟新增到Proxmox VE的local空間中。
使用lvdisplay指令來看看結果,可以發現/dev/pve/data的空間已經新增到了12.37GiB。
這樣就大功告成囉!同樣的這種做法也可以用在第三顆、第四顆硬碟上面,繼續擴大local的硬碟空間。
將硬碟從LVM中移除 / Remove disk from LVM
既然我們可以新增硬碟到LVM,那一樣可以從LVM中移除硬碟。但是這個步驟就比新增還要複雜很多,細節可以參考鳥哥的縮小LV容量,如果那天我遇到這種情況了再來深入研究吧。
結語:使用LVM的風險 / Conclusion: The risk of LVM
現在Linux在安裝時預設都是以LVM的形式來分割磁碟,所以對大多數的人來說都感覺不到LVM的存在。LVM雖然能夠像上面這樣任意擴充一顆硬碟來增加空間,但是LVM是一種以任意調整容量為目的的檔案系統,安全性、可恢復性則不在考量範圍內。而且LVM預設是用線性模式在寫入資料,一顆硬碟滿了再放下一顆,存取方式無法與RAID相比。簡單來說:
- 當LVM裡面其中一顆硬碟毀損時,你得花很多功夫來調整LV,以移除壞掉的硬碟。
- 其他作業系統無法讀取以LVM管理的硬碟資料,也無法用Gparted之類的工具來調整硬碟分割。
- 結合以上兩點,如果LVM的作業系統毀損、無法開機。除非是用救援模式進入系統,不然不能用外接硬碟的方式讀取LVM的資料。
既然大部分Linux發佈版預設都用LVM,我們應該也無法擺脫LVM壞掉時的風險。因此在使用LVM時,一定要有壞掉之後很難復原的心理準備喔。
(more...)
Comments