在Linux系统规划管理中,存储管理是一个非常重要的方面。日常运维过程中,两个方面的现实要求经常围绕这一个过程:动态空间管理和零散的存储硬件资源。
和Windows不同,Linux存储目录结构和磁盘结构是分离的。各个磁盘设备是被“装载mount”到指定的mount point上,我们经常可以看到一个“目录”的空间是多大。但是,存储是动态变化的过程。一个目录现在留足1G空间就够了,但是日后难保不会有2G的需要。如果使用传统的一些方法,变化过程就是比较复杂的。
另一方面,多年的信息化给企业信息中心遗留下存储设备通常是零散、大小不一的。往往需要一个目录空间很大,但是只有一些零散的小存储盘。如何整合这些零散存储资源,对操作系统管理而言是一个问题。
在Linux环境中,一种存储池“Storage Pool”机制的技术,就可以帮助我们进行存储资源的管理和调整。LVM(Logical Volume Manager)逻辑卷管理器是Linux提供的逻辑存储池。
RHCE125_135之LVM http://www.linuxidc.com/Linux/2014-05/101050.htm
Ubuntu 12.04 KVM之VM动态迁移-基于LVM http://www.linuxidc.com/Linux/2014-04/99894.htm
RHCE认证笔记:LVM实验 http://www.linuxidc.com/Linux/2014-04/99685.htm
MySQL管理之基于LVM实现几乎热备 http://www.linuxidc.com/Linux/2014-04/99672.htm
Linux系统管理之LVM案例 http://www.linuxidc.com/Linux/2014-02/96987.htm
Linux系统中对逻辑卷(LVM)的实现 http://www.linuxidc.com/Linux/2014-01/95004.htm
1、LVM概述
在LVM中,有几个概念需要了解熟悉。
PV(Physical Volume)物理卷就是实际对应的物理存储设备。我们最常见的就是磁盘分区等存储设备。传统的存储管理方式是将物理设备格式化后,就直接mount到一个目录上。在LVM中,PV是一个基础物理单位,也是存储池的基本组成部分。存储分区要成为PV,需要调用LVM命令方法,在分区中记录相应的元数据信息。
LVG(Logical Volume Group)逻辑卷组是LVM的重要组成部分。从结构上看,LVG位于PV和LV(Logical Volume)的中间,也是Linux存储池的核心。若干个PV可以组成一个LVG。在分配LV(Logical Volume)的时候,也是在一个特定的LVG上进行分配,和PV的对应关系是通过LVM进行自动的管理对应。
LV(Logical Volume)逻辑卷是建立在LVG基础上的分配空间。LV是从LVG的基础上进行分配的,本质上是通过软件方法进行管理的空间组。正是由于通过LVM控制,我们可以实现动态的LV大小调整,从存储池中进行空间补充、回收。注意:LV适合LVG对应的,一个LV对操作系统和我们而言,是一个独立的存储空间。但是实质上,一个LV可能是一个PV的部分空间,也可能是跨多个PV。
下图摘自Red Hat的网站资料(http://www.RedHat.com/magazine/009jul05/features/lvm2/),详细说明了LVM几个核心概念的关系。
下面介绍一下PE和LE。PE(Physical Extents)是PV的基本组成。每一个PV都是通过多个固定大小尺寸的PE组成。而LE(Logical Extent)与LV的关系类似,一个LV由多个固定大小的LE组成。目前LVM版本下,PE和LE的大小是相同的(注意!),默认都是4M。
PE和LE的机制就解决了LV横跨多个PV的对应问题。LVG解决的就是LE和PE对应问题。
在Linux中管理LVM主要通过LVM管理工具和Linux内核支持。目前我们常见的Linux版本中,逻辑卷功能已经非常成熟。下面我们通过实验介绍一下最基本的LVM使用。
2、环境准备和配置
我们选择Linux 2.6内核版本进行试验,也就是redhat 5.3。
[root@SimpleLinux ~]# uname -r
2.6.18-128.el5
使用LVM,要求内核中支持LVM,并且安装了LVM管理相关的rpm包。我们可以使用rpm –qa进行验证。
[root@SimpleLinux ~]# rpm -qa | grep lvm
system-config-lvm-1.1.5-1.0.el5
lvm2-2.02.40-6.el5
此时系统中,存储环境如下:
[root@SimpleLinux ~]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
[root@SimpleLinux ~]# fdisk -l
Disk /dev/sda: 54.3 GB, 54390718464 bytes
255 heads, 63 sectors/track, 6612 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device BootStartEndBlocksIdSystem
/dev/sda1*1642051568618+83Linux
/dev/sda2642166111534207+82Linux swap / Solaris
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device BootStartEndBlocksIdSystem
/dev/sdb1110458388607+8eLinux LVM
Disk /dev/sdc: 11.3 GB, 11331395584 bytes
255 heads, 63 sectors/track, 1377 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn’t contain a valid partition table
当前系统中包括三个盘,sda-c。其中sda已经被使用,我们在sdb和sdc上进行试验。为了便于样式,我们将sdc进行进一步格式化,分割为五个分区。
[root@SimpleLinux ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won’t be recoverable.
The number of cylinders for this disk is set to 1377.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1377, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1377, default 1377): +2000M
(篇幅原因,省略部分……)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@SimpleLinux ~]# fdisk -l
Disk /dev/sda: 54.3 GB, 54390718464 bytes
255 heads, 63 sectors/track, 6612 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device BootStartEndBlocksIdSystem
/dev/sda1*1642051568618+83Linux
/dev/sda2642166111534207+82Linux swap / Solaris
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device BootStartEndBlocksIdSystem
/dev/sdb1110458388607+8eLinux LVM
Disk /dev/sdc: 11.3 GB, 11331395584 bytes
255 heads, 63 sectors/track, 1377 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device BootStartEndBlocksIdSystem
/dev/sdc112441959898+83Linux
/dev/sdc2245488195993083Linux
/dev/sdc3489732195993083Linux
/dev/sdc473313775180962+5Extended
/dev/sdc57339761959898+83Linux
/dev/sdc69771377322100183Linux
下面就可以进行逻辑卷实验。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-05/101880p2.htm
3、LVM基础配置试验
LVM配置主要是通过LVM命令台和工具命令来实现的。通过lvm的帮助功能,我们能看到对lv、vg和pv的管理命令。
[root@SimpleLinux ~]# lvm
lvm> help
Available lvm commands:
Use ‘lvm help <command>’ for more information
dumpconfigDump active configuration
formatsList available metadata formats
helpDisplay help for commands
lvchangeChange the attributes of logical volume(s)
lvconvertChange logical volume layout
lvcreateCreate a logical volume
lvdisplayDisplay information about a logical volume
lvextendAdd space to a logical volume
lvmchangeWith the device mapper, this is obsolete and does nothing.
lvmdiskscanList devices that may be used as physical volumes
lvmsadcCollect activity data
lvmsarCreate activity report
lvreduceReduce the size of a logical volume
lvremoveRemove logical volume(s) from the system
lvrenameRename a logical volume
lvresizeResize a logical volume
lvsDisplay information about logical volumes
lvscanList all logical volumes in all volume groups
pvchangeChange attributes of physical volume(s)
pvresizeResize physical volume(s)
pvckCheck the consistency of physical volume(s)
pvcreateInitialize physical volume(s) for use by LVM
pvdataDisplay the on-disk metadata for physical volume(s)
pvdisplayDisplay various attributes of physical volume(s)
pvmoveMove extents from one physical volume to another
pvremoveRemove LVM label(s) from physical volume(s)
pvsDisplay information about physical volumes
pvscanList all physical volumes
segtypesList available segment types
vgcfgbackupBackup volume group configuration(s)
vgcfgrestoreRestore volume group configuration
vgchangeChange volume group attributes
vgckCheck the consistency of volume group(s)
vgconvertChange volume group metadata format
vgcreateCreate a volume group
vgdisplayDisplay volume group information
vgexportUnregister volume group(s) from the system
vgextendAdd physical volumes to a volume group
vgimportRegister exported volume group with system
vgmergeMerge volume groups
vgmknodesCreate the special files for volume group devices in /dev
vgreduceRemove physical volume(s) from a volume group
vgremoveRemove volume group(s)
vgrenameRename a volume group
vgsDisplay information about volume groups
vgscanSearch for all volume groups
vgsplitMove physical volumes into a new or existing volume group
versionDisplay software and driver version information
lvm>
注意:lvm虽然提供了控制台接口,但是直接敲命令Linux也是支持的。
[root@SimpleLinux /]# pvscan
No matching physical volumes found
虽然命令行很多,但是基本上lvm的命令还有很强的规律性。lv开头的都是对logical volume的操作,vg是对logical volume group,而pv是针对phyiscal volume的操作。
创建使用LVM,我们需要从最底层的PV进行构建管理。首先,我们需要创建最底层的Phsical Volume。
–pvcreate命令创建PV
[root@SimpleLinux /]# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created
–显示信息
[root@SimpleLinux /]# pvscan
PV /dev/sdb1lvm2 [8.00 GB]
Total: 1 [8.00 GB] / in use: 0 [0] / in no VG: 1 [8.00 GB]
[root@SimpleLinux /]# pvcreate /dev/sdc1
Physical volume “/dev/sdc1” successfully created
[root@SimpleLinux /]# pvcreate /dev/sdc2
Physical volume “/dev/sdc2” successfully created
[root@SimpleLinux /]# pvcreate /dev/sdc3
Physical volume “/dev/sdc3” successfully created
[root@SimpleLinux /]# pvcreate /dev/sdc5
Physical volume “/dev/sdc5” successfully created
[root@SimpleLinux /]# pvcreate /dev/sdc6
Physical volume “/dev/sdc6” successfully created
[root@SimpleLinux /]# pvscan
PV /dev/sdb1lvm2 [8.00 GB]
PV /dev/sdc1lvm2 [1.87 GB]
PV /dev/sdc2lvm2 [1.87 GB]
PV /dev/sdc3lvm2 [1.87 GB]
PV /dev/sdc5lvm2 [1.87 GB]
PV /dev/sdc6lvm2 [3.07 GB]
Total: 6 [18.55 GB] / in use: 0 [0] / in no VG: 6 [18.55 GB]
[root@SimpleLinux /]#
使用pvs可以显示出当前可用的Physical Volume情况。
[root@SimpleLinux /]# pvs
PVVGFmtAttr PSize PFree
/dev/sdb1lvm2 –8.00G 8.00G
/dev/sdc1lvm2 –1.87G 1.87G
/dev/sdc2lvm2 –1.87G 1.87G
/dev/sdc3lvm2 –1.87G 1.87G
/dev/sdc5lvm2 –1.87G 1.87G
/dev/sdc6lvm2 –3.07G 3.07G
底层PV创建完成之后,就可以创建Logical Volume Group。
[root@SimpleLinux /]# vgcreate VolGrp01 /dev/sdb1 /dev/sdc1
Volume group “VolGrp01” successfully created
[root@SimpleLinux /]# vgs
VG#PV #LV #SN AttrVSize VFree
VolGrp01200 wz–n- 9.86G 9.86G
[root@SimpleLinux /]# vgcreate VolGrp02 /dev/sdc2 /dev/sdc3
Volume group “VolGrp02” successfully created
[root@SimpleLinux /]# vgs
VG#PV #LV #SN AttrVSize VFree
VolGrp01200 wz–n- 9.86G 9.86G
VolGrp02200 wz–n- 3.73G 3.73G
[root@SimpleLinux /]# vgdisplay
— Volume group —
VG NameVolGrp02
System ID
Formatlvm2
Metadata Areas2
Metadata Sequence No1
VG Accessread/write
VG Statusresizable
MAX LV0
Cur LV0
Open LV0
Max PV0
Cur PV2
Act PV2
VG Size3.73 GB
PE Size4.00 MB
Total PE956
Alloc PE / Size0 / 0
FreePE / Size956 / 3.73 GB
VG UUIDgfB8C3-80Ym-eEO5-L12p-8vdS-GWxy-t1QgWx
— Volume group —
VG NameVolGrp01
System ID
Formatlvm2
Metadata Areas2
Metadata Sequence No1
VG Accessread/write
VG Statusresizable
MAX LV0
Cur LV0
Open LV0
Max PV0
Cur PV2
Act PV2
VG Size9.86 GB
PE Size4.00 MB
Total PE2525
Alloc PE / Size0 / 0
FreePE / Size2525 / 9.86 GB
VG UUIDSDx5QB-7t14-RFrk-FUkK-1M43-4sNe-LFljgm
创建了两个LVG对象,每个LVG中包括两个分区PV。VolGrp01和VolGrp02为我们创建出的存储池。在其中,我们可以创建控制大小的Logical Volume。
[root@SimpleLinux /]# lvcreate -n lv1 -L +100M VolGrp01
Logical volume “lv1” created
[root@SimpleLinux /]# lvs
LVVGAttrLSizeOrigin Snap%Move Log Copy%Convert
lv1VolGrp01 -wi-a- 100.00M
注意下lvcreate参数,-n表示创建lv的名称,-L表示补充大小。最后一个参数表示在哪个LVG中进行分配。这个分配动作是动态过程。创建了lv1之后,就可以将其作为一个存储进行单独使用。
最后,我们可以格式化lv1,进行分配。
[root@SimpleLinux ~]# mkfs -t ext3 /dev/VolGrp01/lv1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.Use tune2fs -c or -i to override.
最后,我们可以加载mount到一个目录上。
[root@SimpleLinux /]# mkdir /voltest01
[root@SimpleLinux /]# ls -l | grep vol
drwxr-xr-x2 rootroot4096 Oct9 12:30 voltest01
[root@SimpleLinux VolGrp01]# mount /dev/VolGrp01/lv1 /voltest01
[root@SimpleLinux VolGrp01]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M1.6M91M2% /voltest01
使用dd命令,测试/voltest01目录的可用性。
[root@SimpleLinux VolGrp01]# cd /voltest01/
[root@SimpleLinux voltest01]# ls -l
total 12
drwx—— 2 root root 12288 Oct9 12:34 lost+found
[root@SimpleLinux voltest01]# dd if=/dev/zero f=/voltest01/res bs=1024 count=1000
1000+0 records in
1000+0 records out
1024000 bytes (1.0 MB) copied, 0.00376333 seconds, 272 MB/s
[root@SimpleLinux voltest01]# ls -l
total 1017
drwx—— 2 root root12288 Oct9 12:34 lost+found
-rw-r–r– 1 root root 1024000 Oct9 12:36 res
添加目录和加载成功。最后一个问题是,我们加载mount是手工过程,需要修改/etc/fstab,来实现自动添加。在下次reboot系统时候,就可以实现自动加载Logical Volume了。
[root@SimpleLinux ~]# blkid
/dev/sda2: TYPE=”swap” LABEL=”SWAP-sda2″
/dev/sda1: LABEL=”/” UUID=”36e661fb-e9ef-4583-8fc9-422b00009016″ TYPE=”ext3″ SEC_TYPE=”ext2″
/dev/cdrom: LABEL=”RHEL/5.3 i386 DVD” TYPE=”iso9660″
/dev/VolGrp01/lv1: UUID=”5e007a89-326d-4a71-9744-8cd7d36a90a7″ SEC_TYPE=”ext2″ TYPE=”ext3″
/dev/mapper/VolGrp01-lv1: UUID=”5e007a89-326d-4a71-9744-8cd7d36a90a7″ SEC_TYPE=”ext2″ TYPE=”ext3″
[root@SimpleLinux ~]# cat /etc/fstab
LABEL=//ext3defaults1 1
tmpfs/dev/shmtmpfsdefaults0 0
devpts/dev/ptsdevptsgid=5,mode=6200 0
sysfs/syssysfsdefaults0 0
proc/procprocdefaults0 0
UUID=”5e007a89-326d-4a71-9744-8cd7d36a90a7″/voltest01ext3defaults1 1
LABEL=SWAP-sda2swapswapdefaults0 0
重新reboot之后,依然加载成功。
[root@SimpleLinux ~]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M5.6M87M7% /voltest01
下面我们测试一下LVM的调整功能。
上篇中我们讨论LVM的基本原理和操作,本篇我们继续来演示LVM的常用操作。
4、Logical Volume拓展实验
LVM技术最大的特点在于灵活配置,Logical Volume可以从存储池中动态的进行空间分配和变化。比较常用的做法是分配一个LV给指定的mount point之后,由于数据的变化进行容量管理。
当前logical volume如下:
[root@SimpleLinux voltest01]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M6.6M86M8% /voltest01
如果需要进行空间拓展,可以使用lvextend命令。
[root@SimpleLinux voltest01]# lvextend -L +100M /dev/VolGrp01/lv1
Extending logical volume lv1 to 200.00 MB
Logical volume lv1 successfully resized
[root@SimpleLinux voltest01]# lvs
LVVGAttrLSizeOrigin Snap%Move Log Copy%Convert
lv1VolGrp01 -wi-ao 200.00M
此时,LVM已经认可lv1容量增加到200M。但是,df文件系统似乎没有认可。
[root@SimpleLinux voltest01]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv1
97M6.6M 86M8% /voltest01
注意:使用lvm要注意和File System的匹配问题。一些时候处理故障,就是由于两者关系没有处理好。此时需要使用resize2fs进行同步。
[root@SimpleLinux voltest01]# resize2fs /dev/VolGrp01/lv1
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGrp01/lv1 is mounted on /voltest01; on-line resizing required
Performing an on-line resize of /dev/VolGrp01/lv1 to 204800 (1k) blocks.
The filesystem on /dev/VolGrp01/lv1 is now 204800 blocks long.
[root@SimpleLinux voltest01]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv1
194M6.6M178M4% /voltest01
我们再次实验进行缩小。当前logical volume的情况如下:
[root@SimpleLinux ~]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G 23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv2
985M18M918M2% /voltest2
我们试图将/voltest2对应的logical volume进行缩减。首先需要进行umount动作,之后进行结构调整,最后使用resize2fs进行调整。
[root@SimpleLinux ~]# umount /dev/VolGrp01/lv2
[root@SimpleLinux ~]# e2fsck -f /dev/VolGrp01/lv2
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VolGrp01/lv2: 11/128000 files (9.1% non-contiguous), 8444/256000 blocks
[root@SimpleLinux ~]# resize2fs /dev/VolGrp01/lv2 600M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/VolGrp01/lv2 to 153600 (4k) blocks.
The filesystem on /dev/VolGrp01/lv2 is now 153600 blocks long.
上面操作保证了文件系统file system的resize动作。同时还需要进行额外的Logical Volume Resize动作。
[root@SimpleLinux ~]# lvs
LVVGAttrLSizeOrigin Snap%Move Log Copy%Convert
lv1VolGrp01 -wi-a-192.00M
lv2VolGrp01 -wi-a- 1000.00M
[root@SimpleLinux ~]# lvreduce -L 600M /dev/VolGrp01/lv2
WARNING: Reducing active logical volume to 600.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv2? [y/n]: y
Reducing logical volume lv2 to 600.00 MB
Logical volume lv2 successfully resized
[root@SimpleLinux ~]# lvs
LVVGAttrLSizeOrigin Snap%Move Log Copy%Convert
lv1VolGrp01 -wi-a- 192.00M
lv2VolGrp01 -wi-a- 600.00M
最后将目录加载。
[root@SimpleLinux ~]# mount /dev/VolGrp01/lv2 /voltest2
[root@SimpleLinux ~]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda148G11G35G23% /
tmpfs449M0449M0% /dev/shm
/dev/mapper/VolGrp01-lv2
591M17M544M3% /voltest2
5、Logical Volume Group管理
Logical Volume Group就是虚拟的存储池,所有的Logical Volume就在其上进行分配动作。但Group空间不足的时候,就可以进行动态PV(Physical Volume)的添加管理。
—查看当前的volume group对象
[root@SimpleLinux voltest01]# vgs
VG#PV #LV #SN AttrVSize VFree
VolGrp01210 wz–n- 9.86G 9.67G
VolGrp02200 wz–n- 3.73G 3.73G
—查看当前的physical volume对象
[root@SimpleLinux voltest01]# pvs
PVVGFmtAttr PSize PFree
/dev/sdb1VolGrp01 lvm2 a-8.00G 7.80G
/dev/sdc1VolGrp01 lvm2 a-1.87G 1.87G
/dev/sdc2VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc3VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc5lvm2 –1.87G 1.87G
/dev/sdc6lvm2 –3.07G 3.07G
使用vgextend命令可以进行拓展。
[root@SimpleLinux voltest01]# vgextend VolGrp01 /dev/sdc5
Volume group “VolGrp01” successfully extended
[root@SimpleLinux voltest01]# vgs
VG#PV #LV #SN AttrVSizeVFree
VolGrp01310 wz–n- 11.73G 11.54G
VolGrp02200 wz–n-3.73G3.73G
[root@SimpleLinux voltest01]# pvs
PVVGFmtAttr PSize PFree
/dev/sdb1VolGrp01 lvm2 a-8.00G 7.80G
/dev/sdc1VolGrp01 lvm2 a-1.87G 1.87G
/dev/sdc2VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc3VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc5VolGrp01 lvm2 a-1.87G 1.87G
/dev/sdc6lvm2 –3.07G 3.07G
同样,需要进行剔除的时候,也是使用vgreduce命令进行。
[root@SimpleLinux ~]# vgreduce VolGrp01 /dev/sdc5
Removed “/dev/sdc5” from volume group “VolGrp01”
[root@SimpleLinux ~]# pvs
PVVGFmtAttr PSize PFree
/dev/sdb1VolGrp01 lvm2 a-8.00G 7.22G
/dev/sdc1VolGrp01 lvm2 a-1.87G 1.87G
/dev/sdc2VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc3VolGrp02 lvm2 a-1.87G 1.87G
/dev/sdc5lvm2 –1.87G 1.87G
/dev/sdc6lvm2 –3.07G 3.07G
6、结论
对实际的运维场景而言,Logical Volume Manager是一种非常实用的工具包。LVM可以实现灵活高效的空间使用和配置。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-05/101880.htm