:::

修復Proxmox VE:增加第二顆硬碟到LVM / Fix Proxmox VE: Add Another Disk to LVM

pablo

之前我寫過「Proxmox VE增加第二顆硬碟」的做法,是用額外掛載的方式來新增一個新的Storage。這次我要做的是比較完整的做法:將新增加硬碟加入LVM中。操作步驟主要參考Jarrod的LVM教學


操作環境 / Proxmox VE Environment

2015-06-21_222426

本文是以Proxmox VE 3.4為例子,以VirtualBox來架設。重點是這個電腦有兩顆硬碟,Proxmox VE是安裝在第一顆硬碟中,第二顆硬碟是空的。

操作步驟 / Operation Process

Step 1. 登入 / Login

image

你可以用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

image

然後新增磁碟分割區,建立一個主要分割區,空間為整顆硬碟:

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

image

然後將該分割區的檔案類型修改為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)

image

最後將分割表的資訊寫入硬碟:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

image

完成。新增硬碟的磁碟分割位置為 /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

image

這樣就把第二顆硬碟新增到Proxmox VE的local空間中。

image

使用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相比。簡單來說:

  1. 當LVM裡面其中一顆硬碟毀損時,你得花很多功夫來調整LV,以移除壞掉的硬碟。
  2. 其他作業系統無法讀取以LVM管理的硬碟資料,也無法用Gparted之類的工具來調整硬碟分割。
  3. 結合以上兩點,如果LVM的作業系統毀損、無法開機。除非是用救援模式進入系統,不然不能用外接硬碟的方式讀取LVM的資料。

既然大部分Linux發佈版預設都用LVM,我們應該也無法擺脫LVM壞掉時的風險。因此在使用LVM時,一定要有壞掉之後很難復原的心理準備喔。

總共1 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 今天用到了這個功能,為了表示感謝過去的自己,留言一下。

    回覆刪除