LVM是Linux系統中對磁盤分區進行管理的一種邏輯機制,它是創建在硬盤和分區之上,文件系統之下的一個邏輯層,在創建文件系統時屏蔽下層的磁盤分區佈局,可以保持現有數據不變的狀況下動態調整磁盤容量,提升磁盤靈活性bash
在虛擬機中安裝一塊新硬盤,大小爲8Gapp
fdisk -l 識別系統中的磁盤設備ide
[root@localhost ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000b85f2 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2611 20458496 8e Linux LVM Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
而後對新硬盤設備/dev/sdb進行分區,設置大小並更改分區類型爲LVM工具
[root@localhost ~]# fdisk /dev/sdb ... Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1044, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM)
新建兩個分區並查看分區狀況佈局
Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xa5851005 Device Boot Start End Blocks Id System /dev/sdb1 1 262 2104483+ 8e Linux LVM /dev/sdb2 263 524 2104515 8e Linux LVM
w命令保存退出fdisk分區工具code
變動硬盤的分區設置後,建議將系統重啓,或者執行partprobe命令獲取新的分區狀況ci
[root@localhost ~]# partprobe /dev/sdb
創建pv、vg、lv。將lv空間大小設置爲3G,經過pvdisplay、vgdisplay、lvdisplay查看詳細信息虛擬機
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created [root@localhost ~]# vgcreate vg_xb /dev/sdb1 /dev/sdb2 Volume group "vg_xb" successfully created [root@localhost ~]# lvcreate -L 3G -n lv_xb vg_xb Logical volume "lv_xb" created.
建立文件系統(將lv空間格式化)it
[root@localhost ~]# mkfs.ext3 /dev/vg_xb/lv_xb
掛載文件系統,新建一個文件夾xb,將設備文件掛載到此目錄中io
[root@localhost ~]# mkdir /xb [root@localhost ~]# mount /dev/vg_xb/lv_xb /xb/
查看系統中掛載各文件系統的磁盤使用狀況,能夠看到新建的lv空間大小爲3G
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 2.5G 15G 15% / tmpfs 364M 0 364M 0% /dev/shm /dev/sda1 477M 36M 416M 8% /boot /dev/mapper/vg_xb-lv_xb 3.0G 69M 2.8G 3% /xb
然而當邏輯卷空間不足時,還須要從所在卷組中分割額外的空間給邏輯卷,前提是該卷組中有還沒有分配的空間不然先擴展卷組容量
此時,咱們lv的大小爲3G,vg大小爲4G,當咱們lv空間不足須要擴展時,能夠從vg剩餘部分中分割一部分給lv使用
◆想要增長lv空間的大小,先卸載文件系統,並使用e2fsck命令檢查文件系統的正確性
[root@localhost ~]# umount /xb/ [root@localhost ~]# e2fsck -f /dev/vg_xb/lv_xb
增長lv空間,增長300M,用lvdisplay查看lv大小變爲3.3G
[root@localhost ~]# lvextend -L +300M /dev/vg_xb/lv_xb
從新識別文件系統的大小
[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb
最後使用mount從新掛載文件系統,使用df -h命令顯示文件系統的大小爲3.3G
◆當lv空間須要縮減時,也須要先卸載文件系統並檢查文件系統的正確性
而後先縮減文件系統也就是格式化後的可用空間的大小
將文件系統的大小減少到2G
[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb 2G 而後再減少lv的空間,減少1G [root@localhost ~]# lvreduce -L -1G /dev/vg_xb/lv_xb WARNING: Reducing active logical volume to 2.29 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv_xb? [y/n]: y Size of logical volume vg_xb/lv_xb changed from 3.29 GiB (843 extents) to 2.29 GiB (587 extents). Logical volume lv_xb successfully resized
從新掛載文件系統
查看文件系統的大小和lv空間的大小,此時文件系統大小爲2G,lv空間大小爲3G
注意:
縮小後的lv空間容量必須大於等於文件系統的容量,不然會致使數據丟失。
縮小後的lv空間必須比已用空間大才能保證數據不會丟失