Lvm邏輯卷管理、建立、使用、擴充套件、縮減、遷移、快照、恢復
lvm是一種基於邏輯的磁碟管理機制,將多個硬碟或者硬碟分割槽標記為獨立的物理卷,並將這些物理捲進行分組為媒體庫不同的卷組,最終從卷組中取出一定的空間建立一個邏輯卷。它通過特定演算法機制將不連續的磁碟空間變得連媒體庫續且容量巨大,讓儲存容量管理可以自由擴充套件與縮減,極大限度的提升了硬碟空間的使用率。
lvm邏輯卷的突出優勢是方便擴充套件空間、擴充套件某一個掛載的空間,如果用分割槽的方式,對根的擴充套件是非常麻煩的,磁碟滿了,我們是無法擴充套件的,即使還有空間,那也是不能動的。分割槽一旦確定,就不可以修改。邏輯卷就是為了解決這個困擾二誕生的。
Physical Volume(物理卷)的建立
邏輯卷支援將完整磁碟或者磁碟分割槽建立為物理卷,為了同時展示磁碟與分割槽兩種使用情景。自然使用如下圖的sdb1分割槽、sdc硬碟作為演示。
硬碟分割槽我們需要預先處理一下,我們按照常規操作建立好硬碟分割槽後,還需要將硬碟分割槽系統id修改為8e。
Hex code (type L to list codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x33720a7a
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 8e Linux LVM
自然使用pvcreate命令把/dev/sdb1 和/dev/sdc建立為Physical Volume(物理卷),並使用pvs和pvdisplay檢視當前物理卷與物理卷詳細資訊
Volume Group(卷組)的建立
通過pvdisplay命令我們檢視到了物理卷的相關資訊,可以看見VG Name一欄為空,這表示當前物理卷沒有加入任何卷組。
自然使用vgcreate命令建立一個名為vg0的卷組,並將/dev/sdb1 和/dev/sdc加入到vg0這個卷組當中,並檢視卷組vg0的相關資訊。
我們可以看到vg0的大小VG Size:30GiB=sdb1(10G)+sdc(20GB),說明兩個物理卷已經成功加入到了卷組vg0。
Magical Volume(邏輯卷)的建立
我們已經將分割槽sdb1和硬碟sdc建立為物理卷併成功將他們加入了卷組vg0當中,這是他們已經組成了一個相對巨大且連續的”大硬碟”。那麼我們接下來就是使用他們,現在我們來常見邏輯卷,你可以簡單地將之理解為”給這個大硬碟分割槽”。
這裡自然使用lvcreate命令,在卷組vg0中建立了一個名為lv_mysql,大小為5G的邏輯卷,並使用pvdisplay命令檢視這個邏輯卷的相關資訊。
Magical Volume(邏輯卷)的使用
通過lsblk命令我們可以看見,已經建立了一個別名為vg0-lv_mysql(dm-0)的邏輯卷分割槽,我們要如何使用它呢?既然他現在是一個分割槽,那麼我們按照平時建立分割槽的思路(分割槽、格式化檔案系統、掛載)操作即可。
使用mkfs.ext4命令將/dev/vg0/lv_mysql格式化ext4格式的檔案系統
自然將/dev/vg0/lv_mysql掛載到/mysql這個資料夾上面,並使用df命令進行檢視。通過途中可以看見/dev/vg0/lv_mysql被以ext4的格式掛載到了/mysql下面。
Magical Volume(邏輯卷)的擴充套件
我們只分配了5G的容量給lv_mysql這個邏輯卷。如果是傳統分割槽方式,我們只能是暫停服務後把資料轉移到一個容量更大的硬碟分割槽當中,再重啟服務。
lvm邏輯卷的方式可以讓我們在不暫停服務的情況下動態擴充套件分割槽的大小。通過vgdisplay命令列印的資訊,我們可以看到卷重vg0已經分配了5G的容量,還有25GB的閒置容量。
自然使用lvextend命令為lv_mysql增加了10GB空間,從圖中可以看出lv_mysql的容量從5.00GiB改變為15.00GiB。我們對lvm分割槽lv_mysql的空間的擴充套件那操作已經完成。我們還需要對檔案系統進行擴充套件,我們的檔案系統為etx4格式,所以我們使用resize2fs命令對lv_mysql的檔案系統進行動態擴充套件。
利用df命令,我們可以看見/mysql的容量已經成功擴充套件到了15GB。
Magical Volume(邏輯卷)的縮減
利用lvm邏輯卷的機制,我們可以對容量進行擴充套件,相對的我們也可以對容量進行縮減。我們先利用mount命令將/mysql進行解除安裝,並檢視邏輯卷lv_mysql的最新資訊。
使用e2fsck命令檢查檔案系統完整性,再使用resize2fs命令把邏輯卷lv_mysql的檔案系統壓縮至10GB。
對檔案系統進行壓縮一定要慎重,這個操作可能會造成檔案的丟失。舉例:已經存在30GB的資料,你要將檔案系統壓縮至10GB,那麼必然會造成資料的丟失
檔案系統壓縮完成後,我們使用lvreduce命令對lv_mysql分割槽進行壓縮,執行過程中會給你一個警告,問你是否確定縮減分割槽大小。
縮減完成後,使用mount命令把lv_mysql掛載會/mysql目錄。然後使用df命令再次檢視掛載狀態。如圖所示,我們已經將名為lv_mysql的lvm邏輯卷從15GB縮減至10GB的容量。
Magical Volume(邏輯卷)的遷移
通過pvdisplay命令我們發現卷組中,sdc這塊硬碟並沒有被使用。本著能少乾貨就少乾貨的原則,我們只需要遷移sdb這一塊硬碟就足夠了,那我們首先需要把sdc這塊硬碟移出卷組。
PS:如果都使用了,那你還是老實的全部遷移吧!!!
我們使用vgreduce把硬碟sdc移出vg0這個卷組,並使用pvdisplay再次檢視物理卷的資訊,可以看見sdc已經不屬於vg0這個卷組了。
使用umount命令將檔案系統進行解除安裝。為了保障當前伺服器上的lv和vg和目標伺服器的lv和vg重名,我們需要將當前vg或目標伺服器vg進行重新命名。這裡我們將當前vg重新命名為newvg0。
為了保證我們在遷移的過程中,其他使用者沒有在使用,保證資料安全。我們還需要使用vgchange命令把卷組設定為不可用狀態,通過lvdisplay命令可以看見LV狀態已經變成了NOT available。
下面我們將邏輯卷設定為匯出狀態,使用vgexport命令把newvgo設定為匯出狀態,並用vgdisplay命令再次確認當前卷組狀態。
下面我們就可以拆卸硬碟了,前部不要拆錯了。我們將sdb這塊硬碟安裝到目標伺服器上。
到了新伺服器,我們可以看見原來伺服器上的sdb硬碟,在這裡是sdf硬碟。
通過vgscan掃描當前系統中lvm卷組,使用vgchange命令將卷組newvg0下的邏輯卷設定為啟用狀態。
使用lvdisplay命令,可以看見我們從原伺服器上遷移過來的邏輯卷newvg0的狀態已經為啟用狀態
最後,就是掛載檔案系統。至此,lvm邏輯卷的遷移就完成了。
LVM邏輯卷快照
lvm快照的原理是將當前檔案系統的檔案時間戳進行記錄,當檔案發生改變時,將舊版本的檔案推送到快照中。快照回滾時,只是將快照與當前邏輯捲進行合併,完成合並後刪除快照。
Lvm快照只是記錄當前時間檔案的變化,並不會進行完整的檔案備份,所以它的速度非常的快;快照只保留製作快照的時間,最原始的檔案版本
快照是儲存在當前卷組之中,所以要確保當然卷組擁有足夠的空間。
快照的大小,永遠小於等於快照時間時邏輯卷的大小,所以不需要分配太多的空間。
使用lvcreate命令為lv_mysql建立一個大小為1G名為lv_mysql_snap的快照。
通過lvdisplay命令可以看到快照lv_mysql_snap的相關資訊,從快照狀態一欄可以看到lv_mysql_snap的快照目標是lv_mysql。
現在我們對lv_mysql下的檔案檔案進行一些修改,下面兩張圖片時內容修改前後的對比。
LVM快照的恢復
在上面的內容中,我們已經完成了快照的製作。並且對檔案進行了一定修改,那麼下面我們利用快照對檔案進行恢復操作。
恢復記得對掛載關係進行取消。取消掛載後使用lvconvert命令對快照進行恢復,最後檢查檔案已經被恢復到了快照的時間點上。
快照恢復後它的使命就已經結束了,它會自動將自己刪除。
總結
centos預設的安裝方式就是採用lvm邏輯卷的機制劃分硬碟,這將有利於我們以後擴充套件根目錄的容量。以上操作前記得備份你的資料,對於資料的操作都要萬分小心。尤其是卷的縮減和檔案系統的縮減需要更加細心。可能你的一個Enter鍵,讓你哭到不行。
轉載導致有些教程圖片無法載入成功如有需要請檢視原文。
相關文章
- 邏輯卷管理實驗---縮減/home目錄使用空間並建立新的LVMLVM
- 擴充套件邏輯卷空間套件
- Linux擴充套件邏輯卷Linux套件
- lvm管理之pv遷移與lv擴充套件LVM套件
- centos7.2 LVM擴充套件某個掛載邏輯卷CentOSLVM套件
- etcd管理,證書配置,擴充套件,遷移恢復,帶證書擴充套件節點套件
- LVM 邏輯卷管理LVM
- 邏輯卷管理-LVMLVM
- linux系統掛載邏輯卷和擴充套件邏輯卷組Linux套件
- LVM_邏輯卷管理LVM
- lvm 擴充邏輯卷空間(linux的磁碟擴容)LVMLinux
- lvm收縮邏輯卷空間LVM
- 在 LVM中 錄製邏輯卷快照並恢復(第三部分)LVM
- Linux下使用LVM管理(擴充套件/縮小/刪除)LinuxLVM套件
- 在LVM中恢復已刪除的邏輯卷LVM
- LVM邏輯卷管理器LVM
- 邏輯卷管理---LVM2LVM
- 給linux新增磁碟並擴充套件邏輯卷Linux套件
- 使用LVM擴充Linux邏輯卷大小LVMLinux
- 邏輯卷LVMLVM
- Linux下LVM邏輯卷管理LinuxLVM
- 如何在 Ubuntu 中管理和使用邏輯卷管理 LVMUbuntuLVM
- 在Linux中,如何使用LVM管理邏輯卷?LinuxLVM
- 使用 LVM 命令建立卷組和邏輯卷例項LVM
- Centos8中遷移邏輯卷CentOS
- Linux LVM邏輯卷LinuxLVM
- Linux—磁碟配額,管理LVM邏輯卷LinuxLVM
- 邏輯卷管理-LVM(LOGIC VOLUMN MANAGER)LVM
- Linux邏輯盤卷管理LVM詳解LinuxLVM
- Centos8中建立LVM精簡邏輯卷CentOSLVM
- LVM邏輯卷線上動態擴容磁碟空間LVM
- Linux LVM檔案系統管理的建立和擴充套件LinuxLVM套件
- linux之LVM邏輯卷LinuxLVM
- linux LVM邏輯卷配置LinuxLVM
- Linux作業系統邏輯盤卷管理LVM建立步驟(轉)Linux作業系統LVM
- Linux-使用者管理與建立邏輯卷Linux
- Linux LVM邏輯卷配置過程詳解(建立,增加,減少,刪除,解除安裝)LinuxLVM
- LVM(logical volume manager) 邏輯卷管理器LVM