LVM的工作原理
- LVM( Logical Volume Manager)邏輯卷管理,是在磁碟分割槽和檔案系統之間新增的一個邏輯層,來為檔案系統遮蔽下層磁碟分割槽佈局,提供一個抽象的盤卷,在盤捲上建立檔案系統。管理員利用LVM可以在磁碟不用重新分割槽的情況下動態調整檔案系統的大小,並且利用LVM管理的檔案系統可以跨越磁碟,當伺服器新增了新的磁碟後,管理員不必將原有的檔案移動到新的磁碟上,而是通過LVM可以直接擴充套件檔案系統跨越磁碟。
- 它就是通過將底層的物理硬碟封裝起來,然後以邏輯卷的方式呈現給上層應用。在LVM中,其通過對底層的硬碟進行封裝,當我們對底層的物理硬碟進行操作時,其不再是針對於分割槽進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁碟管理操作。
LVM常用的術語
- 物理儲存介質(The physical media):LVM儲存介質可以是磁碟分割槽,整個磁碟,RAID陣列或SAN磁碟,裝置必須初始化為LVM物理卷,才能與LVM結合使用
- 物理卷PV(physical volume) :物理卷就是LVM的基本儲存邏輯塊,但和基本的物理儲存介質(如分割槽、磁碟等)比較,卻包含有與LVM相關的管理引數,建立物理卷它可以用硬碟分割槽,也可以用硬碟本身;
- 卷組VG(Volume Group) :一個LVM卷組由一個或多個物理卷組成
- 邏輯卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立檔案系統
- PE(physical extents) :PV物理卷中可以分配的最小儲存單元,PE的大小是可以指定的,預設為4MB
- LE(logical extent) : LV邏輯卷中可以分配的最小儲存單元,在同一個卷組中,LE的大小和PE是相同的,並且一一對應
最小儲存單位總結:
- 名稱 最小儲存單位 示例
- 硬碟 扇區(512位元組)
- 檔案系統 block(1K或4K ) # mkfs.ext4 -b 2048 /dev/sdb1 ,最大支援到4096
- raid chunk (512K) #mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x 1 /dev/sde{1,2,3,5}
- LVM PE (4M) # vgcreate -s 4M vg1 /dev/sdb{1,2}
LVM主要元素構成:
LVM優點
- 使用卷組,使多個硬碟空間看起來像是一個大的硬碟
- 使用邏輯卷,可以跨多個硬碟空間的分割槽 sdb1 sdb2 sdc1 sdd2 sdf
- 在使用邏輯卷時,它可以在空間不足時動態調整它的大小
- 在調整邏輯卷大小時,不需要考慮邏輯卷在硬碟上的位置,不用擔心沒有可用的連續空間
- 可以線上對LV,VG 進行建立,刪除,調整大小等操作。LVM上的檔案系統也需要重新調整大小。
- 允許建立快照,可以用來儲存檔案系統的備份。
RAID+LVM一起用:LVM是軟體的卷管理方式,而RAID是磁碟管理的方法。對於重要的資料,使用RAID用來保護物理的磁碟不會因為故障而中斷業務,再用LVM用來實現對卷的良性的管理,更好的利用磁碟資源。
建立LVM的基本步驟:
- (1) 物理磁碟被格式化為PV,(空間被劃分為一個個的PE) #PV包含PE
- (2) 不同的PV加入到同一個VG中,(不同PV的PE全部進入到了VG的PE池內) #VG包含PV
- (3) 在VG中建立LV邏輯卷,基於PE建立,(組成LV的PE可能來自不同的物理磁碟) #LV基於PE建立
- (4) LV直接可以格式化後掛載使用 #格式化掛載使用
- (5) LV的擴充縮減實際上就是增加或減少組成該LV的PE數量,其過程不會丟失原始資料
lvm常用的命令
下面的操作會用的一些檢視命令:
準備環境
[root@wencheng ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
[root@wencheng ~]# rpm -qa | grep lvm lvm2-libs-2.02.187-6.el7_9.4.x86_64 lvm2-2.02.187-6.el7_9.4.x86_64
建立並使用LVM邏輯卷
VMware Workstation新增硬碟
- 在"我的計算機"中選擇該主機--右鍵--設定--新增--硬碟--下一步--下一步--下一步--完成 新增硬碟步驟。
- 命令:echo "- - -" > /sys/class/scsi_host/host0/scan
- 1.新增添磁碟,還不能直接顯示出來,要想出現要對磁碟進行掃描(實際生產環境中不需要,都是熱插拔技術):
- 2.假如 fdisk -l 還是未發現新硬碟,則將上面命令中的host0,替換為host1,host2,....看看;
- 3.我們再檢視系統日誌/var/log/messages,發現對SCSI裝置進行了一次重新掃描,用fdisk -l也看到了新增加的磁碟了。
檢視新增的硬碟。
建立分割槽並設定LVM(8e)型別。
[root@wencheng ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x81cc782c. Command (m for help): n //新建 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p //p為主分割槽,e為擴充套件分割槽 Partition number (1-4, default 1): 1 //分割槽號,回車(預設) First sector (2048-20971519, default 2048): //回車(預設) Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): //回車(預設) Using default value 20971519 Partition 1 of type Linux and of size 10 GiB is set Command (m for help): p //顯示資訊 Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x81cc782c Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 83 Linux Command (m for help): l //列出所有型別 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Command (m for help): t //修改型別 Selected partition 1 Hex code (type L to list all codes): 8e //改為LVM型別 Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): p //顯示資訊 Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x81cc782c Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 8e Linux LVM //型別修改成功 Command (m for help): w //儲存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
注: 其他新增硬碟分割槽類似,不再贅述,如下檢視最後分割槽結果。
[root@wencheng ~]# ls -l /dev/sd*1
brw-rw----. 1 root disk 8, 1 Mar 25 10:54 /dev/sda1 //系統分割槽
brw-rw----. 1 root disk 8, 17 Apr 19 16:48 /dev/sdb1
brw-rw----. 1 root disk 8, 33 Apr 19 16:53 /dev/sdc1
brw-rw----. 1 root disk 8, 49 Apr 19 16:53 /dev/sdd1
brw-rw----. 1 root disk 8, 65 Apr 19 16:53 /dev/sde1
[root@wencheng ~]#
[root@localhost ~]# fdisk -l | grep -e "/dev/sd[b-e]1"
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
/dev/sdd1 2048 41943039 20970496 8e Linux LVM
/dev/sde1 2048 20971519 10484736 83 Linux //備用磁碟
建立pv,並檢視結果。
[root@wencheng ~]# pvcreate /dev/sd[b,c,d]1 Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdc1" successfully created. Physical volume "/dev/sdd1" successfully created. [root@wencheng ~]# [root@wencheng ~]# pvdisplay /dev/sd[b,c,d]1 "/dev/sdb1" is a new physical volume of "<10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size <20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID kZxjyM-Ora3-io5L-J14w-ljlM-TArl-gYQhqm "/dev/sdd1" is a new physical volume of "<10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size <20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID NN1HSf-JQAA-PiMm-MEmm-WocM-9QrD-zcStUf "/dev/sdc1" is a new physical volume of "<10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size <20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID I92jzU-WN1f-zcrW-Mzm7-HuoZ-3hBP-BjJFkG
建立名為'vg01'的卷組,使用/dev/sdb1, /dev/sdc1和/dev/sdb1建立,並檢視結果。
[root@wencheng ~]# vgcreate vg01 /dev/sd[b,c,d]1 //指定PE大小用的引數:-s 16M, 如果儲存的資料都是大檔案,那麼PE儘量調大,讀取速度快 Volume group "vg01" successfully created [root@wencheng ~]# [root@localhost ~]# vgdisplay --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size <59.99 GiB ///dev/sd[b,c]1硬碟總和容量 PE Size 4.00 MiB //預設4MB Total PE 15357 Alloc PE / Size 0 / 0 Free PE / Size 15357 / <59.99 GiB VG UUID 0HRkjd-8ccf-Alpe-vhfJ-eOLi-vtnX-0Vl7sR
建立一個名為'lv01'、大小為30G的邏輯卷。
[root@wencheng ~]# lvcreate -n lv01 -L 30G vg01 //-L指定lv大小的SIZE(M,G) (-l:小l 指定LE的數量) Logical volume "lv01" created. [root@wencheng ~]# [root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/vg01/lv01 LV Name lv01 VG Name vg01 LV UUID Iwvoxi-Ekrb-8nQ7-QfDt-1jIx-FiXy-srYbbZ LV Write Access read/write LV Creation host, time localhost.localdomain, 2021-04-20 11:17:57 +0800 LV Status available # open 0 LV Size 30.00 GiB Current LE 4 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0
建立檔案系統,並掛載。
[root@wencheng ~]# mkdir /mnt/lv01 [root@wencheng ~]# ls -l /dev/vg01/ total 0 lrwxrwxrwx. 1 root root 7 Apr 20 11:17 lv01 -> ../dm-0 [root@localhost ~]# mkfs.xfs /dev/vg01/lv01 meta-data=/dev/vg01/lv01 isize=512 agcount=1, agsize=4096 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=4096, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@wencheng ~]# mount /dev/vg01/lv01 /mnt/lv01/ [root@wencheng ~]# echo "/dev/vg01/lv01 /mnt/lv01 xfs defaults 0 0" >> /etc/fstab //新增開機自動掛載 [root@wencheng ~]# df -Th /mnt/lv01/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 31G 61M 30G 1% /mnt/lv01
動態調整邏輯卷大小的功能是LVM最有用的功能。
擴充套件LV首先,確定一下是否有可用的擴容空間,因為空間是從VG裡面建立的,並且LV不能跨VG擴容。
- 1.如果VG無剩餘空間,則新增新硬碟,這裡不再贅述(新增硬碟,分割槽LVM),再如下操作。
[root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 3 1 0 wz--n- <30.99g 1012.00m [root@wencheng ~]# pvcreate /dev/sde1 Physical volume "/dev/sde1" successfully created. [[root@wencheng ~]# vgextend vg01 /dev/sde1 //新增硬碟/dev/sde1為10G Volume group "vg01" successfully extended [root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 4 1 0 wz--n- 30.99g 10.98g
- 2.如果VG有預留空間,則如下操作。
[root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 3 1 0 wz--n- <59.99g 29.97g //空閒約29G
擴容邏輯卷,用的如下命令。
[root@wencheng ~]# lvextend -L 59G /dev/vg01/lv01 Size of logical volume vg01/lv01 changed from <30.02 GiB (7684 extents) to 59.00 GiB (15104 extents). Logical volume vg01/lv01 successfully resized. [root@wencheng ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- 59.00g //LV已擴容成功 [root@wencheng ~]# lvdisplay --- Logical volume --- LV Path /dev/vg01/lv01 LV Name lv01 VG Name vg01 LV UUID Iwvoxi-Ekrb-8nQ7-QfDt-1jIx-FiXy-srYbbZ LV Write Access read/write LV Creation host, time localhost.localdomain, 2021-04-20 11:17:57 +0800 LV Status available # open 1 LV Size 59.00 GiB Current LE 15104 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 說明: 在指定大小的時候,擴容30m和擴容到30m是不一樣的寫法 擴容59G ====> -L +59G 擴容到59G =====> -L 59G [root@wencheng ~]# df -Th /mnt/lv01/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 31G 61M 30G 1% /mnt/lv01 //但仍然看不到擴充套件的容量 注:可以看到LV雖然擴充套件了,但是檔案系統大小還是原來的,下面開始擴容檔案系統 ext4檔案系統擴容使用命令語法: resize2fs 邏輯卷名稱 xfs檔案系統擴容使用命令語法: xfs_growfs 掛載點 resize2fs和xfs_growfs 兩者的區別是傳遞的引數不一樣的,xfs_growfs是採用的掛載點;resize2fs是邏輯卷名稱,而且resize2fs命令不能對xfs型別檔案系統使用。 [root@wencheng ~]# xfs_growfs /mnt/lv01/ meta-data=/dev/mapper/vg01-lv01 isize=512 agcount=1921, agsize=4096 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=7868416, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7868416 to 15466496 [root@wencheng ~]# [root@wencheng ~]# df -Th /mnt/lv01/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 59G 119M 59G 1% /mnt/lv01 //擴充套件完成
注:先擴lv邏輯卷,再擴檔案系統。 掌握另一方法:使用lvextend命令鍾加引數-r,它是支援多種不同的檔案系統,比如ext3,ext4,xfs,… [root@wencheng ~]# lvextend -L 59G -r /dev/vg01/lv01 #直接擴容到59G空間,一步到位,不用再擴檔案系統了
縮減LVM卷,注意事項
- 減少邏輯卷的大小值若小於儲存的資料大小,儲存在後面的資料會丟失,縮減 LVM 之前,建議先做一個備份。
- 在 GFS2 或者 XFS 檔案系統上不支援線上縮小;btrfs檔案系統支援線上縮小。
萬不得已需要縮減xfs檔案系統的lvm分割槽空間時候,一定要注意順序。
- 第一步,確認現有環境,並目標資料備份;以/mnt/lv01為例。
[root@wencheng ~]# ls -l /mnt/lv01* /mnt/lv01: total 1060 -rw-r--r--. 1 root root 16 Apr 21 10:44 adjtime -rw-r--r--. 1 root root 1518 Apr 21 10:44 aliases -rw-r--r--. 1 root root 12288 Apr 21 10:44 aliases.db -rw-------. 1 root root 541 Apr 21 10:44 anacrontab -rw-r--r--. 1 root root 55 Apr 21 10:44 asound.conf -rw-r--r--. 1 root root 2853 Apr 21 10:44 bashrc -rw-r--r--. 1 root root 38 Apr 21 10:44 centos-release [root@wencheng ~]# df -Th /mnt/lv01 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 50G 170M 50G 1% /mnt/lv01 [root@wencheng ~]# rpm -qa | grep xfsdump xfsdump-3.1.7-1.el7.x86_64 [root@wencheng ~]# xfsdump -f /mnt/lv01.xfsdump /mnt/lv01 //xfsdump -f "dump檔案存放的絕對路徑加檔名" "需要縮減容量的目錄" xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control ============================= dump label dialog ============================== please enter label for this dump session (timeout in 300 sec) -> lv01 session label entered: "lv01" --------------------------------- end dialog --------------------------------- xfsdump: level 0 dump of wencheng:/mnt/lv01 xfsdump: dump date: Wed Apr 21 10:59:05 2021 xfsdump: session id: 619c7222-752a-44af-8b7f-411d33fbef15 xfsdump: session label: "lv01" xfsdump: ino map phase 1: constructing initial dump list xfsdump: ino map phase 2: skipping (no pruning necessary) xfsdump: ino map phase 3: skipping (only one dump stream) xfsdump: ino map construction complete xfsdump: estimated dump size: 143172224 bytes xfsdump: /var/lib/xfsdump/inventory created ============================= media label dialog ============================= please enter label for media in drive 0 (timeout in 300 sec) -> lv01 media label entered: "lv01" --------------------------------- end dialog --------------------------------- xfsdump: creating dump session media file 0 (media 0, file 0) xfsdump: dumping ino map xfsdump: dumping directories xfsdump: dumping non-directory files xfsdump: ending media file xfsdump: media file size 140934528 bytes xfsdump: dump size (non-dir files) : 139858712 bytes xfsdump: dump complete: 32 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /mnt/lv01.xfsdump OK (success) xfsdump: Dump Status: SUCCESS [root@wencheng ~]# ls -l /mnt/lv01* -rw-r--r--. 1 root root 140934528 Apr 21 10:59 /mnt/lv01.xfsdump //生成備份 /mnt/lv01: total 1060 -rw-r--r--. 1 root root 16 Apr 21 10:44 adjtime -rw-r--r--. 1 root root 1518 Apr 21 10:44 aliases -rw-r--r--. 1 root root 12288 Apr 21 10:44 aliases.db -rw-------. 1 root root 541 Apr 21 10:44 anacrontab -rw-r--r--. 1 root root 55 Apr 21 10:44 asound.conf -rw-r--r--. 1 root root 2853 Apr 21 10:44 bashrc -rw-r--r--. 1 root root 38 Apr 21 10:44 centos-release
- 第二步,解除安裝掛載的目錄。
[root@wencheng ~]# umount /mnt/lv01/
- 第三步,把你原來的邏輯卷變成5G是擴大還是縮小它自己會判斷,並格式化以更新到最新大小。
[root@wencheng ~]# lvreduce -L 5G /dev/vg01/lv01 WARNING: Reducing active logical volume to 5.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg01/lv01? [y/n]: y Size of logical volume vg01/lv01 changed from 50.00 GiB (12800 extents) to 5.00 GiB (1280 extents). Logical volume vg01/lv01 successfully resized. [root@wencheng ~]# mkfs.xfs -f /dev/vg01/lv01 //格式化以更新到最新大小(清除所有資料) meta-data=/dev/vg01/lv01 isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@wencheng ~]# lvs //lv縮小成功 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-a----- 5.00g [root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 4 1 0 wz--n- 69.98g 64.98g
- 第四步,掛載出來空分割槽 。
[root@wencheng ~]# mount /dev/vg01/lv01 /mnt/lv01 [root@wencheng ~]# df -Th /mnt/lv01 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 5.0G 33M 5.0G 1% /mnt/lv01 [root@wencheng ~]# ls -l /mnt/lv01 total 0
- 第五步,把dump的資料恢復。
[root@wencheng ~]# xfsrestore -f /mnt/lv01.xfsdump /mnt/lv01 xfsrestore: using file dump (drive_simple) strategy xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control xfsrestore: searching media for dump xfsrestore: examining media file 0 xfsrestore: dump description: xfsrestore: hostname: wencheng xfsrestore: mount point: /mnt/lv01 xfsrestore: volume: /dev/mapper/vg01-lv01 xfsrestore: session time: Wed Apr 21 10:59:05 2021 xfsrestore: level: 0 xfsrestore: session label: "lv01" xfsrestore: media label: "lv01" xfsrestore: file system id: ded6656d-b154-4c48-bda8-2935c5fa8dd8 xfsrestore: session id: 619c7222-752a-44af-8b7f-411d33fbef15 xfsrestore: media id: e4f6c078-14b3-43c3-9ff7-5c847977ca32 xfsrestore: using online session inventory xfsrestore: searching media for directory dump xfsrestore: reading directories xfsrestore: 533 directories and 3574 entries processed xfsrestore: directory post-processing xfsrestore: restoring non-directory files xfsrestore: restore complete: 0 seconds elapsed xfsrestore: Restore Summary: xfsrestore: stream 0 /mnt/lv01.xfsdump OK (success) xfsrestore: Restore Status: SUCCESS [root@wencheng ~]# [root@wencheng ~]# ls -l /mnt/lv01 //檢視資料是否恢復完成 total 1060 -rw-r--r--. 1 root root 16 Apr 21 10:44 adjtime -rw-r--r--. 1 root root 1518 Apr 21 10:44 aliases -rw-r--r--. 1 root root 12288 Apr 21 10:44 aliases.db -rw-------. 1 root root 541 Apr 21 10:44 anacrontab -rw-r--r--. 1 root root 55 Apr 21 10:44 asound.conf -rw-r--r--. 1 root root 2853 Apr 21 10:44 bashrc -rw-r--r--. 1 root root 38 Apr 21 10:44 centos-release
LVM刪除操作
建立LVM流程:pvcreate建立pv -> vgcreate建立卷組 -> lvcreate建立邏輯卷 -> mkfs.xfs lv 格式化-> mount掛載
刪除LVM流程:umount解除安裝 -> lvremove lv移出卷組中所有邏輯卷-> vgremove vg移出卷組-> pvremove 移出pv
- 檢視現有lvm狀態。
[root@wencheng ~]# df -Th /mnt/lv01 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 xfs 5.0G 170M 4.9G 4% /mnt/lv01 [root@wencheng ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- 5.00g [root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 4 1 0 wz--n- 69.98g 64.98g [root@wencheng ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- <20.00g <15.00g /dev/sdc1 vg01 lvm2 a-- <20.00g <20.00g /dev/sdd1 vg01 lvm2 a-- <20.00g <20.00g /dev/sde1 vg01 lvm2 a-- <10.00g <10.00g
- 解除安裝lvm掛載目錄。
[root@wencheng ~]# umount /mnt/lv01 [root@wencheng ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 30G 1.2G 29G 4% / devtmpfs devtmpfs 981M 0 981M 0% /dev tmpfs tmpfs 992M 0 992M 0% /dev/shm tmpfs tmpfs 992M 9.5M 982M 1% /run tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup /dev/sda1 xfs 297M 107M 191M 36% /boot tmpfs tmpfs 199M 0 199M 0% /run/user/0
- 刪除邏輯卷lv。
[root@wencheng ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-a----- 5.00g [root@wencheng ~]# [root@wencheng ~]# lvremove /dev/vg01/lv01 Do you really want to remove active logical volume vg01/lv01? [y/n]: y Logical volume "lv01" successfully removed [root@wencheng ~]# lvs
- 刪除卷組vg。
[root@wencheng ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 4 0 0 wz--n- 69.98g 69.98g [root@wencheng ~]# [root@wencheng ~]# vgremove vg01 Volume group "vg01" successfully removed [root@wencheng ~]# [root@wencheng ~]# vgs
- 刪除物理機pv。
[root@wencheng ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- <20.00g <20.00g /dev/sdc1 lvm2 --- <20.00g <20.00g /dev/sdd1 lvm2 --- <20.00g <20.00g /dev/sde1 lvm2 --- <10.00g <10.00g [root@wencheng ~]# [root@wencheng ~]# pvremove /dev/sde1 Labels on physical volume "/dev/sde1" successfully wiped. [root@wencheng ~]# pvremove /dev/sdd1 Labels on physical volume "/dev/sdd1" successfully wiped. [root@wencheng ~]# [root@wencheng ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- <20.00g <20.00g /dev/sdc1 lvm2 --- <20.00g <20.00g
- 編輯/etc/fstab,刪除對應自動掛載資訊 。
UUID=57c4afb5-1953-4695-b173-965f1b12500f / xfs defaults 0 0 UUID=a04da5a6-ddd1-41b8-a9d6-ee5f6b62596e /boot xfs defaults 0 0 UUID=77e1f34d-8161-4b9c-ba1f-240898a695ef swap swap defaults 0 0 #/dev/vg01/lv01 /mnt/lv01 xfs defaults 0 0
- 格式化磁碟。
[root@wencheng ~]# mkfs.xfs /dev/sde1 meta-data=/dev/sde1 isize=512 agcount=4, agsize=655296 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2621184, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@wencheng ~]# mkfs.xfs /dev/sdd1 meta-data=/dev/sdd1 isize=512 agcount=4, agsize=1310656 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242624, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0