在我們之前的文章中,我們介紹了什么是 LVM 以及能用 LVM 做什么,今天我們會(huì)給你介紹一些 LVM 的主要管理工具,使得你在設(shè)置和擴(kuò)展安裝時(shí)更游刃有余。
正如之前所述,LVM 是介于你的操作系統(tǒng)和物理硬盤(pán)驅(qū)動(dòng)器之間的抽象層。這意味著你的物理硬盤(pán)驅(qū)動(dòng)器和分區(qū)不再依賴于他們所在的硬盤(pán)驅(qū)動(dòng)和分區(qū)。而是你的操作系統(tǒng)所見(jiàn)的硬盤(pán)驅(qū)動(dòng)和分區(qū)可以是由任意數(shù)目的獨(dú)立硬盤(pán)匯集而成的或是一個(gè)軟件磁盤(pán)陣列。
要管理 LVM,這里有很多可用的 GUI 工具,但要真正理解 LVM 配置發(fā)生的事情,最好要知道一些命令行工具。這當(dāng)你在一個(gè)服務(wù)器或不提供 GUI 工具的發(fā)行版上管理 LVM 時(shí)尤為有用。
LVM 的大部分命令和彼此都非常相似。每個(gè)可用的命令都由以下其中之一開(kāi)頭:
物理卷命令用于在卷組中添加或刪除硬盤(pán)驅(qū)動(dòng)。卷組命令用于為你的邏輯卷操作更改顯示的物理分區(qū)抽象集。邏輯卷命令會(huì)以分區(qū)形式顯示卷組,使得你的操作系統(tǒng)能使用指定的空間。
為了幫助你理解每個(gè)前綴可用的命令,我們制作了一個(gè)備忘單。我們會(huì)在該文章中介紹一些命令,但仍有很多你可用但沒(méi)有介紹到的命令。
該列表中的所有命令都要以 root 身份運(yùn)行,因?yàn)槟愀牡氖菚?huì)影響整個(gè)機(jī)器系統(tǒng)級(jí)設(shè)置。
你首先需要做的事情是檢查你的 LVM 設(shè)置。s 和 display 命令可以和物理卷(pv)、卷組(vg)以及邏輯卷(lv)一起使用,是一個(gè)找出當(dāng)前設(shè)置的好起點(diǎn)。
display 命令會(huì)格式化輸出信息,因此比 s 命令更易于理解。對(duì)每個(gè)命令你會(huì)看到名稱和 pv/vg 的路徑,它還會(huì)給出空閑和已使用空間的信息。
最重要的信息是 PV 名稱和 VG 名稱。用這兩部分信息我們可以繼續(xù)進(jìn)行 LVM 設(shè)置。
邏輯卷是你的操作系統(tǒng)在 LVM 中使用的分區(qū)。創(chuàng)建一個(gè)邏輯卷,首先需要擁有一個(gè)物理卷和卷組。下面是創(chuàng)建一個(gè)新的邏輯卷所需要的全部命令。
我們會(huì)從一個(gè)全新的沒(méi)有任何分區(qū)和信息的硬盤(pán)開(kāi)始。首先找出你將要使用的磁盤(pán)。(/dev/sda, sdb, 等)
注意:記住所有的命令都要以 root 身份運(yùn)行或者在命令前面添加 'sudo' 。
fdisk -l
如果之前你的硬盤(pán)從未格式化或分區(qū)過(guò),在 fdisk 的輸出中你很可能看到類似下面的信息。這完全正常,因?yàn)槲覀儠?huì)在下面的步驟中創(chuàng)建需要的分區(qū)。
我們的新磁盤(pán)位置是 /dev/sdb,讓我們用 fdisk 命令在磁盤(pán)上創(chuàng)建一個(gè)新的分區(qū)。
這里有大量能創(chuàng)建新分區(qū)的 GUI 工具,包括 Gparted,但由于我們已經(jīng)打開(kāi)了終端,我們將使用 fdisk 命令創(chuàng)建需要的分區(qū)。
在終端中輸入以下命令:
fdisk /dev/sdb
這會(huì)使你進(jìn)入到一個(gè)特殊的 fdisk 提示符中。
以指定的順序輸入命令創(chuàng)建一個(gè)使用新硬盤(pán) 100% 空間的主分區(qū)并為 LVM 做好了準(zhǔn)備。如果你需要更改分區(qū)的大小或想要多個(gè)分區(qū),我建議使用 GParted 或自己了解一下關(guān)于 fdisk 命令的使用。
警告:下面的步驟會(huì)格式化你的硬盤(pán)驅(qū)動(dòng)。確保在進(jìn)行下面步驟之前你的硬盤(pán)驅(qū)動(dòng)中沒(méi)有任何有用的信息。
輸入 enter 鍵兩次以接受默認(rèn)的第一個(gè)和最后一個(gè)柱面。
用下面的命令準(zhǔn)備 LVM 所使用的分區(qū)。
核實(shí)并將信息寫(xiě)入硬盤(pán)。
運(yùn)行這些命令之后,會(huì)退出 fdisk 提示符并返回到終端的 bash 提示符中。
輸入 pvcreate /dev/sdb1 在剛創(chuàng)建的分區(qū)上新建一個(gè) LVM 物理卷。
你也許會(huì)問(wèn)為什么我們不用一個(gè)文件系統(tǒng)格式化分區(qū),不用擔(dān)心,該步驟在后面。
現(xiàn)在我們有了一個(gè)指定的分區(qū)和創(chuàng)建好的物理卷,我們需要?jiǎng)?chuàng)建一個(gè)卷組。很幸運(yùn)這只需要一個(gè)命令。
vgcreate vgpool /dev/sdb1
vgpool 是新創(chuàng)建的卷組的名稱。你可以使用任何你喜歡的名稱,但建議標(biāo)簽以 vg 開(kāi)頭,以便后面你使用它時(shí)能意識(shí)到這是一個(gè)卷組。
創(chuàng)建 LVM 將使用的邏輯卷:
lvcreate -L 3G -n lvstuff vgpool
-L 命令指定邏輯卷的大小,在該情況中是 3 GB,-n 命令指定卷的名稱。 指定 vgpool 以便 lvcreate 命令知道從什么卷獲取空間。
最后一步是用一個(gè)文件系統(tǒng)格式化新的邏輯卷。如果你需要選擇一個(gè) Linux 文件系統(tǒng)的幫助,請(qǐng)閱讀 如果根據(jù)需要選取最合適的文件系統(tǒng)。
mkfs -t ext3 /dev/vgpool/lvstuff
創(chuàng)建掛載點(diǎn)并將卷掛載到你可以使用的地方。
mkdir /mnt/stuff
mount -t ext3 /dev/vgpool/lvstuff /mnt/stuff
邏輯卷的一個(gè)好處是你能使你的存儲(chǔ)物理地變大或變小,而不需要移動(dòng)所有東西到一個(gè)更大的硬盤(pán)。另外,你可以添加新的硬盤(pán)并同時(shí)擴(kuò)展你的卷組?;蛘呷绻阌幸粋€(gè)不使用的硬盤(pán),你可以從卷組中移除它使得邏輯卷變小。
這里有三個(gè)用于使物理卷、卷組和邏輯卷變大或變小的基礎(chǔ)工具。
注意:這些命令中的每個(gè)都要以 pv、vg 或 lv 開(kāi)頭,取決于你的工作對(duì)象。
讓我們來(lái)看一個(gè)如何向剛創(chuàng)建的邏輯卷 'lvstuff' 添加新硬盤(pán)驅(qū)動(dòng)的例子。
按照上面創(chuàng)建新分區(qū)并更改分區(qū)類型為 LVM(8e) 的步驟安裝一個(gè)新硬盤(pán)驅(qū)動(dòng)。然后用 pvcreate 命令創(chuàng)建一個(gè) LVM 能識(shí)別的物理卷。
要添加新的硬盤(pán)到一個(gè)卷組,你只需要知道你的新分區(qū),在我們的例子中是 /dev/sdc1,以及想要添加到的卷組的名稱。
這會(huì)添加新物理卷到已存在的卷組中。
vgextend vgpool /dev/sdc1
調(diào)整邏輯卷的大小,我們需要指出的是通過(guò)大小而不是設(shè)備來(lái)擴(kuò)展。在我們的例子中,我們會(huì)添加一個(gè) 8GB 的硬盤(pán)驅(qū)動(dòng)到我們的 3GB vgpool。我們可以用 lvextend 或 lvresize 命令使該空間可用。
lvextend -L8G /dev/vgpool/lvstuff
當(dāng)這個(gè)命令工作的時(shí)候你會(huì)發(fā)現(xiàn)它實(shí)際上重新設(shè)置邏輯卷大小為 8GB 而不是我們期望的將 8GB 添加到已存在的卷上。要添加剩余的可用 3GB 你需要用下面的命令。
lvextend -L+3G /dev/vgpool/lvstuff
現(xiàn)在我們的邏輯卷已經(jīng)是 11GB 大小了。
邏輯卷是 11GB 大小但是上面的文件系統(tǒng)仍然只有 3GB。要使文件系統(tǒng)使用整個(gè)的 11GB 可用空間你需要用 resize2fs 命令。你只需要指定 resize2fs 到 11GB 邏輯卷它就會(huì)幫你完成其余的工作。
resize2fs /dev/vgpool/lvstuff
注意:如果你使用除 ext3/4 之外的文件系統(tǒng),請(qǐng)查看調(diào)整你的文件系統(tǒng)大小的工具。
如果你想從卷組中移除一個(gè)硬盤(pán)驅(qū)動(dòng)你可以按照上面的步驟反向操作,并用 lvreduce 或 vgreduce 命令代替。
快照是一些新的高級(jí)文件系統(tǒng)提供的功能,但是 ext3/4 文件系統(tǒng)并沒(méi)有快照的功能。LVM 快照最棒的是你的文件系統(tǒng)永不掉線,你可以擁有你想要的任何大小而不需要額外的硬盤(pán)空間。
LVM 獲取快照的時(shí)候,會(huì)有一張和邏輯卷完全相同的“照片”,該“照片”可以用于在不同的硬盤(pán)上進(jìn)行備份。生成一個(gè)備份的時(shí)候,任何需要添加到邏輯卷的新信息會(huì)如往常一樣寫(xiě)入磁盤(pán),但會(huì)跟蹤更改使得原始快照永遠(yuǎn)不會(huì)損毀。
要?jiǎng)?chuàng)建一個(gè)快照,我們需要?jiǎng)?chuàng)建擁有足夠空閑空間的邏輯卷,用于保存我們備份的時(shí)候會(huì)寫(xiě)入該邏輯卷的任何新信息。如果驅(qū)動(dòng)并不是經(jīng)常寫(xiě)入,你可以使用很小的一個(gè)存儲(chǔ)空間。備份完成的時(shí)候我們只需要移除臨時(shí)邏輯卷,原始邏輯卷會(huì)和往常一樣。
創(chuàng)建 lvstuff 的快照,用帶 -s 標(biāo)記的 lvcreate 命令。
lvcreate -L512M -s -n lvstuffbackup /dev/vgpool/lvstuff
這里我們創(chuàng)建了一個(gè)只有 512MB 的邏輯卷,因?yàn)樵撚脖P(pán)實(shí)際上并不會(huì)使用。512MB 的空間會(huì)保存?zhèn)浞輹r(shí)產(chǎn)生的任何新數(shù)據(jù)。
和之前一樣,我們需要?jiǎng)?chuàng)建一個(gè)掛載點(diǎn)并掛載新快照,然后才能從中復(fù)制文件。
mkdir /mnt/lvstuffbackup
mount /dev/vgpool/lvstuffbackup /mnt/lvstuffbackup
你剩下需要做的是從 /mnt/lvstuffbackup/ 中復(fù)制所有文件到一個(gè)外部的硬盤(pán)或者打包所有文件到一個(gè)文件。
注意:tar -c 會(huì)創(chuàng)建一個(gè)歸檔文件,-f 要指出歸檔文件的名稱和路徑。要獲取 tar 命令的幫助信息,可以在終端中輸入 man tar。
tar -cf /home/rothgar/Backup/lvstuff-ss /mnt/lvstuffbackup/
記住備份時(shí)候?qū)懙?lvstuff 的所有文件都會(huì)在我們之前創(chuàng)建的臨時(shí)邏輯卷中被跟蹤。確保備份的時(shí)候你有足夠的空閑空間。
備份完成后,卸載卷并移除臨時(shí)快照。
umount /mnt/lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/
要?jiǎng)h除一個(gè)邏輯卷,你首先需要確保卷已經(jīng)卸載,然后你可以用 lvremove 命令刪除它。邏輯卷刪除后你可以移除卷組,卷組刪除后你可以刪除物理卷。
這是所有移除我們創(chuàng)建的卷和組的命令。
umount /mnt/lvstuff
lvremove /dev/vgpool/lvstuff
vgremove vgpool
pvremove /dev/sdb1 /dev/sdc1
這些已經(jīng)囊括了關(guān)于 LVM 你需要了解的大部分知識(shí)。如果你有任何關(guān)于這些討論的經(jīng)驗(yàn),請(qǐng)?jiān)谙旅娴脑u(píng)論框中和大家分享。
via: http://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/
本文由 LCTT 原創(chuàng)翻譯,Linux中國(guó) 榮譽(yù)推出
聯(lián)系客服