邏輯卷管理器LVM :node
LVM的優點:一、彈性存儲 二、可使用快照 app
LVM: 將幾個物理分區經過軟件組合在一塊兒,看起來像是獨立的大硬盤,而要用這塊大硬盤,就要將它分紅可使用的分區,而後格式化,掛載等ide
PV物理卷:將物理磁盤或物理分區初始化成LVM能用的物理卷,分區中的類型是8e:Linux LVM測試
VG邏輯卷組:將一個或者多個PV組合成一個大的磁盤,將其稱之爲組
ui
LV邏輯卷:從VG中分割出來的分區,稱爲LV,LV被用來格式化後,進行掛載,設備代爲: /dev/vgname/lvnamespa
相關命令整理操作系統
建立 | 刪除 | 查看 | 詳細查看 | 移動 | 擴展 | 減小 | |
PV | pvcreate | pvremove | pvs | pvdisplay | pvmove | ||
VG | vgcreate | vgremove | vgs | vgdisplay | vgmove | vgextend | vgreduce |
LV | lvcreate | lvremove | lvs | lvdisplay | lvmove | lvextend | lvreduce |
注:舉例:若是一個PV下有兩個物理分區sda6和sda7,現分區空間過大一個sda6已經夠用想把sda7拆下,3d
如下爲建立一個LV的具體操做:orm
首先建立分區,sda6 sda7 這裏分區的文件系統選擇 8e Linux LVM ,
blog
[root@bird 桌面]# pvcreate /dev/sda6 /dev/sda7
WARNING: swap signature detected on /dev/sda6. Wipe it? [y/n]: y
Wiping swap signature on /dev/sda6.
Physical volume "/dev/sda6" successfully created
Physical volume "/dev/sda7" successfully created
[root@bird 桌面]# pvs 顯示建立的pv
PV VG Fmt Attr PSize PFree
/dev/sda6 lvm2 --- 2.00g 2.00g
/dev/sda7 lvm2 --- 1.01g 1.01g
[root@bird 桌面]# pvdisplay 顯示詳細的pv信息
"/dev/sda6" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda6
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID itkIEM-poEM-FK3M-Ycoj-Fco1-S11Q-MXnlby
"/dev/sda7" is a new physical volume of "1.01 GiB"
--- NEW Physical volume ---
PV Name /dev/sda7
VG Name
PV Size 1.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID s9TdIp-v3hg-zYn3-BSJW-XDH2-wKXK-gXWJbW
[root@bird 桌面]# vgcreate zydata /dev/sda6 /dev/sda7 建立VG
Volume group "zydata" successfully created
[root@bird 桌面]# vgs 查看VG
VG #PV #LV #SN Attr VSize VFree
zydata 2 0 0 wz--n- 3.01g 3.01g
[root@bird 桌面]# vgdisplay 詳細顯示vg的信息
--- Volume group ---
VG Name zydata
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 3.01 GiB
PE Size 4.00 MiB
Total PE 770
Alloc PE / Size 0 / 0
Free PE / Size 770 / 3.01 GiB
VG UUID iEZS4P-4jLo-dS4V-WwSJ-1lLo-73yd-i88tlv
[root@bird 桌面]# vgremove zydata 直接移除vg zydata
Volume group "zydata" successfully removed
[root@bird 桌面]# vgs
[root@bird 桌面]# vgcreate -s 8M zydata /dev/sda6 建立PE大小爲8M的 默認爲4M 這裏僅指定了sda6
Volume group "zydata" successfully created
[root@bird 桌面]# vgdisplay
--- Volume group ---
VG Name zydata
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size 2.00 GiB
PE Size 8.00 MiB
Total PE 256
Alloc PE / Size 0 / 0
Free PE / Size 256 / 2.00 GiB
VG UUID mqn1Hj-pGoD-WyZS-8kgq-unEd-R3dj-7pFLa1
擴展邏輯卷:
[root@bird 桌面]# vgextend zydata /dev/sda7 擴展一個sda7進去
Volume group "zydata" successfully extended
[root@bird 桌面]# vgs
VG #PV #LV #SN Attr VSize VFree
zydata 2 0 0 wz--n- 3.01g 3.01g
[root@bird 桌面]# vgdisplay
--- Volume group ---
VG Name zydata
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
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 3.01 GiB 加sda7以後大小變爲3G (sda6爲2G 7爲1G
PE Size 8.00 MiB 以前定義過,則自動將新擴展進來的sda7的PE設置爲8M.
Total PE 385
Alloc PE / Size 0 / 0
Free PE / Size 385 / 3.01 GiB
VG UUID mqn1Hj-pGoD-WyZS-8kgq-unEd-R3dj-7pFLa1
# pvmove /dev/sda7 先用pvmove將sda7中的數據複製出來,便可以將7中數據移到其餘的分區中去),
[root@bird 桌面]# vgreduce zydata /dev/sda7 用vgreduce從zydata中將sda7除去
Removed "/dev/sda7" from volume group "zydata"
[root@bird 桌面]# vgs
VG #PV #LV #SN Attr VSize VFree
zydata 1 0 0 wz--n- 2.00g 2.00g
[root@bird 桌面]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda6 zydata lvm2 a-- 2.00g 2.00g
/dev/sda7 lvm2 --- 1.01g 1.01g sda7不屬於任何VG
[root@bird 桌面]# pvremove /dev/sda7 最後用pvremove 移除
Labels on physical volume "/dev/sda7" successfully wiped
[root@bird 桌面]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda6 zydata lvm2 a-- 2.00g 2.00g
必須先將sda7數據move出來再用vgreduce除去sda7,最後才能pvremove來移除sda7,vgremove是用來移除vg的,vgreduce和vgextend是用來減小和增長分區的如:
vgextend zydata /dev/sda7
vgreduce zydata /dev/sda7
[root@bird 桌面]# lvcreate -n testlv -L 1G zydata 建立大小爲1G的lv
Logical volume "testlv" created.
[root@bird 桌面]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
testlv zydata -wi-a----- 1.00g
[root@bird 桌面]# lvdisplay
--- Logical volume ---
LV Path /dev/zydata/testlv 路徑
LV Name testlv
VG Name zydata
LV UUID MMkFjJ-qlMN-ebQ1-eoBm-nxfz-nPtF-By8WU3
LV Write Access read/write
LV Creation host, time bird, 2017-04-19 15:03:47 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 128
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@bird 桌面]# mke2fs -j /dev/zydata/testlv 格式化lv
mke2fs 1.41.12 (17-May-2010)
文件系統標籤=
操做系統:Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
正在寫入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@bird 桌面]# mkdir /mnt/test3
[root@bird 桌面]# mount /dev/zydata/testlv /mnt/test3/ 掛載lv
[root@bird 桌面]# ls /mnt/test3/
lost+found 掛載成功
[root@bird 桌面]# cp /etc/fstab /mnt/test3/ 測試
[root@bird 桌面]# cd /mnt/test3/
[root@bird test3]# cat fstab
#
# /etc/fstab
# Created by anaconda on Mon Feb 13 23:50:17 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=43fa2114-8933-43bc-b4dc-d1d4811e7a64 / ext4 defaults 1 1
UUID=1ee52a34-d3a4-47f8-9863-f90aeeede43e /boot ext4 defaults 1 2
UUID=ea629952-0afa-45e9-bbb5-eb1dafa4cbc9 /home ext4 defaults 1 2
UUID=2aca97a2-9b18-41cb-9838-7a05b6fbf560 /usr ext4 defaults 1 2
UUID=7c374472-feea-47c6-a711-41a1d90b1bae swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda7 /mnt ext3 defaults 0 0
[root@bird ~]# lvextend -L +100M /dev/zydata/testlv 擴展lv,增長100M
Rounding size to boundary between physical extents: 104.00 MiB
Size of logical volume zydata/testlv changed from 1.00 GiB (128 extents) to 1.10 GiB (141 extents).
Logical volume testlv successfully resized
[root@bird ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
testlv zydata -wi-ao---- 1.10g
[root@bird ~]# resize2fs -p /dev/zydata/testlv 這是邏輯邊界的擴展必須進行,不然df -h查看的話lv的擴展沒有變化
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/zydata/testlv is mounted on /mnt/test3; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/zydata/testlv to 288768 (4k) blocks.
The filesystem on /dev/zydata/testlv is now 288768 blocks long.
[root@bird ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 7.6G 411M 6.8G 6% /
tmpfs 504M 228K 503M 1% /dev/shm
/dev/sda1 1.9G 35M 1.8G 2% /boot
/dev/sda3 4.7G 336M 4.2G 8% /home
/dev/sda5 3.8G 3.2G 438M 89% /usr
/dev/sr0 3.6G 3.6G 0 100% /media/CentOS_6.7_Final
/dev/mapper/zydata-testlv
1.1G 34M 1021M 4% /mnt/test3 這裏增長的100M就顯示了
注意:擴展的話先lvextend 物理邊界在resize2fs邏輯邊界,能夠在線擴展:
一、lvextend -L +100M /dev/zydata/testlv
二、/resize2fs -p /dev/zydata/testlv
縮減的話:一、不能在線縮減
二、必須先卸載,df -h肯定已用的空間大於你要縮小的空間
三、e2fsck -f /dev/zydata/testlv 強行檢查lv
四、resize2fs /dev/zydata/testlv —100M
五、lvreduce -L -100M /dev/zydata/testlv
(用法 resize2fs /dev/zydata/testlv —100M(不帶加減號表明縮減至多少G)邏輯邊界後,在用lvextend來縮減物理邊界lvreduce -L -100M /dev/zydata/testlv
順便補充一個快照卷的過程,
lvcreate -L 50M -s -p r -n kauizhao /dev/zydata/testlv
大小 -s指定建立快照 -p r指定只讀 -n指定快照名 後面是lv的路徑
至此一個完整的LVM的建立,擴展,縮減,以及要注意的地方都已經完成!OVER``````````