Linux LVM管理(格式化、掛載、擴容、快照、恢復、鏡像)
linux LVM是什么
LVM(Logical Volume Manager)是一種linux磁盤管理工具,用于在Linux系統(tǒng)上管理磁盤和存儲卷。通過使用LVM,可以將多個物理磁盤或分區(qū)組合成一個或多個邏輯卷,并提供靈活的存儲空間管理功能。
LVM的優(yōu)點:
- 靈活調(diào)整存儲空間:使用LVM可以動態(tài)地增加、縮減和移動邏輯卷的大小,無需重新分區(qū)或重新格式化磁盤。
- 數(shù)據(jù)保護:通過鏡像、快照和備份等功能,LVM提供了數(shù)據(jù)冗余和故障恢復的能力,提高了數(shù)據(jù)的安全性和可靠性。
- 快照:LVM支持創(chuàng)建邏輯卷的實時副本,用于備份、測試操作或還原到之前的狀態(tài)。
- 靈活遷移:LVM允許在線遷移邏輯卷,以實現(xiàn)磁盤空間的重新分配和平衡負載。
LVM相關(guān)概念:
- 物理卷(Physical Volume,PV):物理卷是LVM中的基本單元,可以是硬盤、SSD或分區(qū)。使用
pvcreate
命令將物理磁盤或分區(qū)轉(zhuǎn)換為物理卷。 - 卷組(Volume Group,VG):卷組是由一個或多個物理卷組成的邏輯單元,相當于一個存儲池。通過使用
vgcreate
命令創(chuàng)建卷組,將物理卷添加到卷組中。 - 邏輯卷(Logical Volume,LV):邏輯卷是從卷組劃分出來的獨立存儲單元,類似于硬盤上的一個分區(qū)。使用
lvcreate
命令創(chuàng)建邏輯卷,可以指定邏輯卷的大小和格式。 - 快照卷(Snapshot Volume):快照卷是邏輯卷的實時副本,用于數(shù)據(jù)備份、測試或還原到之前的狀態(tài)。使用
lvcreate
命令創(chuàng)建邏輯卷時,可以指定為快照卷。 - 物理區(qū)(Physical Extent,PE):物理區(qū)是卷組中的最小分配單元,通常是4MB或更小的大小。卷組中的空間被劃分為一組物理區(qū),邏輯卷和物理卷都在物理區(qū)級別上進行分配。
- 擴展(Extent):擴展是邏輯卷和物理卷的分配單位,可以理解為一個邏輯層面的區(qū)塊,大小通常與物理區(qū)相同。
以上是LVM的主要組成部分。物理卷被組合成卷組,而卷組中的空間可以根據(jù)需要劃分為邏輯卷。邏輯卷可以通過掛載到文件系統(tǒng)樹上的特定目錄來訪問和使用。
LVM的流程
物理磁盤->物理卷(PV)->加入卷組(VG)->卷組中抽取空間,制作邏輯卷(LV)->格式化->掛載
-
物理磁盤:首先,您有物理磁盤,可以是硬盤、SSD或分區(qū)等。物理磁盤是存儲數(shù)據(jù)的物理介質(zhì)。
-
物理卷(Physical Volume,PV):將物理磁盤轉(zhuǎn)換為LVM中的物理卷。這可以通過使用
pvcreate
命令將物理磁盤標記為物理卷。 -
卷組(Volume Group,VG):將一個或多個物理卷組合成卷組。卷組是一個邏輯的單元,類似于一個存儲池。使用
vgcreate
命令創(chuàng)建卷組,并將物理卷添加到卷組中。 -
邏輯卷(Logical Volume,LV):從卷組中劃分出邏輯卷。邏輯卷就像硬盤上的一個分區(qū),用于存儲數(shù)據(jù)。使用
lvcreate
命令創(chuàng)建邏輯卷,并可以指定邏輯卷的大小和格式。 -
格式化:一旦邏輯卷創(chuàng)建完畢,可以使用文件系統(tǒng)指令(例如
mkfs
命令)對邏輯卷進行格式化,以便能夠在其中存儲文件系統(tǒng)。 -
掛載:格式化后的邏輯卷可以被掛載到文件系統(tǒng)樹中的指定目錄上。掛載操作將邏輯卷與特定的目錄關(guān)聯(lián)起來,使得可以在該目錄下訪問和使用邏輯卷中的文件系統(tǒng)。
實操
一、在VMware虛擬機中添加新磁盤
在虛擬機設(shè)置中選擇硬盤添加一塊新硬盤
二、查看linux磁盤信息
使用命令lsblk,來查看系統(tǒng)上的磁盤分區(qū)信息。
lsblk
在此我們發(fā)現(xiàn)一下信息:
-
sda
是一個20GB的磁盤,有三個分區(qū):-
sda1
是一個300MB的分區(qū),被掛載為/boot
,用于存儲引導文件(啟動分區(qū))。 -
sda2
是一個2GB的分區(qū),被標記為[SWAP],用于交換空間(虛擬內(nèi)存)。 -
sda3
是一個17.7GB的分區(qū),被掛載為根目錄/
,用于存儲操作系統(tǒng)和用戶數(shù)據(jù)。
-
-
sdb
是另一個20GB的磁盤,沒有分區(qū)信息。 -
sr0
是一個虛擬光驅(qū)
三、創(chuàng)建物理卷(PV)
在此我們需要把sdb
這塊硬盤設(shè)置為物理卷(PV),使用以下命令:
pvcreate /dev/sdb
“pvcreate /dev/sdb” 是一個LVM命令,用于將指定的磁盤或分區(qū)
/dev/sdb
轉(zhuǎn)換為LVM(Logical Volume Manager)中的物理卷(Physical Volume, PV)。
創(chuàng)建成功后,我們來輸入pvdisplay 來查看我們新建的物理卷(PV)信息
輸出中的信息顯示了物理卷的一些重要屬性:
- PV Name:物理卷的名稱為
/dev/sdb
。- VG Name:物理卷尚未分配給任何卷組(Volume Group, VG),因此該字段為空。
- PV Size:物理卷的總大小為20.00 GiB。
- Allocatable:當前物理卷不可分配(Allocatable = NO)。
- PE Size:物理卷上的物理區(qū)(Physical Extent,PE)大小為0,這意味著物理卷尚未格式化或分割成任何邏輯結(jié)構(gòu)。
- Total PE:物理卷上總共的物理區(qū)數(shù)量為0。
- Free PE:物理卷上可用的物理區(qū)數(shù)量為0,即全部空間都尚未分配給任何邏輯卷。
- Allocated PE:已經(jīng)分配給邏輯卷的物理區(qū)數(shù)量為0,即尚未在物理卷上創(chuàng)建任何邏輯卷。
- PV UUID:物理卷的唯一標識符為9EOuPp-Qj1o-i2Bz-8cci-x4zx-NyU0-v4He31。
四、創(chuàng)建卷組(VG)
我們成功創(chuàng)建了物理卷后,就需要再創(chuàng)建一個卷組(VG),使用如下命令:
vgcreate my_disk /dev/sdb
此時我們使用vgdisplay,來查看驗證是否創(chuàng)建成功
輸出中的信息顯示了卷組(VG)的一些重要信息分別是:
- VG Name:卷組的名稱為
my_disk
。- Format:卷組使用的格式為
lvm2
,代表LVM的第二版本。- Metadata Areas:卷組中的元數(shù)據(jù)區(qū)域數(shù)量為1,即指定了一個物理卷。
- Metadata Sequence No:元數(shù)據(jù)序列號為1,用于跟蹤元數(shù)據(jù)的更改。
- VG Access:卷組以讀寫方式訪問。
- VG Status:卷組狀態(tài)可調(diào)整大?。╮esizable),表示卷組中的邏輯卷大小可以調(diào)整。
- MAX LV:卷組最大邏輯卷數(shù)量為0。
- Cur LV:當前卷組中的邏輯卷數(shù)量為0。
- Open LV:當前處于打開狀態(tài)的邏輯卷數(shù)量為0。
- Max PV:卷組中最大物理卷數(shù)量為0。
- Cur PV:當前物理卷數(shù)量為1。
- Act PV:當前活躍的物理卷數(shù)量為1。
- VG Size:卷組的總大小為不到20.00 GiB。
- PE Size:物理區(qū)(Physical Extent)的大小為4.00 MiB。這是卷組中邏輯和物理卷的分配單位。
- Total PE:卷組中的總物理區(qū)數(shù)量為5119。
- Alloc PE / Size:已分配給邏輯卷的物理區(qū)數(shù)量為0,對應的大小為0。
- Free PE / Size:可用的物理區(qū)數(shù)量為5119,對應的大小為不到20.00 GiB。
- VG UUID:卷組的唯一標識符為iTpe74-MDzM-wERS-b5To-0PD7-tBwW-LMRufA。
五、加入卷組,創(chuàng)建邏輯卷(LV)
成功創(chuàng)建卷組后,需要把物理卷(PV)分配到卷組(VG)中,也就是創(chuàng)建邏輯卷(LV)使用以下命令:
lvcreate -L 4G -n my_home my_disk
這個命令的意思是在卷組
my_disk
中創(chuàng)建一個邏輯卷my_home
,大小為 4GB。以下是對該命令中的參數(shù)的解釋:
-L 4G
:使用-L
參數(shù)指定邏輯卷的大小,這里大小為 4GB。4G
表示使用GB
作為計量單位,也可以使用M
表示為MB
。my_home
:使用-n
參數(shù)指定邏輯卷的名稱。在這個例子中,邏輯卷的名稱是my_home
。my_disk
:指定要在其中創(chuàng)建邏輯卷的卷組的名稱。在這個例子中,卷組的名稱是my_disk
。當命令執(zhí)行成功后,將在卷組
my_disk
中創(chuàng)建一個名為my_home
的邏輯卷,并分配 4GB 的空間給它。
此時使用命令lvdisplay,來查看驗證邏輯卷是否創(chuàng)建成功
lvdisplay
根據(jù)輸出的信息顯示邏輯卷(LV),的重要信息它們分別是:
- LV Path:邏輯卷的路徑為
/dev/my_disk/my_home
。- LV Name:邏輯卷的名稱為
my_home
。- VG Name:邏輯卷所屬的卷組名稱為
my_disk
。- LV UUID:邏輯卷的唯一標識符為
5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM
。- LV Write Access:邏輯卷的讀寫權(quán)限為讀寫(read/write)。
- LV Creation host, time:邏輯卷的創(chuàng)建主機為
localhost.localdomain
,創(chuàng)建時間為2023-06-24 15:45:58 +0000
。- LV Status:邏輯卷的狀態(tài)為可用(available)。
- open:邏輯卷當前打開的文件描述符數(shù)量為0。
- LV Size:邏輯卷的大小為4.00 GiB。
- Current LE:邏輯卷當前的邏輯區(qū)(Logical Extent)數(shù)量為1024。
- Segments:邏輯卷的段數(shù)量為1。
- Allocation:邏輯卷的分配策略為繼承(inherit)。
- Read ahead sectors:邏輯卷當前的預讀扇區(qū)數(shù)為8192。
- Block device:邏輯卷的塊設(shè)備名稱為253:0。
根據(jù)輸出,邏輯卷
my_home
的狀態(tài)為可用,大小為4.00 GiB,在/dev/my_disk/my_home
路徑上可以訪問。
六、格式化邏輯卷
在做完以上一系列操作后,LVM分區(qū)已經(jīng)創(chuàng)建好,接下來就是對該分區(qū)進行格式化,使用mkfs.ext4賦予它文件系統(tǒng):
mkfs.ext4 /dev/my_disk/my_home
注意:
在LVM選擇文件系統(tǒng)的時候,最好選擇ext4文件系統(tǒng),在ext4文件系統(tǒng)下我們可以無損的對邏輯卷擴容或者縮容,
而XFS文件系統(tǒng),只能對邏輯卷進行無損擴容,并不能進行無損縮容,如果一定要縮容,就要重新格式化邏輯卷,這就導致存儲在邏輯卷中的數(shù)據(jù)丟失。
根據(jù)信息提示,現(xiàn)在已經(jīng)成功的創(chuàng)建了一個ext4的文件系統(tǒng),接下來就是最后一步,把它掛載到根目錄下就可以正常使用了
七、掛載與卸載
現(xiàn)在我們需要給剛剛新建的邏輯分區(qū)創(chuàng)建一個掛載點,也就是新建一個文件夾。
掛載是在操作系統(tǒng)層面上進行的,它創(chuàng)建了一個鏈接,使得文件系統(tǒng)中的數(shù)據(jù)可以通過指定的掛載點在操作系統(tǒng)中訪問。一旦文件系統(tǒng)被成功掛載,用戶可以在掛載點下訪問和操作文件。其實掛載就是一種鏈接,它是操作系統(tǒng)與存儲設(shè)備的接口,我們通過掛載點去訪問存儲設(shè)備。
mkdir /home/my_home
掛載又分為永久掛載和臨時掛載
永久掛載:
它是在系統(tǒng)啟動時自動將文件系統(tǒng)掛載到指定的掛載點,它需要再系統(tǒng)配置文件中添加相應的條目,在linux系統(tǒng)重,通常是編輯
/etc/fstab
文件來配置永久掛載。特點是重啟后不需要再進行重復掛載,既可使用。
臨時掛載:
- 它是手動執(zhí)行的掛載操作,需要手動去配置設(shè)備名稱、掛載點等操作選項,它適合于暫時需要訪問的文件系統(tǒng)例如:U盤、光驅(qū)等,重啟后自動消除,需要重新掛載。通過
mount
命令來實現(xiàn)掛載,通過umount
來卸載設(shè)備。
永久掛載設(shè)置
配置永久掛載,需要先用vim編輯\etc\fstab
文件
在此處添加需要掛載設(shè)備的相關(guān)信息:
該條目描述要掛載的文件系統(tǒng)。每個條目通常包含七個字段,以空格或制表符分隔。
<設(shè)備名稱> <掛載點> <文件系統(tǒng)類型> <掛載選項> <文件系統(tǒng)檢查選項> <備份間隔> <優(yōu)先級>
<設(shè)備名稱>
:要掛載的設(shè)備的名稱或設(shè)備ID。例如,/dev/my_disk/my_home
或UUID:5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM
。<掛載點>
:指定要將設(shè)備掛載到的目錄。例如,/mnt
。<文件系統(tǒng)類型>
:設(shè)備上的文件系統(tǒng)類型,例如ext4
。<掛載選項>
:選擇設(shè)備的掛載選項,如rw
(讀寫)或ro
(只讀)。<文件系統(tǒng)檢查選項>
:指定設(shè)備的文件系統(tǒng)檢查選項(如每次掛載時檢查、跳過檢查等)。<備份間隔>
:指定文件系統(tǒng)備份的間隔(如每日、每周等)。<優(yōu)先級>
:指定文件系統(tǒng)掛載的優(yōu)先級。
掛載名稱我們可以通過lvdisplay來查詢:
然后根據(jù)該信息進行文件的配置:
完成/etc/fstab
文件設(shè)置后,需要重啟系統(tǒng)或者使用命令mount -a
來重新加載,使得更改生效。
使用完畢以后我們使用 lsblk命令來查看LVM分區(qū)是否成功掛載:
從以上輸出的信息中發(fā)現(xiàn),我們的操作都已經(jīng)成功了 文件已經(jīng)成功的掛載在/home/my_home目錄下了。
臨時掛載配置
設(shè)置完永久掛載,我們再來試試如何進行臨時掛載?,F(xiàn)在需要把剛剛設(shè)置的永久掛載取消,在/etc/fstab
文件中刪除剛剛配置的條目。
現(xiàn)在已經(jīng)完全取消了。我們再來嘗試臨時掛載,使用以下命令:
mount /dev/my_disk/my_home /home/my_home
臨時掛載比永久掛載更簡單,只需要一條命令就搞定了,掛載學會了,我們來看看如何卸載,使用如下命令:
umount /home/my_home
一條命令搞定。簡單快捷
LVM的增刪改查
LVM的查
其實LVM的查,我們在創(chuàng)建LVM的過程已經(jīng)使用過的分別就是:pvdisplay、vgdisplay、lvdisplay 。它們分別可以查看物理卷、卷組、邏輯卷的相關(guān)信息.
除了以上命令,還可以使用vgs、lvs、df -h 來查看LVM的信息
同時還有三個命令可以用來掃描PV、VG、LV卷的狀態(tài)信息
pvscan
vgscan
lvscan
LVM的改
在日后的運行中,隨著內(nèi)容不斷增加,存儲空間也逐漸減少,這時候就可以為邏輯卷增加存儲空間了,因為LVM是動態(tài)分配存儲空間的技術(shù),我們可以隨時為該邏輯卷增加或減少空間,這種操作不限于是同一塊磁盤,也可以是其他磁盤,這也極大的方便我們隨時更改空間。更改空間可以使用以下命令去操作:
lvresize -L <邏輯卷的大小> /dev/<卷組名稱>/<邏輯卷名稱>#LVM增、縮空間,這條命令可以指定空間大小
lvextend -L <邏輯卷的大小> /dev/<卷組名稱>/<邏輯卷名稱>#LVM增空間
lvreduce -L <邏輯卷的大小> /dev/<卷組名稱>/<邏輯卷名稱>#LVM縮減空間
使用lvresize
命令后,使用lsblk顯示 空間已經(jīng)變成10G了,但是df -h命令卻還是顯示為4G,這是因為lvresize
命令只調(diào)整了邏輯卷的大小,并沒有直接調(diào)整文件系統(tǒng)內(nèi)部的大小。您需要相應地調(diào)整文件系統(tǒng)的大小,以使其能夠利用新的邏輯卷空間。
處理辦法也很簡單,使用下行命令即可恢復正常:
resize2fs -p /dev/<卷組名>/<邏輯卷名>
或者在擴容lvresize 命令后加上-p參數(shù)等價于resize2fs -p, 它會自動調(diào)整文件系統(tǒng)的大小。
第一個方法
第二個方法:
相比之下,第二種方法更為簡單實用。
LVM的刪
要刪除LVM邏輯卷,需要先卸載邏輯卷,然后使用才能以下命令來進行刪除操作:
umount /<邏輯卷掛載點>
lvremove /dev/<卷組名>/<邏輯卷名>
這樣就可以成功將邏輯卷刪除。
刪除物理卷、和卷組的命令和其類似它們分別為:
pvremove /dev/<設(shè)備名> # 刪除物理卷(PV)
vgremove /dev/<卷組名> # 刪除卷組(VG)
在刪除物理卷(PV)前,需要將分配到卷組(VG)中的容量先返回
使用命令:
vgreduce my_disk /dev/sdc
我們在查看vg卷中,空間是否已經(jīng)返還。
從以上信息中,我們可以發(fā)現(xiàn)空間已經(jīng)返還給物理卷,現(xiàn)在我們可以使用pvremove刪除物理卷
根據(jù)以上顯示的信息,我們可以確定已經(jīng)把sdc從LVM中刪除了,sdc又處于最原始的狀態(tài)。
LVM的增
為什么要把增放到最后講,因為在之前的操作中,我們已經(jīng)對LVM的增基本全部都操作了一遍,創(chuàng)建一個LVM需要有三個步驟
它們分別為:
-
創(chuàng)建物理卷(PV)
-
物理卷就相當于是我們的存儲池,它們可以是硬盤、分區(qū)或raid設(shè)備。
-
創(chuàng)建物理卷的命令為:
-
pvcreate /dev/<設(shè)備名>
-
-
創(chuàng)建卷組(VG)
-
卷組就是由一個或多個物理卷組成的邏輯容器,它們組成一個集合,用來管理和分配存儲池中的總體存儲容量,并提供邏輯劃分
-
創(chuàng)建卷組的命令為:
vgcreate <卷組名> /dev/<設(shè)備名>
-
-
創(chuàng)建邏輯卷(LV)
-
邏輯卷就是從卷組中分配出來的邏輯空間,它可以看做為物理卷和文件系統(tǒng)的中間層,邏輯卷它是用于實際存儲的邏輯分區(qū)
-
創(chuàng)建邏輯卷命令為:
-
lvcreate -L <空間大小> /dev/<卷組名>/<邏輯卷名>
-
LVM 新增硬盤如何擴充、縮減
思路
新添加的硬盤需要擴充到之前的邏輯卷中,需要把新硬盤線創(chuàng)建一個物理卷,然后加入邏輯卷相應的卷組當中,在使用邏輯卷改命令去擴充空間
一、新建物理卷
二、加入卷組
這一步命令有所不同,它的命令為:
vgextend my_disk /dev/sdc
三、給邏輯卷擴充空間
lvextend -L -r +10G /dev/my_disk/my_home
這樣我們就成功的為my_home用新的硬盤擴充到20G了
四、縮減邏輯卷空間
lvreduce -L -r -15G /dev/my_disk/my_home
這樣我們就成功的縮減了my_home邏輯卷15G的容量,現(xiàn)在它只有4.8G
LVM的快照功能
快照介紹
在 LVM 中,快照是邏輯卷的一種副本,用來記錄邏輯卷在創(chuàng)建快照時的數(shù)據(jù)狀態(tài)。它類似于文件系統(tǒng)的“影子”,通過記錄數(shù)據(jù)狀態(tài),可以在需要時恢復邏輯卷到快照所記錄的狀態(tài)。
與實際備份不同,快照只是邏輯卷的一個影子,無法防止硬件故障引起的數(shù)據(jù)丟失。而備份是對實際數(shù)據(jù)的完整拷貝,即使原始數(shù)據(jù)丟失,仍然可以通過備份進行數(shù)據(jù)恢復。
快照的恢復速度更快,因為它僅需要恢復邏輯卷的變化部分,而不是完整的數(shù)據(jù)。相對于備份需要恢復整個數(shù)據(jù)量,快照只需要恢復差異部分,因此速度更快。在一個大容量的邏輯卷中,快照的消耗通常比較輕量。
在生產(chǎn)環(huán)境中,通常會結(jié)合快照和備份來進行數(shù)據(jù)保護。先創(chuàng)建快照,然后進行備份,這樣就可以同時獲得快照的恢復速度和備份完整性的優(yōu)點??煺湛梢蕴峁┛焖俚幕謴停瑐浞輨t可以提供完整的數(shù)據(jù)保護。
總結(jié)來說,LVM 的快照功能類似于文件系統(tǒng)的“備份”,它記錄邏輯卷在創(chuàng)建快照時的數(shù)據(jù)狀態(tài),用于快速恢復數(shù)據(jù)。但快照只能恢復邏輯錯誤或操作失誤,并不能防止硬件故障造成的數(shù)據(jù)丟失。
LVM快照實操
一、創(chuàng)建快照邏輯卷
- 在這一步其實和創(chuàng)建邏輯卷的指令是差不多的 ,只是參數(shù)需要變?yōu)?s
- 快照的容量最少也要和原始邏輯卷的大小一致,可以保證原始卷所有的數(shù)據(jù)都能寫入到快照中。
lvcreate -L 10G --snapshort -name home_snapshot my_disk/my_home
my_home_snapshot是快照卷的名稱,而后門的/dev/my_disk/my_home 則是原始邏輯卷的路徑,表示創(chuàng)建這個快照是為它而服務。
在使用lvs查詢的時候,已經(jīng)創(chuàng)建成功了
創(chuàng)建的快照,不需要格式化也可以掛載在根目錄上,因為它只是源邏輯卷的元數(shù)據(jù)的副本,所以不需要重新分配空間??煺站韺⒂涗浽催壿嬀碓诳煺談?chuàng)建之前的數(shù)據(jù)狀態(tài),因此其文件系統(tǒng)和數(shù)據(jù)布局與源邏輯卷是相同的
原始邏輯卷文件內(nèi)容
快照邏輯卷文件內(nèi)容
快照就這樣創(chuàng)建成功了
二、快照的恢復使用
增刪改查操作
快照邏輯卷和普通的邏輯卷的增刪改查方式基本都一樣,可以參考以上LVM的增刪改查的命令去操作。
快照的使用
如果只是單文件需要恢復,可以直接去快照掛載的路徑去copy文件到原始文件系統(tǒng)當中,可以一般文件的copy方法一致。
如果原始文件系統(tǒng)出現(xiàn)邏輯錯誤,或者大量內(nèi)容被誤操作,我們可以通過lvconvert -merge命令來執(zhí)行合并快照操作。
lvconvert -merge <快照路徑>
我先模擬一下數(shù)據(jù)被誤刪的情況,在my_home中隨意刪除一些數(shù)據(jù)內(nèi)容,然后在去合并快照,看看是否能恢復文件
在合并前,需要把原始邏輯卷先卸載,是為了確保在合并過程中數(shù)據(jù)的一致性和完整性
umount /home/my_home
my_home原始邏輯卷已經(jīng)卸載
lvconvert -merge /dev/my_disk/home_snapshort
經(jīng)過操作后我們已經(jīng)把原始卷和快照邏輯卷合并了。在來掛載原始邏輯卷是否恢復
現(xiàn)已經(jīng)恢復了之前刪掉的數(shù)據(jù)。
快照在合并以后,之前的快照就會消失,留下來的就是一個完整原始邏輯卷,如果有需要可以在創(chuàng)建一個快照
LVM鏡像
簡介
鏡像(Mirroring)是一種提供數(shù)據(jù)冗余和容錯的機制,通過在多個物理存儲設(shè)備上創(chuàng)建邏輯卷的副本。鏡像創(chuàng)建了邏輯卷的實時拷貝,確保數(shù)據(jù)的高可用性和可靠性。當一個物理設(shè)備發(fā)生故障時,可以使用鏡像卷繼續(xù)訪問數(shù)據(jù)。鏡像卷的更新操作會同時更新鏡像的副本。
雖然鏡像和快照都涉及到邏輯卷的復制,但它們的目的和用途是不同的。鏡像旨在提供冗余和容錯,以保證數(shù)據(jù)的可用性和可靠性。而快照則是為了保護和備份數(shù)據(jù),并提供可以隨時回滾到歷史數(shù)據(jù)狀態(tài)的能力。
實操
創(chuàng)建一個帶鏡像的邏輯卷,必須是在創(chuàng)建邏輯卷之前就規(guī)劃好,如果是想在后期再添加邏輯卷基本是不可能的。
在使用LVM鏡像邏輯卷時,我們要先了解以下幾個概念
鏡像邏輯卷(Mirrored Logical Volume)使用了數(shù)據(jù)卷(Data Volume)來存儲實際的數(shù)據(jù)。
數(shù)據(jù)卷是 LVM 邏輯卷中實際用于存儲文件系統(tǒng)、用戶數(shù)據(jù)和其他數(shù)據(jù)的部分。當通過 LVM 創(chuàng)建一個邏輯卷時,數(shù)據(jù)卷將被創(chuàng)建并分配存儲空間,這些存儲空間用于存儲實際的數(shù)據(jù)。
而鏡像邏輯卷是為了提供鏡像和冗余功能而創(chuàng)建的。鏡像邏輯卷包含了一個原始邏輯卷和一個或多個鏡像卷(也稱為鏡像副本)。鏡像卷是一種特殊的數(shù)據(jù)卷,用于存儲與原始邏輯卷相同的數(shù)據(jù)副本。
當對鏡像邏輯卷進行寫操作時,數(shù)據(jù)將被同時寫入到原始邏輯卷和鏡像卷中。這樣,即使其中一個卷發(fā)生故障,數(shù)據(jù)仍然可從其他正常的卷中恢復和訪問,從而提供了數(shù)據(jù)的冗余性和可用性。
在 LVM 的鏡像邏輯卷中,數(shù)據(jù)卷指的是用于存儲實際數(shù)據(jù)的卷,它可以是原始邏輯卷或鏡像卷。數(shù)據(jù)卷在鏡像邏輯卷中承擔著存儲和保護數(shù)據(jù)的重要角色。
日志卷:
日志卷(log volume)是用于記錄邏輯卷(logical volume)上的數(shù)據(jù)變更操作的一種特殊卷。它用于提供數(shù)據(jù)的一致性和完整性,以及恢復邏輯卷數(shù)據(jù)狀態(tài)。
日志卷主要用于 LVM 的寫操作,當有寫操作發(fā)生時,相應的修改會首先被記錄在日志卷中。通過記錄日志操作,可以確保在意外故障發(fā)生時,可以恢復邏輯卷的數(shù)據(jù)狀態(tài),并保證數(shù)據(jù)的一致性。這種機制被稱為寫日志(write logging)。
日志卷的創(chuàng)建是可選的,不是必需的,它提供了額外的數(shù)據(jù)保護和可靠性。在創(chuàng)建邏輯卷時,可以選擇指定日志卷。如果沒有指定日志卷,寫操作將會在不使用日志的情況下直接將數(shù)據(jù)寫入邏輯卷中。
日志卷通常與邏輯卷位于同一卷組中,但也可以將日志卷和邏輯卷放置到不同的卷組中,以實現(xiàn)更靈活的配置。
在創(chuàng)建鏡像邏輯卷前,要保存物理卷(PV)在2個以上,這是為了提供數(shù)據(jù)冗余和容錯性,以確保數(shù)據(jù)的可用性和可靠性。因為數(shù)據(jù)卷和鏡像卷都要1個物理卷,最好是兩塊不同的硬盤,這樣才能最好保證數(shù)據(jù)的可靠性。
把之前的LVM各類卷全部remove掉,重新創(chuàng)建一個卷組(VG):
創(chuàng)建一個鏡像邏輯卷的命令為:
lvcreate -L <邏輯卷大小> -m<鏡像數(shù)列(冗余級別)> -n <鏡像名> <物理卷路徑1(數(shù)據(jù)卷和鏡像卷)><物理卷路徑2(數(shù)據(jù)卷和鏡像卷)><物理卷路徑3(日志卷)>
還是剛剛的LVM系統(tǒng),繼續(xù)創(chuàng)建一個鏡像來測試:
lvcreate -L 5G -m1 -n home_mirror my_disk /dev/sdb /dev/sdc /dev/sdd
現(xiàn)在已經(jīng)都已經(jīng)創(chuàng)建好了一個鏡像邏輯卷。
再來把這快鏡像邏輯卷格式化并掛載。
使用命令
mkfs.ext4 /dev/my_disk/mirror_home && mkdir -p /home/mirror_home && mount /dev/my_disk/mirror_home /home/mirror_home
已經(jīng)成功的格式化,并掛載到/home/mirror_home 掛載點下。
測試鏡像卷的恢復能力
創(chuàng)建測試
先復制一些文件內(nèi)容到我們的鏡像盤中
模擬破壞
使用命令:
dd if=/dev/zero of=/dev/sdb count=10 bs=1M
dd
是一個強大的命令行工具,可以用于復制文件、設(shè)備和數(shù)據(jù)流。在你給出的命令中,以下是各個選項的含義:會導致硬盤里的數(shù)據(jù)損壞。
if=/dev/zero
:指定輸入文件為/dev/zero
,該設(shè)備會產(chǎn)生無限個零字節(jié)。of=/dev/sdb:指定輸出文件為
/dev/sdb`,該設(shè)備將被填充為零字節(jié)。count=10
:設(shè)置要復制的塊數(shù)為 10。bs=1M
:設(shè)置每個塊的大小為 1MB。通過執(zhí)行這個命令,
dd
將從/dev/zero
中讀取 10 個 1MB 大小的塊,并將其寫入/dev/sdb
,從而在/dev/sdb
上創(chuàng)建一個大小為 10MB 的文件。
此時我們發(fā)現(xiàn)/dev/sdb 已經(jīng)處于unknown,表示設(shè)備未被正確識別或無法訪問。
因為我們做了鏡像卷,所以還是可以訪問該卷中的數(shù)據(jù),
現(xiàn)在我們把損壞的硬盤移除掉使用如下命令:
vgreduce --removemissing --force my_disk
--removemissing
:指定要移除缺失物理卷的操作。--force
:強制執(zhí)行操作,即使在某些情況下可能會導致數(shù)據(jù)丟失。當執(zhí)行這個命令時,LVM 會從卷組
vg_test
中移除任何標記為缺失的物理卷。缺失的物理卷指的是在卷組中定義了但當前無法訪問的物理卷。這可能是由于物理卷故障、設(shè)備不可用或其他原因?qū)е碌摹?/p>移除缺失的物理卷的目的是確保卷組的正常運行,并使其僅依賴于可用的物理卷。然而,需要謹慎操作并確認執(zhí)行此操作不會導致數(shù)據(jù)丟失。因為
--force
選項會強制執(zhí)行操作,即使存在數(shù)據(jù)丟失的風險。
現(xiàn)在已經(jīng)把數(shù)據(jù)損壞的硬盤移除掉了,
恢復鏡像
把剛移除的硬盤從新加入到物理卷、卷組中。
接在來我們進行鏡像盤恢復:
使用命令
lvconvert --repair /dev/my_disk/mirror_home
這樣我們就完成鏡像的恢復。
總結(jié)
LVM是一款強大的磁盤管理工具,它無視了磁盤在硬件上的區(qū)分,能夠完美的解決掛載空間大小擴充、縮減的需求,操作簡單方便,并且提供了更高級別的存儲管理,如卷組和邏輯卷的概念。卷組是物理卷的集合,而邏輯卷則是從卷組中劃分出的邏輯存儲單元。這種層次結(jié)構(gòu)使得存儲的管理更加靈活和可控。使用LVM,您可以隨時根據(jù)需求擴展或縮減邏輯卷的大小,而無需對文件系統(tǒng)進行復雜的重新分區(qū)或復制數(shù)據(jù)的操作。這使得存儲空間的管理變得更加簡單和高效。文章來源:http://www.zghlxwxcb.cn/news/detail-758963.html
總之,LVM是一個功能強大且易于使用的磁盤管理工具,能夠提供靈活的存儲管理,動態(tài)調(diào)整存儲大小,數(shù)據(jù)遷移能力以及快照和備份功能。因此,它在服務器和虛擬化環(huán)境中被廣泛應用,為用戶帶來便捷和高效的存儲管理體驗。文章來源地址http://www.zghlxwxcb.cn/news/detail-758963.html
到了這里,關(guān)于Linux 磁盤管理(LVM管理:格式化、掛載、擴容)《二》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!