標籤:lvm 快照 動態擴容 縮減 邏輯卷管理 lv
8.Linux的LVM使用詳解
命令概覽:所使用的命令(#代表是數字)
pvcreate /dev/sd[xx]
vgcreate -s # vgname /dev/sd[]
-s 指定PE的大小 預設大小為4M
vgextend vgname /dev/sd[xx]
lvcreate -n lvname -L # /dev/vgname
擴容
lvs
lvextend -L # /dev/vgname/lvname
resize2fs /dev/vgname/lvname
lvs
縮減
umount /dev/vgname/lvname
e2fsck /dev/vgname/lvname
resize2fs /dev/vgname/lvname #
lvreduce -L # /dev/vgname/lvname
mount
快照
lvcreate -L # -s -n snapshot /dev/vgname/lvname
卸載邏輯卷
umount /dev/vgname/lvname
lvremove /dev/vgname/lvname
vgremove /dev/vgname
pvremove /dev/sd[xx]
LVM的使用
LVM(Logical Volume Manager)叫做邏輯卷管理器,有兩個版本,早期是LVM1(現在很少使用了),LVM2。
PV (Physical Volume)物理卷,在分區時需要調整系統 ID為8e(LVM的標識符),使用pvcreate來建立物理卷。
VG (Volume Group)卷組,是將一個或多個PV組合成一個VG,可以通過vgcreate來實現。
LV (Logical Volume)邏輯卷,將VG劃分成一個或多個LV,可以通過lvcreate來實現。
LVM2使用dm模組來實現將一個或多個底層塊裝置群組織成一個邏輯裝置的工具。它能夠將一個或多個底層塊裝置從某種意義上來映射成一個邏輯裝置,通過在其上面附加一個邏輯層使得上層看起來像一個裝置一樣,而且在其之上,還可以再劃分邏輯分區。將底層的塊裝置(VG)進一步分隔成了一個一個可以儲存資料空間的塊(PE),這種塊也稱為PE(Physical Extend),再將VG上多個PE組合成一個或多個
LV。也就是說LV的大小是由PE的個數決定的,LVM預設使用4M的PE塊,而LVM的VG最多僅能含有65534個PE,因此預設的LVM VG會有4M*65534(1024M/G)=256G,它是整個LVM最小的儲存塊,也就是說,檔案
資料都是由寫入PE來處理的。以下就是LVM的簡單架構:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/34/wKiom1Sr2Yjweji8AAI4WXREEzY908.jpg" title="QQ20150106204705.png" alt="wKiom1Sr2Yjweji8AAI4WXREEzY908.jpg" />
在資料寫入LV時,LVM有兩種實現方式:
a.線性模式(liner) 就是把其中一塊硬碟都使用完後,才使用另外一塊硬碟
b.交錯模式(triped) 把要儲存的資料分塊,第一塊寫入到LV中的第一個硬碟,第二塊寫入到LV
中的第二塊硬碟如此這樣,依次儲存,可以提升讀寫效能,但是注意此時只要出現一個硬碟損壞,那麼資料都會丟失,如果要提升讀寫效能還是使用RAID更佳。
LVM還可以實現動態調整容量,當空間不足時,可線上添加容量;當容量過大,也可以縮減容量。而且還提供了快照功能,能方便的實現備份。下面就來詳細講解他們的實現過程。
3.LVM的使用
實際上LVM使用的裝置是放置到/dev/mapper/目錄下的
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/31/wKioL1Sr4jHDvPy6AAINCe-vbhA655.jpg" title="QQ20150106212043.png" alt="wKioL1Sr4jHDvPy6AAINCe-vbhA655.jpg" />
PV,VG,LV他們各自都有一組命令
輸入pv按兩次tab鍵就可以看到以pv開頭的命令
[[email protected]_basic scripts]#pv
pvchange pvck pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan
其他vg,lv也是一樣
[[email protected]_basic scripts]#vg
vgcfgbackup vgck vgdisplay vgimport vgmknodes vgrename vgsplit
vgcfgrestore vgconvert vgexport vgimportclone vgreduce vgs
vgchange vgcreate vgextend vgmerge vgremove vgscan
[[email protected]_basic scripts]#lv
lvchange lvdisplay lvmchange lvmdump lvmsar lvrename lvscan
lvconvert lvextend lvmconf lvmetad lvreduce lvresize
lvcreate lvm lvmdiskscan lvmsadc lvremove lvs
這裡我們就說明使用pvcreate,vgcreata的格式
建立物理卷
pvcreate — initialize a disk or partition for use by LVM 初始化磁碟或分區使用LVM
pvcreate /dev/sd[a-z]|/dev/sd[a-z][1-9] ... 可跟多個磁碟或分區,注意此處使用的磁碟分割應該調整其系統標識符為8e,通過fdisk命令
建立卷組
vgcreate — create a volume group 建立一個卷組
vgcreate [-s PESIZE(pe的大小)] VolumeGroupName(卷組的名字) PhysicalDevicePath [PhysicalDevicePath...](指定剛建立的物理卷)
-s, --physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]
Sets the physical extent size on physical volumes of this volume group.
建立邏輯卷
lvcreate - create a logical volume in an existing volume group
lvcreate -n lvname -L # /dev/vgname
-n, --name LogicalVolume{Name|Path}
Sets the name for the new logical volume. 設定這個邏輯卷名
-L, --size LogicalVolumeSize[bBsSkKmMgGtTpPeE] 指定邏輯卷的大小,單位可以是K,M,G,T等
Gives the size to allocate for the new logical volume. A size suffix of B for bytes, S for sectors as 512 bytes, K for kilobytes, M for megabytes, G for gigabytes, T for terabytes, Pfor petabytes or E for exabytes is optional.
Default unit is megabytes. 預設單位
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/31/wKioL1Sr6Dvwj5PFAASCDhS_8Kk040.jpg" title="QQ20150106214636.png" alt="wKioL1Sr6Dvwj5PFAASCDhS_8Kk040.jpg" />
擴充邏輯卷,需要先擴充物理卷再擴充邏輯卷,可線上擴容
如何擴充邏輯卷:
a、先確定擴充的目標大小;並確保對應的卷組中有足夠的空閑空間可用;
b、擴充物理邊界 僅能在當前卷組中進行擴充
lvextend -L # /dev/vgname/lvname
c、擴充邏輯邊界
resize2fs /dev/vgname/lvname
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr6Z7QJJl-AAOuIE1X-_I051.jpg" title="QQ20150106215533.png" alt="wKiom1Sr6Z7QJJl-AAOuIE1X-_I051.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/31/wKioL1Sr68HAThjAAAfZWdIv35w648.jpg" title="QQ20150106220118.png" alt="wKioL1Sr68HAThjAAAfZWdIv35w648.jpg" />
[[email protected]_basic test]#df -hP /mnt/test
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lvm-test 4.9G 6.6M 4.7G 1% /mnt/test 擴充成功
[[email protected]_basic test]#du -sh /mnt/test
2.6M /mnt/test 擴充後內容為改變
縮減邏輯卷,需要先縮減邏輯卷在縮減物理卷
縮減很危險!!!!
縮減需要離線
a、先確定縮減後的目標大小;並確保對應的目標邏輯卷大小中有足夠的空間可容納原有所有資料;
b、先卸載檔案系統,並要執行強制檢測
e2fsck -f
c、縮減邏輯邊界
resize2fs DEVICE #
[[email protected]_basic ~]#resize2fs -help
resize2fs 1.41.12 (17-May-2010)
Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]
d、縮減物理邊界
lvreduce -L # /dev/vg_xx/xxx
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr7OCik2TAAATzhcMJr5I332.jpg" title="QQ20150106220905.png" alt="wKiom1Sr7OCik2TAAATzhcMJr5I332.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/35/wKiom1Sr7V-TXlZ2AAL8cinA82Q949.jpg" title="QQ20150106221146.png" alt="wKiom1Sr7V-TXlZ2AAL8cinA82Q949.jpg" />
建立快照卷:
lvcreate
-L #指定快照卷大小
-n 指定快照卷名字
-s 指定快照卷
-p r 唯讀
注意:快照卷是對某邏輯卷進行的,因此必須跟目標邏輯卷在同一個卷組中;無須指明卷組;
它只備份又被改動的資料,檔案系統內沒有被更改的資料依舊保持在原本的區塊內,但是LVM快照
功能會知道那些資料放置在哪裡,因此“快照”當時的檔案系統就得以“備份”下來,且快照所佔用的
容量又非常小。
由於快照區與原本的LV共用很多PE區塊,因此快照區與被快照的LV必須要在同一個VG上面。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr7qaSaBXoAAPrJx2AVDE307.jpg" title="QQ20150106221647.png" alt="wKiom1Sr7qaSaBXoAAPrJx2AVDE307.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/35/wKiom1Sr7x2xkMfZAARsyFnJr1g754.jpg" title="QQ20150106221902.png" alt="wKiom1Sr7x2xkMfZAARsyFnJr1g754.jpg" />
LV snapshot status active destination for test
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 64
COW-table size 512.00 MiB
COW-table LE 16
Allocated to snapshot 0.07%
快照區已經被使用了0.07%,因為原資料改變了
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
利用快照區恢複原系統
複原的系統資料量不能夠高於快照區所能負載的實際容量。由於未經處理資料會被
移到快照區,如果快照區不夠大,若未經處理資料被改動的實際資料量比快照區大,
那麼快照區當然容納不了,這時候快照功能會失效。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/35/wKiom1Sr78KT_XGvAAQqdHTeZiA499.jpg" title="QQ20150106222145.png" alt="wKiom1Sr78KT_XGvAAQqdHTeZiA499.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr8GfQt868AARWmU5i-4M248.jpg" title="QQ20150106222434.png" alt="wKiom1Sr8GfQt868AARWmU5i-4M248.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/35/wKiom1Sr8K2CvPi_AANCkZZKgrU182.jpg" title="QQ20150106222548.png" alt="wKiom1Sr8K2CvPi_AANCkZZKgrU182.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr8aCR9gIvAAYC5xOx3Hc755.jpg" title="QQ20150106222953.png" alt="wKiom1Sr8aCR9gIvAAYC5xOx3Hc755.jpg" />
本文出自 “快樂就好” 部落格,請務必保留此出處http://wdllife.blog.51cto.com/6615958/1599979
8.Linux的LVM使用詳解