GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux環境中對磁盤分區進行管理的一種機制,是建立在硬盤和分區之上、文件系統之下的一個邏輯層,可提高磁盤分區管理的靈活性。最大的優點是在不損傷數據的前提下調整存儲空間的大小。
本篇主要講述LVM的創建、LVM的擴展與縮減和快照卷的使用三部分
第一部分:LVM的創建
LVM創建的大致步驟為
1、將多個分區轉化為多個物理卷PV(Physical Vomule)
?? 一個分區可以創建一個物理卷,可以在多塊磁盤上創建物理卷。也可以做raid10磁盤陣列以后在做物理卷, 以??? 便有更快的讀寫及磁盤冗余。
2、將多個物理卷創建為卷組VG(Vomule Group)
3、將一個卷組VG劃分為多個邏輯卷LV(Logical Vomule)
LVM創建的具體步驟:
第一步:創建LVM分區以及物理卷
1、檢測有幾塊可用磁盤以及檢查驅動器上空閑硬盤空間的總量
[root@wlm ~]# fdisk -l | grep "Disk /dev/[sh]d[a-z]"
#檢測有幾塊磁盤,以及磁盤信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
[root@wlm tmp]# df -h
#查看磁盤使用情況
Filesystem??????????? Size? Used Avail Use% Mounted on
/dev/sdb3????????????? 28G? 4.0G?? 23G? 16% /
tmpfs???????????????? 504M???? 0? 504M?? 0% /dev/shm
/dev/sdb1???????????? 194M? 190M???? 0 100% /boot
磁盤/dev/sda沒有使用
2、創建LVM分區
這里對fdisk以及分區就不詳解了
使用fdisk /dev/sda創建兩個分區
wKiom1TPduzCEqmUAAHgvEwW7dM394.jpg
將兩塊分區格式改為8e,w退出
wKiom1TPd7yzt7M-AACTMzJaqqw225.jpg
3、創建物理卷
將新創建的兩個分區/dev/sda1 /dev/sda2轉化成物理卷,主要是添加LVM屬性信息并劃分PE存儲單元
[root@wlm tmp]# pvcreate /dev/sda1 /dev/sda2
? Physical volume "/dev/sda1" successfully created
? Physical volume "/dev/sda2" successfully created
[root@wlm tmp]# pvs
? PV???????? VG?? Fmt? Attr PSize PFree
? /dev/sda1?????? lvm2 a--? 2.01g 2.01g
? /dev/sda2?????? lvm2 a--? 3.01g 3.01g
[root@wlm tmp]# pvdisplay
? "/dev/sda1" is a new physical volume of "2.01 GiB"
? --- NEW Physical volume ---
? PV Name?????????????? /dev/sda1
? VG Name??????????????
? PV Size?????????????? 2.01 GiB
? Allocatable?????????? NO
? PE Size?????????????? 0??
? Total PE??????? ??????0
? Free PE?????????????? 0
? Allocated PE????????? 0
? PV UUID?????????????? nhJsM3-RlXF-xTuH-vBKA-QZQA-1Hq3-fXUXS5
??
? "/dev/sda2" is a new physical volume of "3.01 GiB"
? --- NEW Physical volume ---
? PV Name?????????????? /dev/sda2
? VG Name??????????????
? PV Size?????????????? 3.01 GiB
? Allocatable?????????? NO
? PE Size?????????????? 0??
? Total PE????????????? 0
? Free PE?????????????? 0
? Allocated PE????????? 0
? PV UUID?????????????? ppfWNr-39xt-XeN7-xrTt-b2G3-SlIO-tTcMYH
第二步:用兩塊物理卷創建卷組vg01
[root@wlm tmp]# vgcreate vg01 /dev/sda{1,2}
? Volume group "vg01" successfully created
[root@wlm tmp]# vgs
? VG?? #PV #LV #SN Attr?? VSize VFree
? vg01?? 2?? 0?? 0 wz--n- 5.01g 5.01g
[root@wlm tmp]# vgdisplay
? --- Volume group ---
? VG Name?????????????? vg01
? System ID????????????
? Format??????????????? lvm2
? Metadata Areas??????? 2
? 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??????????????? 2
? Act PV??????????????? 2
? VG Size?????????????? 5.01 GiB
? PE Size?????????????? 4.00 MiB
? Total PE????????????? 1283
? Alloc PE / Size?????? 0 / 0??
? Free? PE / Size?????? 1283 / 5.01 GiB
? VG UUID?????????????? vaM594-DxAh-UCh0-RGU3-eEuX-ktQ5-NeRV31
第三步:創建一個邏輯卷。使用lvcreate命令在卷組中創建一個邏輯卷lv01,大小-L指定1G,名稱-n指定lv01
[root@wlm tmp]# lvcreate -L 1G -n lv01 vg01
? Logical volume "lv01" created
[root@wlm tmp]# lvs
? LV?? VG?? Attr????? LSize Pool Origin Data%? Move Log Cpy%Sync Convert
? lv01 vg01 -wi-a---- 1.00g????????????????????????????????????????????
[root@wlm tmp]# lvdisplay
? --- Logical volume ---
? LV Path??????????????? /dev/vg01/lv01
? LV Name??????????????? lv01
? VG Name??????????????? vg01
? LV UUID??????????????? tnkXZJ-gRQK-nAke-XW6C-oycy-Voep-9hKnYA
? LV Write Access??????? read/write
? LV Creation host, time wlm, 2015-02-02 21:36:40 +0800
? LV Status????????????? available
? # open???????????????? 0
? LV Size??????????????? 1.00 GiB
? Current LE???????????? 256
? Segments?????????????? 1
? Allocation???????????? inherit
? Read ahead sectors???? auto
? - currently set to???? 256
? Block device?????????? 253:0
??
[root@wlm tmp]# mkfs.ext4 /dev/vg01/lv01
第四部:掛載
[root@wlm tmp]# mkdir /lv01
[root@wlm tmp]# mount /dev/vg01/lv01 /lv01/
[root@wlm tmp]# mount -s
/dev/sdb3 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/sdb1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)
便于以后服務器重啟自動掛載,需要將創建好的文件系統掛載信息添加到/etc/fstab里面
為了查看/etc/fstab是否設置正確,可以先卸載邏輯卷data1,然后使用mount –a 使內核重新讀取/etc/fstab,看是否能夠自動掛載.
[root@wlm tmp]# vim /etc/fstab
wKioL1TPgk_Sv4-ZAAHbEJQU6XA746.jpg
[root@wlm tmp]# umount /lv01/
[root@wlm tmp]# mount -s | grep "/lv01"
[root@wlm tmp]# mount -a
[root@wlm tmp]# mount -s | grep "/lv01"
/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)
至此,LVM的創建結束
第二部分:LVM的擴展與縮減
卷組的擴張
[root@wlm ~]# vgextend vg01 /dev/sda3? #將物理卷/dev/sda3加入卷組vg01
? Volume group "vg01" successfully extended
邏輯卷的擴張:先擴張物理邊界———在擴張邏輯邊界
擴張物邊界
命令:lvextend
?????? -L? [+]# /PATH/TO/LV
[root@wlm tmp]# lvextend -L 2G /dev/vg01/lv01 要擴張到2G(擴張后的)
wKioL1TPhYnT-wxeAABeva34i9E701.jpg
擴展邏輯邊界
resize2fs
?????? resize2fs? -p /PATH/TO/LV
[root@wlm tmp]# resize2fs -p /dev/vg01/lv01 要擴張到2G(擴張后的)
wKioL1TPhZjQgUS3AADog55hmts773.jpg
邏輯卷的縮減,有風險,先縮減邏輯邊界——在縮減物理邊界
注意:1、不能在線縮減,得先卸載;
?????????????? 2、確保縮減后的空間大小依然能存儲原有的所有數據;
?????????????? 3、在縮減之前應該強行檢查文件,確保文件系統處于一致性狀態
df –lh
umount? 卸載
e2fsck -f /dev/vg01/lv01強行文件系統檢查,看是否有問題
?
開始縮減
resize2fs? /PATH/TO/PV 1G
[root@wlm ~]# resize2fs /dev/vg01/lv01 1G
resize2fs 1.41.12 (17-May-2010)
resize2fs: New size smaller than minimum (275802)
縮減(邏輯邊界)為1G (縮減后的總共大小為1G)
lvreduce? -L [-]#? /PATH/TO/LV
[root@wlm ~]# lvreduce -L 1G /dev/vg01/lv01
? WARNING: Reducing active and open logical volume to 1.00 GiB
? THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
? Reducing logical volume lv01 to 1.00 GiB
? Logical volume lv01 successfully resized
縮減(物理邊界)為1G
mount?? -a
重新掛在
第三部分:使用快照卷()
1、生命周期為整個數據時長:在這段時長內,數據的增長量不能超出快照卷大小;
2、快照卷應該是只讀的;
3、跟原卷在同一卷組內;
lvcreate? -L #? -n? SLV_NAME -s? -p? r /PATH/TO/LV
?? -L指定大小 –n名稱??? -s表示為快照卷??? -p? 只讀? 要做快照的源卷
[root@wlm ~]# lvcreate -L 100M -n lv01_snap -s -p r /dev/vg01/lv01
? Logical volume "lv01_snap" created
?[root@wlm ~]# mount /dev/vg01/lv01_snap /mnt/
mount: block device /dev/mapper/vg01-lv01_snap is write-protected, mounting read-only
進行備份是可以從快照卷進行備份,備份完畢后可以卸載刪除
[root@wlm ~]# lvremove /dev/vg01/lv01_snap
Do you really want to remove active logical volume lv01_snap? [y/n]: y
? Logical volume "lv01_snap" successfully removed
管理LVM管理配置要用到的命令有:
???? vgextend vg0 /dev/sdaz *將第三個物理卷添加進vg0物理卷組*
??? fdisk -l :查看系統中都認到了那些物理硬盤
??? pvdisplay:查看系統中已經創建好的物理卷
??? pvcreate:創建一個新的物理卷
??? pvremove:刪除一個物理卷(也就是從物理卷中刪除一個LVM標簽)
??? vgdisplay:查看系統中的卷組
??? vgcreate:創建一個新的卷組
??? vgreduce:從卷組中刪除一個物理卷(也就是縮小卷組)
??? vgremove:刪除一個卷組
??? lvdisplay:查看系統中已經創建好的邏輯卷
??? lvcreate:創建一個新的邏輯卷
??? lvreduce:縮小邏輯卷(也就是從一個邏輯卷中減少一些LE)
??? lvremove:從系統中刪除一個邏輯卷
?? ?mkfs:基于邏輯卷創建一個相應類型的文件系統
??? mkdir -p $mount_piont:創建一個掛載目錄
??? 創建好的文件系統位于:
??? /dev/$create_vg_name/$lv_name
??? mount /dev/$create_vg_name/$lv_name $mount_piont:掛載文件系統
??? lvextend -L 2G /dev/vg01/lv01 要擴張到2G(擴張后的物理邊界)
??? resize2fs -p /dev/vg01/lv01 要擴張到2G(擴張后的邏輯邊界)
以下是別人寫的博客作為補充,出處http://dreamfire.blog.51cto.com/418026/1084729
如果某一塊磁盤或者分區故障了如何將數據快速轉移到相同的卷組其他的空間去。
1、通過pvmove命令轉移空間數據
2、通過vgreduce命令將即將壞的磁盤或者分區從卷組vgdata里面移除除去。
3、通過pvremove命令將即將壞的磁盤或者分區從系統中刪除掉。
4、手工拆除硬盤或者通過一些工具修復分區。
clip_image042
clip_image044
刪除整個邏輯卷
1、先通過umount命令卸載掉邏輯卷lvdata1
2、修改/etc/fstab里面邏輯卷的掛載信息,否則系統有可能啟動不起來。
3、通過lvremove 刪除邏輯卷lvdata1
4、通過vgremove 刪除卷組vgdata
5、通過pvremove 將物理卷轉化成普通分區。
clip_image046
刪除完了,別忘了修改分區的id標識。修改成普通Linux分區即可。
clip_image048
總結:LVM邏輯卷是Linux里面一個很棒的空間使用機制,因為分區在沒有格式化的情況下是沒有辦法加大或者放小的。通過LVM可以將你的磁盤空間做到靈活自如。
總結
以上是生活随笔為你收集整理的GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SignalR系列续集[系列8:Sign
- 下一篇: Hbase源码分析:Hbase UI中R