LVM2詳解
LVM2詳解
大綱:
簡介
版本
LVM基本術語
LVM模塊
具體操作
對添加的硬盤進行分區( fdisk /dev/[hs]d[a-z] )
對創建的分區創建物理卷(pvcreate)
給邏輯卷創建邏輯容器(卷組)
在卷組創建大小不同的邏輯卷(lvcreate)
給已存在的卷組擴大容量
實現在線擴大LVM容量
實現縮減LVM容量(不支持在線縮減)
減小卷組容量
利用給LVM創建快照,並完成備份並還原
簡介:
LVM是Logical Volume Manager(邏輯卷管理器)的簡寫,又譯爲邏輯卷宗管理器、邏輯扇區管理器、邏輯磁盤管理器。是Linux核心所提供的邏輯卷管理(Logical Volume Management)功能。它在硬盤的硬盤分區之上,又創建了一個邏輯層以方便系統管理硬盤分區系統。
最早由IBM開發,在AIX系統上實現,OS/2操作系統與HP-UX也支持這個功能;
在1998年,Heinz Mauelshagen根據HP-UX上的邏輯卷管理器,寫作出第一個Linux版本的邏輯卷管理器;並將其發佈到Linux社區中,它允許用戶在Linux系統上用簡單的命令行管理一個完整的邏輯卷管理環境。
LVM的優點:
它是建立在物理存儲設備之上的一個抽象層,允許用戶生成邏輯存儲卷,與直接使用物理存儲在管理上相比,提供了更好靈活性;
LVM將存儲虛擬化,使用邏輯卷,用戶不會受限於物理磁盤的大小;另外,與硬件相關的存儲設置被器隱藏,用戶可以不用停止應用或卸載文件系統來調整卷大小或數據遷移,可以減少操作成本。
LVM與直接使用物理存儲相比,有以下優點:
1、 靈活的容量
當使用邏輯卷時,文件系統可以擴展到多個磁盤上,你可以聚合多個磁盤或磁盤分區成單一的邏輯卷.
2、 可伸縮的存儲池;
你可以使用簡單的命令來擴大或縮小邏輯卷大小,不用重新格式化或分區磁盤設備.
3、 在線的數據再分配
你可以在線移動數據,數據可以在磁盤在線的情況下重新分配.比如,你可以在線更換可熱插拔的磁盤.
4、 方便的設備命名;
邏輯卷可以按你覺得方便的方式來起任何名稱.
5、 磁盤條塊化
你可以生成一個邏輯盤,它的數據可以被條塊化存儲在2個或更多的磁盤上.這樣可以明顯提升數據吞吐量.
6、 鏡像卷
邏輯卷提供方便的方法來鏡像你的數據.
7、 卷快照
使用邏輯卷,你可以獲得設備快照用來一致性備份或者測試數據更新效果而不影響真實數據.
2.版本:
LVM1 最初的LVM與1998年發佈,只在Linux內核2.4版本上可用,它提供最基本的邏輯卷管理。
LVM2 LVM-1的更新版本,在Linux內核2.6中才可用,它在標準的LVM-1功能外還提供了額外的功能。
查看版本:
[root@localhost ~]#uname -a Linux localhost.localdomain2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64GNU/Linux [root@localhost ~]#uname -r 2.6.32-504.el6.x86_64 [root@localhost ~]#rpm -qa | grep lvm mesa-private-llvm-3.4-3.el6.x86_64 lvm2-libs-2.02.111-2.el6.x86_64 lvm2-2.02.111-2.el6.x86_64
3.LVM基本術語:
物理存儲介質(The Physical Media):
這裏指系統的存儲設備,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
物理卷(PV,Physical Volume):
物理卷就是指磁盤,磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。當前LVM允許你在每個物理捲上保存這個物理卷的0至2份元數據拷貝。默認爲1,保存在設備的開始處。爲2時,在設備結束處保存第二份備份。
卷組(VG,Volume Group):
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯
卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(LV,Logical Volume):
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
線性邏輯卷(Linear Volumes):
一個線性邏輯卷聚合多個物理捲成爲一個邏輯卷.比如,如果你有兩個60GB硬盤,你可以生成120GB的邏輯卷.
條塊化的邏輯卷(Striped Logical Volumes)
當你寫數據到此邏輯卷中時,文件系統可以將數據放置到多個物理卷中.對於大量連接讀寫操作,它能改善數據I/O效率.
鏡像的邏輯卷(MirroredLogical Volumes)
鏡像在不同的設備上保存一致的數據.數據同時被寫入原設備及鏡像設備.它提供設備之間的容錯。
快照卷(SnapshotVolumes)
快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,它複製一份對當前數據區域的改變,由於它優先執行這些改變,所以它可以重構當前設備的狀態。
PE(physical extent)
每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。
LE(logical extent)
邏輯卷也被劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
和非LVM系統將包含分區信息的元數據保存在位於分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位於物理捲起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符。系統啓動LVM時激活VG,並將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。
4.LVM模塊:
Physicalvolume (PV)、Volume group (VG)、Logicalvolume(LV)、 Physical extent (PE),下面我們用一個簡單
的圖來說明下物理卷、卷組、邏輯卷他們之間的關係:(該圖來自於網絡)
邏輯卷的創建,就是將多塊硬盤創建物理卷,而將這些物理卷以邏輯的形式總成一個容器,然後從這個容器裏面創建大小不同的分區文件,而這個容器就是所謂的卷組(VG),而從這個容器裏創建大小不同的分區文件,這個分區文件就叫做邏輯卷。
5.具體操作:
分區:
[root@localhost ~]#fdisk -l Disk /dev/sda: 128.8 GB, 128849018880 bytes 255 heads, 63 sectors/track, 15665cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x00060f25 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinderboundary. /dev/sda2 26 7859 62914560 8e Linux LVM /dev/sda3 7859 8512 5252256 83 Linux /dev/sda4 8513 9166 5253255 5 Extended /dev/sda5 8513 8644 1060258+ 82 Linux swap / Solaris
[root@localhost ~]# fdisk -l /dev/sdb #新添加的硬盤sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x00000000 [root@localhost ~]# fdisk /dev/sdb #對sdb進行分區 Command (m for help): n #新建一個分區; Command action e extended p primary partition (1-4) p
Partition number (1-4): 3 #分區號; First cylinder (1309-2610, default 1309): #開始柱面,直接默認 Using default value 1309 Last cylinder, +cylinders or +size{K,M,G}(1309-2610, default 2610): +5G #指定分區大小 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 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x71f66aa7 Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux #id字段表示分區類型; /dev/sdb2 655 1308 5253255 83 Linux #改分區類型需要使用子命令t /dev/sdb3 1309 1962 5253255 83 Linux
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 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x71f66aa7 #此時分區id已修改爲8e,分區類型爲Linux LVM; Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 8e Linux LVM /dev/sdb2 655 1308 5253255 8e Linux LVM /dev/sdb3 1309 1962 5253255 8e Linux LVM Command (m for help): w #保存更改退出
[root@localhost ~]# partx -a /dev/sdb #讓內核重新讀取硬盤sdb的分區信息; BLKPG: Device or resource busy error adding partition 1 BLKPG: Device or resource busy error adding partition 2 BLKPG: Device or resource busy error adding partition 3
[root@localhost ~]# fdisk -l /dev/sdb #查看硬盤sdb的分區信息; Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x71f66aa7 Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 8e Linux LVM /dev/sdb2 655 1308 5253255 8e Linux LVM /dev/sdb3 1309 1962 5253255 8e Linux LVM [root@localhost ~]#
b、將物理分區與硬盤創建爲物理卷(pvcreate)
[root@localhost ~]# pvcreate /dev/sdb[1-3] #將sdb上的三個分區創建爲物理卷; Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created Physical volume "/dev/sdb3" successfully created [root@localhost ~]# pvcreate /dev/sdc #將硬盤sdc創建爲物理卷; Physical volume "/dev/sdc" successfully created [root@localhost ~]# pvs #查看創建的物理卷 PV VG Fmt Attr PSize PFree /dev/sda2 vg0 lvm2 a-- 59.99g 7.99g /dev/sdb1 lvm2 --- 5.01g 5.01g /dev/sdb2 lvm2 --- 5.01g 5.01g /dev/sdb3 lvm2 --- 5.01g 5.01g /dev/sdc lvm2 --- 20.00g 20.00g
Note:在VMwareWorkstations 11上使用CentOS6.6系統,新添加的硬盤需要在系統進行重啓後方能操作,如sdc,需要繼續驗證;
c、將物理卷(pv)創建爲卷組(vgcreate),名爲myvg:
[root@localhost ~]# vgcreate myvg/dev/sdb[1-3] /dev/sdc #創建卷組(VG),卷組名爲myvg,使用物理卷: #/dev/sda[1-3]和/dev/sdc Volume group "myvg" successfully created [root@localhost ~]# vgs #查看創建的卷組; VG #PV #LV #SN Attr VSize VFree myvg 4 0 0wz--n- 35.02g 35.02g vg0 1 4 0wz--n- 59.99g 7.99g [root@localhost ~]# vgdisplay #查看卷組的詳細信息;
---Volume group --- VGName myvg #卷組名 System ID Format lvm2 #格式 Metadata Areas 4 Metadata Sequence No 1 VGAccess read/write VGStatus resizable MAXLV 0 CurLV 0 Open LV 0 MaxPV 0 CurPV 4 ActPV 4 VGSize 35.02 GiB #卷組的空間大小,是所有物理卷之和; PESize 4.00 MiB #物理盤的基本單位:默認4MB; Total PE 8965 Alloc PE / Size 0 / 0 Free PE / Size 8965 / 35.02 GiB
d、在卷組裏創建邏輯卷並格式化、掛載使用;
[root@localhost ~]# lvcreate -L 5G -n mylv1myvg #創建邏輯卷,卷名爲mylv1,卷大小爲5G; Logical volume "mylv1" created [root@localhost ~]# lvs #查看邏輯卷; LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 myvg -wi-a----- 5.00g root vg0 -wi-ao---- 20.00g swap vg0 -wi-ao---- 2.00g usr vg0 -wi-ao---- 10.00g var vg0 -wi-ao---- 20.00g [root@localhost ~]# mke2fs -j /dev/myvg/mylv1 #格式化邏輯卷,文件系統創建爲ext系列; mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the superuser First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments pergroup 8192 inodes per group Superblock backups stored on blocks: 32768,98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystemaccounting information: done This filesystem will be automaticallychecked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mydata #創建掛載目錄; [root@localhost ~]# mount /dev/myvg/mylv1/mydata/ #掛載邏輯卷; [root@localhost ~]# mount #查看已掛載的設備; /dev/mapper/vg0-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts(rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc typebinfmt_misc (rw) /dev/mapper/myvg-mylv1 on /mydata type ext3(rw) #剛掛載的邏輯卷; [root@localhost ~]# ls /mydata/ #查看掛載目錄; lost+found #聽說ext系列的文件系統格式化完成後都會有這個目錄; [root@localhost ~]# df -h #查看硬盤; Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 20G 333M 19G 2% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 190M 33M 148M 18% /boot /dev/mapper/vg0-usr 9.8G 1.9G 7.4G 21% /usr /dev/mapper/vg0-var 20G 200M 19G 2% /var /dev/mapper/myvg-mylv1 5.0G 139M 4.6G 3% /mydata
e、如果卷組空間不夠,擴大卷組空間;
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 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x71f66aa7 #在硬盤sdb上創建了一個擴展分區sdb4,在擴展分區上創建了邏輯分區sdb5,並將sdb5的id該爲8e; Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 8e Linux LVM /dev/sdb2 655 1308 5253255 8e Linux LVM /dev/sdb3 1309 1962 5253255 8e Linux LVM /dev/sdb4 1963 2485 4200997+ 5 Extended /dev/sdb5 1963 2485 4200966 8e Linux LVM [root@localhost ~]# partx -a /dev/sdb #內核重新讀取sdb的分區表;
[root@localhost ~]# pvcreate /dev/sdb5 #創建物理卷/dev/sdb5 Physical volume "/dev/sdb5" successfully created [root@localhost ~]# pvs #查看物理卷 PV VG Fmt Attr PSize PFree /dev/sda2 vg0 lvm2 a-- 59.99g 7.99g /dev/sdb1 myvg lvm2 a-- 5.01g 8.00m /dev/sdb2 myvg lvm2 a-- 5.01g 5.01g /dev/sdb3 myvg lvm2 a-- 5.01g 5.01g /dev/sdb5 lvm2 --- 4.01g 4.01g #新增的物理卷/dev/sdb5 /dev/sdc myvg lvm2 a-- 20.00g 20.00g [root@localhost ~]# vgextend myvg /dev/sdb5 #擴展卷組,使用vgextend命令; Volume group "myvg" successfully extended [root@localhost ~]# vgs #查看擴展後的卷組的大小; VG #PV #LV #SN Attr VSize VFree myvg 5 1 0wz--n- 39.02g 34.02g vg0 1 4 0wz--n- 59.99g 7.99g
f、擴展邏輯卷(支持在線擴展)
[root@localhost ~]# cd /mydata/ [root@localhost mydata]# touchkalaguiyin.html [root@localhost mydata]# echo "This isKaLaguiyin's test blog." > kalaguiyin.html [root@localhost mydata]# catkalaguiyin.html This is KaLaguiyin's test blog. [root@localhost mydata]# vgs VG #PV #LV #SN Attr VSize VFree myvg 5 1 0 wz--n- 39.02g 34.02g #查看VG擴展前的信息,與擴展後對比; vg0 1 4 0wz--n- 59.99g 7.99g [root@localhost mydata]#
[root@localhost mydata]# lvextend -L +4G/dev/myvg/mylv1 #擴展邏輯卷mylv1,空間+4G; Size of logical volume myvg/mylv1 changed from 5.00 GiB (1280 extents)to 9.00 GiB (2304 extents). Logical volume mylv1 successfully resized [root@localhostmydata]# resize2fs -p /dev/myvg/mylv1 #通過resize2fs將文件系統的容量確實增加; resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/myvg/mylv1 is mounted on/mydata; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of/dev/myvg/mylv1 to 2359296 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now2359296 blocks long. [root@localhost mydata]# lvs #查看邏輯卷容量; LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 myvg -wi-ao---- 9.00g root vg0 -wi-ao---- 20.00g swap vg0 -wi-ao---- 2.00g usr vg0 -wi-ao---- 10.00g var vg0 -wi-ao---- 20.00g [root@localhost mydata]# catkalaguiyin.html #查看文件內容是否完整 This is KaLaguiyin's test blog. [root@localhost mydata]# df –h #查看邏輯卷的容量是否增加; Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 20G 333M 19G 2% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 190M 33M 148M 18% /boot /dev/mapper/vg0-usr 9.8G 1.9G 7.4G 21% /usr /dev/mapper/vg0-var 20G 200M 19G 2% /var /dev/mapper/myvg-mylv1 8.9G 140M 8.3G 2% /mydata
g、縮減邏輯卷
縮減前準備:
查看邏輯卷使用空間情況;
不能在線縮減,得先卸載;
確保縮減後的空間大小依然能存儲原有的所有數據;
在縮減之後應該先強行檢查文件,以確保文件系統處於一致性狀態;
將/dev/myvg/mylv1 縮減到5G,並且要求數據可以正常訪問:
[root@localhost ~]# df –lh #查看已用空間大小; Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 20G 333M 19G 2% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 190M 33M 148M 18% /boot /dev/mapper/vg0-usr 9.8G 1.9G 7.4G 21% /usr /dev/mapper/vg0-var 20G 201M 19G 2% /var /dev/mapper/myvg-mylv1 8.9G 140M 8.3G 2% /mydata [root@localhost ~]# umount /dev/myvg/mylv1 #卸載分區;
[root@localhost~]# e2fsck -f /dev/myvg/mylv1 #強制檢查文件系統; e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/myvg/mylv1: 12/589824 files (0.0%non-contiguous), 72705/2359296 blocks [root@localhost ~]# resize2fs/dev/myvg/mylv1 5G #縮減邏輯卷大小至5G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/myvg/mylv1to 1310720 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now1310720 blocks long. [root@localhost ~]# lvreduce -L 5G/dev/myvg/mylv1 #縮減物理邊界大小; WARNING: Reducing active logical volume to 5.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce mylv1? [y/n]:y #需要確認。 Size of logical volume myvg/mylv1 changed from 9.00 GiB (2304 extents)to 5.00 GiB (1280 extents). Logical volume mylv1 successfully resized [root@localhost ~]# lvs #查看邏輯卷; LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 myvg -wi-a----- 5.00g root vg0 -wi-ao---- 20.00g swap vg0 -wi-ao---- 2.00g usr vg0 -wi-ao---- 10.00g var vg0 -wi-ao---- 20.00g [root@localhost ~]# mount /dev/myvg/mylv1 /mydata/ #重新掛載; [root@localhost ~]# ls /mydata/ kalaguiyin.html lost+found #文件依然存在; [root@localhost ~]# cat/mydata/kalaguiyin.html This is KaLaguiyin's test blog. #文件內容依然完整; [root@localhost ~]#
h、縮減磁盤空間;
發現物理磁盤空間使用不足,將其中一塊硬盤或分區拿掉;
pvmove/dev/sdb5 #將/dev/sdb5上存儲的數據移到其他物理卷中;
vgreducemyvg /dev/sdb5 #將/dev/sdb5從myvg卷組中移除;
pvremove/dev/sdb5 #將/dev/sdb5從物理捲上移除;
[root@localhost ~]# pvs #查看物理卷; PV VG Fmt Attr PSize PFree /dev/sda2 vg0 lvm2 a-- 59.99g 7.99g /dev/sdb1 myvg lvm2 a-- 5.01g 8.00m /dev/sdb2 myvg lvm2 a-- 5.01g 5.01g /dev/sdb3 myvg lvm2 a-- 5.01g 5.01g /dev/sdb5 myvg lvm2 a-- 4.00g 4.00g /dev/sdc myvg lvm2 a-- 20.00g 20.00g [root@localhost ~]# pvmove /dev/sdb5 #將/dev/sdb5上存儲的數據移到其他物理卷中; Nodata to move for myvg [root@localhost ~]# vgreduce myvg /dev/sdb5 #將/dev/sdb5從myvg卷組中移除; Removed "/dev/sdb5" from volume group "myvg" [root@localhost ~]# pvremove /dev/sdb5 #將/dev/sdb5從物理卷中移除; Labels on physical volume "/dev/sdb5" successfully wiped [root@localhost ~]# pvs #查看物理卷,/dev/sdb5已經被移除; PV VG Fmt Attr PSize PFree /dev/sda2 vg0 lvm2 a-- 59.99g 7.99g /dev/sdb1 myvg lvm2 a-- 5.01g 8.00m /dev/sdb2 myvg lvm2 a-- 5.01g 5.01g /dev/sdb3 myvg lvm2 a-- 5.01g 5.01g /dev/sdc myvg lvm2 a-- 20.00g 20.00g [root@localhost ~]#
i、實現快照,進行備份還原;
在/mnt/lvm目錄上,我們將原始的目錄文件進行快照,然後將/mydata目錄中的內容清空,並進行還原;
[root@localhost ~]# cd /mydata/ [root@localhost mydata]# ls kalaguiyin.html lost+found [root@localhost mydata]# catkalaguiyin.html This is KaLaguiyin's test blog.
[root@localhost mydata]# lvcreate -L 30M -nbackup -s -p r /dev/myvg/mylv1 # -L 快照大小; -n:快照名稱; # -p 保持權限爲read and write; Rounding up size to full physical extent 32.00 MiB Logical volume "backup" created [root@localhost mydata]# ll -rw-r--r-- 1 root root 32 Aug 26 17:14 kalaguiyin.html drwx------ 2 root root 16384 Aug 26 16:42lost+found [root@localhost mydata]# mkdir /tmp/backup #創建掛載目錄; [root@localhost mydata]# mount/dev/myvg/backup /tmp/backup/ #掛載快照邏輯卷; mount: block device /dev/mapper/myvg-backupis write-protected, mounting read-only [root@localhost mydata]# cd /tmp/backup/ [root@localhost backup]# ls kalaguiyin.html lost+found [root@localhost backup]# mkdir /tmp/lvmbackup #創建備份目錄; [root@localhost backup]# tar jcf/tmp/lvmbackup/Sunday.tar.bz2 kalaguiyin.html #打包並壓縮文件; [root@localhosttmp]# cd lvmbackup/ [root@localhost lvmbackup]# ls Sunday.tar.bz2
[root@localhost ~]# cd /mydata/ #進入原邏輯卷掛載目錄; [root@localhost mydata]# ll total 20 -rw-r--r-- 1 root root 32 Aug 26 17:14 kalaguiyin.html drwx------ 2 root root 16384 Aug 26 16:42lost+found [root@localhost mydata]# rm -rf * #刪除所有文件; [root@localhost mydata]# ll total 0 [root@localhost mydata]# tar xvf/tmp/lvmbackup/Sunday.tar.bz2 #還原備份數據; kalaguiyin.html [root@localhost mydata]# ll total 4 -rw-r--r-- 1 root root 32 Aug 26 17:14kalaguiyin.html [root@localhost mydata]# catkalaguiyin.html #查看文件內容; This is KaLaguiyin's test blog. [root@localhost mydata]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 20G 333M 19G 2% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 190M 33M 148M 18% /boot /dev/mapper/vg0-usr 9.8G 1.9G 7.4G 21% /usr /dev/mapper/vg0-var 20G 201M 19G 2% /var /dev/mapper/myvg-mylv1 5.0G 139M 4.6G 3% /mydata /dev/mapper/myvg-backup 5.0G 139M 4.6G 3% /tmp/backup