PV (物理卷): 能夠由硬盤或分區建立。(使用硬盤分區建立時PV時,若原分區已有文件系統,需將分區的id更改成8e,使用fdisk 命令中t選項修改)
VG(卷組): 由若干個PV組成,建立時候,需指定最小單元PE(物理擴展盤區)大小,並同時將指定的PV加入VG內做爲成員。
PE(Physical Extent): 物理區域是物理卷中可用於分配的最小存儲單元,物理區域大小在創建卷組時指定(如不指定默認大小是4MB),一旦肯定不能更改,同一卷組全部物理卷的物理區域大小需一致,新的pv加入到vg後,pe的大小自動更改成vg中定義的pe大小。LVM技術就是經過在VG中交換PE來實現LV的空間容量擴容或縮減的。
LV(邏輯卷): 在VG中劃分,由若干個PE組成的分區,能夠動態調整大小,其空間需小於或等於VG的最大空間。
LVM相關原理示意圖以下:node
pv管理工具centos
顯示pv信息 pvs:簡要pv信息顯示 pvdisplay:顯示pv詳細信息 建立pv pvcreate /dev/DEVICE 刪除pv pvremove /dev/DEVICE
vg管理工具app
顯示卷組 vgs vgdisplay 建立卷組 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 管理卷組 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 刪除卷組 先作pvmove,再作vgremove
lv管理工具dom
顯示邏輯卷 lvs Lvdisplay 建立邏輯卷 lvcreate -L #[mMgGtT] -n NAME VolumeGroup lvcreate -l 60%VG -n mylv testvg lvcreate -l 100%FREE -n yourlv testvg 刪除邏輯卷 lvremove /dev/VG_NAME/LV_NAME 重設文件系統大小 fsadm [options] resize device [new_size[BKMGTEP]] resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size] xfs_growfs /mountpoint
擴展和縮減邏輯卷ide
擴展邏輯卷: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME resize2fs /dev/VG_NAME/LV_NAME lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME 縮減邏輯卷: umount /dev/VG_NAME/LV_NAME e2fsck -f /dev/VG_NAME/LV_NAME resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME mount
建立邏輯卷示例工具
建立物理卷 pvcreate /dev/sda3 爲卷組分配物理卷 vgcreate vg0 /dev/sda3 從卷組建立邏輯卷 lvcreate -L 256M -n data vg0 mkfs.xfs /dev/vg0/data 掛載 mount /dev/vg0/data /mnt/data
跨主機遷移卷組url
源計算機上 1 在舊系統中,umount全部卷組上的邏輯卷 2 禁用卷組 vgchange –a n vg0 lvdisplay 3 導出卷組 vgexport vg0 pvscan vgdisplay 拆下舊硬盤 在目標計算機上 4 在新系統中安裝舊硬盤,並導入卷組:vgimport vg0 5 vgchange –ay vg0 啓用 6 mount全部卷組上的邏輯卷
邏輯卷管理器快照centos7
使用LVM快照 爲現有邏輯卷建立快照 lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data 掛載快照 mkdir -p /mnt/snap mount -o ro /dev/vg0/data-snapshot /mnt/snap 恢復快照 umount /dev/vg0/data-snapshot umount /dev/vg0/data lvconvert --merge /dev/vg0/data-snapshot 刪除快照 umount /mnt/databackup lvremove /dev/vg0/databackup
需求:原機器自帶一塊50G硬盤(設備名/dev/sda),使用LVM分區,先需將 / 分區擴展到100G。 步驟以下:spa
一、新增長一塊100G硬盤/dev/sdbcode
[root@localhost ~]#fdisk -l Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 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: 0x000b00a8 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 104857599 51379200 8e Linux LVM Disk /dev/mapper/centos-root: 50.5 GB, 50457477120 bytes, 98549760 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 /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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 /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 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
二、對新增長硬盤建立pv
[root@localhost ~]#pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created.
三、擴展原卷組
查看卷組信息
[root@localhost ~]#vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <49.00 GiB PE Size 4.00 MiB Total PE 12543 Alloc PE / Size 12542 / 48.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID I2rPlQ-7z6F-cbV4-vZZk-AK5v-u0FR-NmvCe2
擴展原卷組
[root@localhost ~]#vgextend centos /dev/sdb Volume group "centos" successfully extended
查看擴展後卷組信息
[root@localhost ~]#vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 148.99 GiB PE Size 4.00 MiB Total PE 38142 Alloc PE / Size 12542 / 48.99 GiB Free PE / Size 25600 / 100.00 GiB VG UUID I2rPlQ-7z6F-cbV4-vZZk-AK5v-u0FR-NmvCe2
四、擴展 / 分區所在的LV
查看當前:LV狀態
[root@localhost ~]#lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID 0fF8gI-m0lE-kYtz-ML43-5uaS-ze05-jJXBch LV Write Access read/write LV Creation host, time localhost, 2019-08-17 20:50:23 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID oM5Bcw-tgJ1-6k06-GCdk-sFx3-cy6E-xU3kJs LV Write Access read/write LV Creation host, time localhost, 2019-08-17 20:50:23 +0800 LV Status available # open 1 LV Size 46.99 GiB Current LE 12030 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0
由以上信息可知 / 分區所屬的LV爲/dev/centos/root
擴展/dev/centos/root 的空間到100G
[root@localhost ~]#lvextend -r -L +50G /dev/centos/root Size of logical volume centos/root changed from 46.99 GiB (12030 extents) to 96.99 GiB (24830 extents). Logical volume centos/root successfully resized. meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3079680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=12318720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=6015, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 12318720 to 25425920
至此,/ 分區 邏輯卷空間擴展完成。
<font color=#FF0000 size=3>注意:LVM的縮減,只能針對ext系列的文件系統,若是centos7系統默認使用xfs文件系統,LVM只能擴容,不能縮減。</font>
邏輯捲縮減操做步驟:
一、先備份數據(建議備份,不是必須,縮減lv大小有必定風險) 二、umount取消掛載(須要離線縮減) umount /dev/VG_NAME/LV_NAME 三、須要對文件系統作檢查,不然會因警告提示 fsck -f umount /dev/VG_NAME/LV_NAME 四、縮減文件系統到指定大小 resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] 五、縮減lv到指定大小 lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME 六、從新掛載lv到對應的掛載點 mount /dev/VG_NAME/LV_NAME /mountpoint
對現有邏輯卷(/dev/centos/root)建立快照
[root@localhost ~]#lvcreate -s -n root_snapshot -L 10G /dev/centos/root Logical volume "root_snapshot" created. [root@localhost ~]#
查看快照結果
[root@localhost ~]#lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID 0fF8gI-m0lE-kYtz-ML43-5uaS-ze05-jJXBch LV Write Access read/write LV Creation host, time localhost, 2019-08-17 20:50:23 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/data LV Name root VG Name centos LV UUID oM5Bcw-tgJ1-6k06-GCdk-sFx3-cy6E-xU3kJs LV Write Access read/write LV Creation host, time localhost, 2019-08-17 20:50:23 +0800 LV snapshot status source of root_snapshot [active] LV Status available # open 1 LV Size 96.99 GiB Current LE 24830 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 --- Logical volume --- LV Path /dev/centos/data_snapshot LV Name root_snapshot VG Name centos LV UUID CLDfvM-9paq-ea6H-Hz1C-BYPr-eiGF-7hmqFT LV Write Access read/write LV Creation host, time localhost.localdomain, 2019-08-18 12:34:31 +0800 LV snapshot status active destination for root LV Status available # open 0 LV Size 96.99 GiB Current LE 24830 COW-table size 10.00 GiB COW-table LE 2560 Allocated to snapshot 0.01% Snapshot chunk size 4.00 KiB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:4
新生成的 /dev/centos/data_snapshot 便是原來/dev/centos/data的快照備份
利用LVM快照恢復數據
<font color=#FF0000 size=2>注意:經過LVM快照方式恢復數據,必須先將原lv和快照lv先umont取消掛載,離線方式進行。</font>
一、將原lv與快照取消掛載 umount /dev/centos/data_snapshot umount /dev/centos/data 二、使用快照恢復原lv數據 [root@localhost ~]#lvconvert --merge /dev/centos/data_snapshot Delaying merge since origin is open. Merging of snapshot centos/root_snapshot will occur on next activation of centos/data.