由于 LFCS 考試中的一些改變已在 2016 年 2 月 2 日生效,我們添加了一些必要的專題到 LFCS 系列。我們也非常推薦備考的同學(xué),同時閱讀 LFCE 系列。
LFCS:管理 LVM 和創(chuàng)建 LVM 分區(qū)
在安裝 Linux 系統(tǒng)的時候要做的最重要的決定之一便是給系統(tǒng)文件、home 目錄等分配空間。在這個地方犯了錯,再要擴(kuò)大空間不足的分區(qū),那樣既麻煩又有風(fēng)險。
邏輯卷管理 (LVM)相較于傳統(tǒng)的分區(qū)管理有許多優(yōu)點,已經(jīng)成為大多數(shù)(如果不能說全部的話) Linux 發(fā)行版安裝時的默認(rèn)選擇。LVM 最大的優(yōu)點應(yīng)該是能方便的按照你的意愿調(diào)整(減小或增大)邏輯分區(qū)的大小。
LVM 的組成結(jié)構(gòu):
本文,我們將使用三塊 8 GB 的磁盤(/dev/sdb、/dev/sdc 和 /dev/sdd)分別創(chuàng)建三個物理卷。你既可以直接在整個設(shè)備上創(chuàng)建 PV,也可以先分區(qū)在創(chuàng)建。
在這里我們選擇第一種方式,如果你決定使用第二種(可以參考本系列第四講:創(chuàng)建分區(qū)和文件系統(tǒng))確保每個分區(qū)的類型都是 8e
。
要在 /dev/sdb、/dev/sdc 和 /dev/sdd上創(chuàng)建物理卷,運行:
# pvcreate /dev/sdb /dev/sdc /dev/sdd
你可以列出新創(chuàng)建的 PV ,通過:
# pvs
并得到每個 PV 的詳細(xì)信息,通過:
# pvdisplay /dev/sdX
(X 即 b、c 或 d)
如果沒有輸入 /dev/sdX
,那么你將得到所有 PV 的信息。
使用 /dev/sdb和
/dev/sdc創(chuàng)建卷組 ,命名為
vg00(在需要時是可以通過添加其他設(shè)備來擴(kuò)展空間的,我們等到說明這點的時候再用,所以暫時先保留
/dev/sdd`):
# vgcreate vg00 /dev/sdb /dev/sdc
就像物理卷那樣,你也可以查看卷組的信息,通過:
# vgdisplay vg00
由于 vg00
是由兩個 8 GB 的磁盤組成的,所以它將會顯示成一個 16 GB 的硬盤:
LVM 卷組列表
當(dāng)談到創(chuàng)建邏輯卷,空間的分配必須考慮到當(dāng)下和以后的需求。根據(jù)每個邏輯卷的用途來命名是一個好的做法。
舉個例子,讓我們創(chuàng)建兩個 LV,命名為 vol_projects
(10 GB) 和 vol_backups
(剩下的空間), 在日后分別用于部署項目文件和系統(tǒng)備份。
參數(shù) -n
用于為 LV 指定名稱,而 -L
用于設(shè)定固定的大小,還有 -l
(小寫的 L)在 VG 的預(yù)留空間中用于指定百分比大小的空間。
# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00
和之前一樣,你可以查看 LV 的列表和基礎(chǔ)信息,通過:
# lvs
或是查看詳細(xì)信息,通過:
# lvdisplay
若要查看單個 LV 的信息,使用 lvdisplay 加上 VG 和 LV 作為參數(shù),如下:
# lvdisplay vg00/vol_projects
邏輯卷列表
如上圖,我們看到 LV 已經(jīng)被創(chuàng)建成存儲設(shè)備了(參考 LV Path 那一行)。在使用每個邏輯卷之前,需要先在上面創(chuàng)建文件系統(tǒng)。
這里我們拿 ext4 來做舉例,因為對于每個 LV 的大小, ext4 既可以增大又可以減?。ㄏ鄬Φ?xfs 就只允許增大):
# mkfs.ext4 /dev/vg00/vol_projects
# mkfs.ext4 /dev/vg00/vol_backups
我們將在下一節(jié)向大家說明,如何調(diào)整邏輯卷的大小并在需要的時候添加額外的外部存儲空間。
現(xiàn)在設(shè)想以下場景。vol_backups
中的空間即將用完,而 vol_projects
中還有富余的空間。由于 LVM 的特性,我們可以輕易的減小后者的大?。ū确秸f 2.5 GB),并將其分配給前者,與此同時調(diào)整每個文件系統(tǒng)的大小。
幸運的是這很簡單,只需:
# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups
減小邏輯卷和卷組
在調(diào)整邏輯卷的時候,其中包含的減號 (-)
或加號 (+)
是十分重要的。否則 LV 將會被設(shè)置成指定的大小,而非調(diào)整指定大小。
有些時候,你可能會遭遇那種無法僅靠調(diào)整邏輯卷的大小就可以解決的問題,那時你就需要購置額外的存儲設(shè)備了,你可能需要再加一塊硬盤。這里我們將通過添加之前配置時預(yù)留的 PV (/dev/sdd
),用以模擬這種情況。
想把 /dev/sdd
加到 vg00
,執(zhí)行:
# vgextend vg00 /dev/sdd
如果你在運行上條命令的前后執(zhí)行 vgdisplay vg00
,你就會看出 VG 的大小增加了。
# vgdisplay vg00
查看卷組磁盤大小
現(xiàn)在,你可以使用新加的空間,按照你的需求調(diào)整現(xiàn)有 LV 的大小,或者創(chuàng)建一個新的 LV。
當(dāng)然,如果我們不打算實際的使用邏輯卷,那么創(chuàng)建它們就變得毫無意義了。為了更好的識別邏輯卷,我們需要找出它的 UUID
(用于識別一個格式化存儲設(shè)備的唯一且不變的屬性)。
要做到這點,可使用 blkid 加每個設(shè)備的路徑來實現(xiàn):
# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups
尋找邏輯卷的 UUID
為每個 LV 創(chuàng)建掛載點:
# mkdir /home/projects
# mkdir /home/backups
并在 /etc/fstab
插入相應(yīng)的條目(確保使用之前獲得的UUID):
UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0
保存并掛載 LV:
# mount -a
# mount | grep home
掛載邏輯卷
在涉及到 LV 的實際使用時,你還需要按照曾在本系列第八講:管理用戶和用戶組中講解的那樣,為其設(shè)置合適的 ugo+rwx
。
本文介紹了 邏輯卷管理,一個用于管理可擴(kuò)展存儲設(shè)備的多功能工具。與 RAID(曾在本系列講解過的 第六講:組裝分區(qū)為RAID設(shè)備——創(chuàng)建和管理系統(tǒng)備份)結(jié)合使用,你將同時體驗到(LVM 帶來的)可擴(kuò)展性和(RAID 提供的)冗余。
在這類的部署中,你通常會在 RAID
上發(fā)現(xiàn) LVM
,這就是說,要先配置好 RAID 然后它在上面配置 LVM。
如果你對本問有任何的疑問和建議,可以直接在下方的評論區(qū)告訴我們。
聯(lián)系客服