LVM是 Logical Volume Manager(逻辑卷管理)的简写,可以理解为我们在不停机的状态下对各个分区大小进行动态调整,且调整过程中不会影响我们的数据。
LVM: Logical Volume Manager,Version:2,也是我们使用时的LVM2工具。
物理存储介质(PhysicalStorageMedia):指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
物理卷(Physical Volume,PV):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
物理块(Physical Extent,PE):每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
逻辑块(Logical Extent,LE):逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
简述即如下:
PV:物理磁盘分区
VG:所有PV组成一个大的VG才能被分区为LV
LV:VG中划分的逻辑单元
[root@wybaron_host1015 ~]# yum install -y lvm2* [root@wybaron_host1015 ~]# rpm -qa | grep lvm2lvm2-2.02.177-4.el7.x86_64lvm2-devel-2.02.177-4.el7.x86_64lvm2-sysvinit-2.02.177-4.el7.x86_64lvm2-libs-2.02.177-4.el7.x86_64lvm2-cluster-2.02.177-4.el7.x86_64lvm2-lockd-2.02.177-4.el7.x86_64lvm2-python-libs-2.02.177-4.el7.x86_64lvm2-python-boom-0.8.5-4.el7.noarch# PV创建前需要设置分区类型为8e ,分区类型8e表示为LVM分区[root@wybaron_host1015 ~]# fdisk /dev/sdc 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。 Device does not contain a recognized partition table使用磁盘标识符 0x3c3d1878 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): Using default response p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+4G分区 1 已设置为 Linux 类型,大小设为 4 GiB 命令(输入 m 获取帮助):nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): Using default response p分区号 (2-4,默认 2):起始 扇区 (8390656-41943039,默认为 8390656):将使用默认值 8390656Last 扇区, +扇区 or +size{K,M,G} (8390656-41943039,默认为 41943039):+4G分区 2 已设置为 Linux 类型,大小设为 4 GiB 命令(输入 m 获取帮助):nPartition type: p primary (2 primary, 0 extended, 2 free) e extendedSelect (default p): Using default response p分区号 (3,4,默认 3):起始 扇区 (16779264-41943039,默认为 16779264):将使用默认值 16779264Last 扇区, +扇区 or +size{K,M,G} (16779264-41943039,默认为 41943039):+5G分区 3 已设置为 Linux 类型,大小设为 5 GiB 命令(输入 m 获取帮助):nPartition type: p primary (3 primary, 0 extended, 1 free) e extendedSelect (default e): p已选择分区 4起始 扇区 (27265024-41943039,默认为 27265024):将使用默认值 27265024Last 扇区, +扇区 or +size{K,M,G} (27265024-41943039,默认为 41943039):+5G分区 4 已设置为 Linux 类型,大小设为 5 GiB 命令(输入 m 获取帮助):t分区号 (1-4,默认 4):1Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t分区号 (1-4,默认 4):2Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t分区号 (1-4,默认 4):3Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t分区号 (1-4,默认 4):Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):p 磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x3c3d1878 设备 Boot Start End Blocks Id System/dev/sdc1 2048 8390655 4194304 8e Linux LVM/dev/sdc2 8390656 16779263 4194304 8e Linux LVM/dev/sdc3 16779264 27265023 5242880 8e Linux LVM/dev/sdc4 27265024 37750783 5242880 8e Linux LVM 命令(输入 m 获取帮助):wThe partition table has been altered! Calling ioctl() to re-read partition table.正在同步磁盘。# 通知内核识别分区[root@wybaron_host1015 ~]# partx -a /dev/sdcpartx: /dev/sdc: error adding partitions 1-4[root@wybaron_host1015 ~]# partx -a /dev/sdcpartx: /dev/sdc: error adding partitions 1-4pvs 显示pv的简要信息pvdisplay 显示pv的详细信息pvcreate /dev/DEVICE 创建pvpvmove /dev/DEVICE1 /dev/DEVICE2 移动/dev/DEVICE1上的数据至/dev/DEVICE2上# 查看系统已有pv信息[root@wybaron_host1015 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 [root@wybaron_host1015 ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <19.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4863 Free PE 0 Allocated PE 4863 PV UUID f4PO9R-OTuL-2Biq-4sSJ-Ua6S-eCoR-xeFygM# 创建一些新的pv并查看其信息[root@wybaron_host1015 ~]# ls /dev/sdc[0-9]/dev/sdc1 /dev/sdc2 /dev/sdc3 /dev/sdc4[root@wybaron_host1015 ~]# pvcreate /dev/sdc[1-3] Physical volume "/dev/sdc1" successfully created. Physical volume "/dev/sdc2" successfully created. Physical volume "/dev/sdc3" successfully created.[root@wybaron_host1015 ~]# pvs /dev/sdc[1-3] PV VG Fmt Attr PSize PFree /dev/sdc1 lvm2 --- 4.00g 4.00g /dev/sdc2 lvm2 --- 4.00g 4.00g /dev/sdc3 lvm2 --- 5.00g 5.00g[root@wybaron_host1015 ~]# pvdisplay /dev/sdc[1-3] "/dev/sdc2" is a new physical volume of "4.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc2 VG Name PV Size 4.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID yMBIbO-CpCo-XZ5t-nJlT-ATUD-VaVl-X4PFSV "/dev/sdc3" is a new physical volume of "5.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc3 VG Name PV Size 5.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Z340dn-Jsbz-Fb6O-bKex-teRn-eO4X-wbyO19 "/dev/sdc1" is a new physical volume of "4.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 4.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID JfuURa-lECT-6vWJ-b2CY-41un-JDN9-YahCf4vgs 显示vg简要信息vgdisplay 显示vg的详细信息vgcreate [-s #[kKmMgGtTpPeE]] VG_name PV_names 创建一个新的vgvgextend VG_name PV_name[s] 添加一个或多个新的pv至已有vg中vgremove VG_name 彻底删除一个VG,但是需要注意其中的数据vgreduce VG_name PV_name[s] 从已有vg中移除一个或多个pv注意:要从一个卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命令察看一个该物理卷信息,如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据备份到其它地方。## 即从已有vg中移除一个或多个pv前首先要做 pvmove# 查看系统已有vg信息[root@wybaron_host1015 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 [root@wybaron_host1015 ~]# 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 <19.00 GiB PE Size 4.00 MiB Total PE 4863 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 0 / 0 VG UUID 3HBCQo-w7ct-PQw9-tasA-dkCZ-MBSg-UMqiPR# 创建一些新的vg并查看其信息[root@wybaron_host1015 ~]# vgcreate -s 16m VG_data /dev/sdc[1-3] Volume group "VG_data" successfully created[root@wybaron_host1015 ~]# vgs VG_data VG #PV #LV #SN Attr VSize VFree VG_data 3 0 0 wz--n- 12.95g 12.95g[root@wybaron_host1015 ~]# vgdisplay VG_data --- Volume group --- VG Name VG_data System ID Format lvm2 Metadata Areas 3 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 3 Act PV 3 VG Size 12.95 GiB PE Size 16.00 MiB Total PE 829 Alloc PE / Size 0 / 0 Free PE / Size 829 / 12.95 GiB VG UUID N2x9N0-E8bo-aJND-hVic-yFRJ-DezU-1ec31jlvs 显示lv的简要信息lvdisplay 显示lv的详细信息lvcreate -L #[mMgGtT] -n LV_name VG_name 在已有的VG上创建一个名为LV_name的lvlvremove /dev/VG_name/LV_name 删除VG_name上的LV_name # 查看系统已有lv信息[root@wybaron_host1015 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- <17.00g swap centos -wi-ao---- 2.00g [root@wybaron_host1015 ~]# lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID DCXYpR-iqGL-9jfh-gd8W-AC6t-hbVy-O0A2vL LV Write Access read/write LV Creation host, time node1.localdomain, 2018-07-27 17:30:21 +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 zXwvOU-zhfB-jTc3-gbBM-mgZR-mckN-B3kA9r LV Write Access read/write LV Creation host, time node1.localdomain, 2018-07-27 17:30:21 +0800 LV Status available # open 1 LV Size <17.00 GiB Current LE 4351 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0# 创建一些新的lv并查看其信息[root@wybaron_host1015 ~]# lvcreate -L 7g -n web1 VG_data Logical volume "web1" created.[root@wybaron_host1015 ~]# lvcreate -L 3g -n web2 VG_data Logical volume "web2" created. [root@wybaron_host1015 ~]# lvs VG_data LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert web1 VG_data -wi-a----- 7.00g web2 VG_data -wi-a----- 3.00g [root@wybaron_host1015 ~]# lvdisplay VG_data --- Logical volume --- LV Path /dev/VG_data/web1 LV Name web1 VG Name VG_data LV UUID z22ARK-VpMU-oU2S-naPa-MfQ9-PWhP-gMS99x LV Write Access read/write LV Creation host, time wybaron_host1015, 2018-10-11 13:19:56 +0800 LV Status available # open 0 LV Size 7.00 GiB Current LE 448 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 --- Logical volume --- LV Path /dev/VG_data/web2 LV Name web2 VG Name VG_data LV UUID CLcfCe-6gJb-WhPv-FGKN-ujL3-4YSy-9Psghs LV Write Access read/write LV Creation host, time wybaron_host1015, 2018-10-11 13:20:06 +0800 LV Status available # open 0 LV Size 3.00 GiB Current LE 192 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:3# 建立文件系统[root@wybaron_host1015 data]# mkfs.ext4 /dev/VG_data/web1 webweb1root/ web2root/ [root@wybaron_host1015 data]# mkfs.ext4 /dev/VG_data/webweb1 web2 [root@wybaron_host1015 data]# mkfs.ext4 /dev/VG_data/web1mke2fs 1.42.9 (28-Dec-2013)文件系统标签=OS type: Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks458752 inodes, 1835008 blocks91750 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=187904819256 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成Writing superblocks and filesystem accounting information: 完成 [root@wybaron_host1015 data]# mkfs.ext3 /dev/VG_data/web2mke2fs 1.42.9 (28-Dec-2013)文件系统标签=OS type: Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks196608 inodes, 786432 blocks39321 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=80530636824 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (16384 blocks): 完成Writing superblocks and filesystem accounting information: 完成 # 建立挂载点[root@wybaron_host1015 data]# mkdir /data/web1root[root@wybaron_host1015 data]# mkdir /data/web2root # 挂载并使用[root@wybaron_host1015 data]# mount /dev/VG_data/web1 /data/web1root/[root@wybaron_host1015 data]# mount /dev/VG_data/web2 /data/web2root/ ## 需要开机自启动需要将挂载信息写入文件"/etc/fstab"中 # 查看空间大小[root@wybaron_host1015 data]# df -h /data/web1root/文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VG_data-web1 6.8G 32M 6.4G 1% /data/web1root[root@wybaron_host1015 data]# df -h /data/web2root/文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VG_data-web2 2.9G 4.6M 2.8G 1% /data/web2root lvextend -L [+]#[mMgGtT] /dev/VG_name/LV_name 扩展逻辑卷的物理边界resize2fs /dev/VG_name/LV_name 扩展逻辑边界(文件系统)# 使用时应先扩展个物理边界,再扩展逻辑边界## 将上述中的"web1root"文件夹空间扩展至5G[root@wybaron_host1015 data]# lvextend -L +2g /dev/VG_data/web2 Size of logical volume VG_data/web2 changed from 3.00 GiB (192 extents) to 5.00 GiB (320 extents). Logical volume VG_data/web2 successfully resized.[root@wybaron_host1015 data]# resize2fs /dev/VG_data/web2resize2fs 1.42.9 (28-Dec-2013)Filesystem at /dev/VG_data/web2 is mounted on /data/web2root; on-line resizing requiredold_desc_blocks = 1, new_desc_blocks = 1The filesystem on /dev/VG_data/web2 is now 1310720 blocks long. [root@wybaron_host1015 data]# lvs /dev/VG_data/web2 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert web2 VG_data -wi-ao---- 5.00g [root@wybaron_host1015 data]# lvdisplay /dev/VG_data/web2 --- Logical volume --- LV Path /dev/VG_data/web2 LV Name web2 VG Name VG_data LV UUID CLcfCe-6gJb-WhPv-FGKN-ujL3-4YSy-9Psghs LV Write Access read/write LV Creation host, time wybaron_host1015, 2018-10-11 13:20:06 +0800 LV Status available # open 1 LV Size 5.00 GiB Current LE 320 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:3 [root@wybaron_host1015 data]# df -h /data/web2root/文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VG_data-web2 4.9G 6.1M 4.7G 1% /data/web2rootumount /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 再次挂载# 缩减上述文件夹"/data/web1root"总空间为4G大小[root@wybaron_host1015 ~]# umount /data/web1root/###或者################# [root@wybaron_host1015 ~]# umount /dev/VG_data/web1####################[root@wybaron_host1015 ~]# e2fsck -f /dev/VG_data/web1e2fsck 1.42.9 (28-Dec-2013)第一步: 检查inode,块,和大小第二步: 检查目录结构第3步: 检查目录连接性Pass 4: Checking reference counts第5步: 检查簇概要信息/dev/VG_data/web1: 11/458752 files (0.0% non-contiguous), 69631/1835008 blocks[root@wybaron_host1015 ~]# resize2fs /dev/VG_data/web1 4gresize2fs 1.42.9 (28-Dec-2013)Resizing the filesystem on /dev/VG_data/web1 to 1048576 (4k) blocks.The filesystem on /dev/VG_data/web1 is now 1048576 blocks long. [root@wybaron_host1015 ~]# lvreduce -L -3g /dev/VG_data/web1 WARNING: Reducing active logical volume to 4.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce VG_data/web1? [y/n]: y Size of logical volume VG_data/web1 changed from 7.00 GiB (448 extents) to 4.00 GiB (256 extents). Logical volume VG_data/web1 successfully resized.[root@wybaron_host1015 ~]# mount /dev/VG_data/web1 /data/web1root/[root@wybaron_host1015 ~]# df -h /data/web1root/文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/VG_data-web1 3.9G 28M 3.6G 1% /data/web1rootumount /dev/VG_name/LV_name[s] 卸载挂载的lvlvremove /dev/VG_name/LV_name[s] 删除VG_name下的lvvgremove VG_name 删除vgpvremove /dev/DEVICE[S] 删除pv# 彻底删除上述建立的VG_data[root@wybaron_host1015 ~]# umount /dev/VG_data/web{1,2}[root@wybaron_host1015 ~]# lvremove /dev/VG_data/web{1,2}Do you really want to remove active logical volume VG_data/web1? [y/n]: y Logical volume "web1" successfully removedDo you really want to remove active logical volume VG_data/web2? [y/n]: y Logical volume "web2" successfully removed[root@wybaron_host1015 ~]# vgremove VG_data Volume group "VG_data" successfully removed[root@wybaron_host1015 ~]# pvremove /dev/sdb[1-3] Device /dev/sdb1 excluded by a filter. Device /dev/sdb2 excluded by a filter. Device /dev/sdb3 excluded by a filter.[root@wybaron_host1015 ~]# pvremove /dev/sdc[1-3] Labels on physical volume "/dev/sdc1" successfully wiped. Labels on physical volume "/dev/sdc2" successfully wiped. Labels on physical volume "/dev/sdc3" successfully wiped.[root@wybaron_host1015 ~]# pvs /dev/sdc[1-3] Failed to find physical volume "/dev/sdc1". Failed to find physical volume "/dev/sdc2". Failed to find physical volume "/dev/sdc3".[root@wybaron_host1015 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 [root@wybaron_host1015 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- <17.00g swap centos -wi-ao---- 2.00g 
光盘设备一般挂载的方式为只读方式进行挂载。
光盘设备文件:IDE:/dev/hdcSATA:/dev/sr0 符号链接文件: /dev/cdrom /dev/cdrw /dev/dvd /dev/dvdrw挂载方式(只读挂载)mount -r /dev/cdrom /media/cdrom卸载方式umount /dev/cdrom免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删