LVM简介
LVM一种支持在线增大和减小的分区技术
一、PV物理卷
  由分区架构而成,为卷组提供空间。
二、VG卷组
  由一个或多个物理卷组成,为LV提供空间。
三、LV逻辑卷
  从卷组中获取空间,形成一个新的可用的LVM分区。
四、制作逻辑卷。
1、创建PV(在创建PV之前需要创建一个可用的分区,并且ID为8e)
[root@station19 media]# fdisk /dev/hda 对第一块IDE硬盘进行操作。这取决于你的环境。
The number of cylinders for this disk is set to 14593.
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)
Command (m for help): n 新建一个分区
First cylinder (5421-14593, default 5421):
Using default value 5421
Last cylinder or +size or +sizeM or +sizeK (5421-14593, default 14593): +500M 给他500M的空间。
Command (m for help): p 查看一下当前硬盘分区的情况。
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        3837    30716280   83  Linux
/dev/hda3            3838        5112    10241437+  83  Linux
/dev/hda4            5113       14593    76156132+   5  Extended
/dev/hda5            5113        5243     1052226   82  Linux swap / Solaris
/dev/hda6            5244        5308      522081   8e  Linux LVM
/dev/hda7            5309        5370      497983+  83  Linux
/dev/hda8            5371        5420      401593+  8e  Linux LVM
/dev/hda9            5421        5482      497983+  83  Linux
 (这是新建的那快分区)
Command (m for help): t 修改分区的表示符
Partition number (1-9): 9 选择对第9个分区进行操作
Hex code (type L to list codes): 8e 将标识符改为8e(只有将标识符改为8e才能支持LVM)
Changed system type of partition 9 to 8e (Linux LVM)
Command (m for help): p 再次查看一下
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        3837    30716280   83  Linux
/dev/hda3            3838        5112    10241437+  83  Linux
/dev/hda4            5113       14593    76156132+   5  Extended
/dev/hda5            5113        5243     1052226   82  Linux swap / Solaris
/dev/hda6            5244        5308      522081   8e  Linux LVM
/dev/hda7            5309        5370      497983+  83  Linux
/dev/hda8            5371        5420      401593+  8e  Linux LVM
/dev/hda9            5421        5482      497983+  8e  Linux LVM
  (当前第9快分区的类型变成了8e,LVM)
Command (m for help): w 保存退出
[root@station19 media]# partprobe 重新加载分区,不加载或重启的话当前系统无法识别这个新的分区)
[root@station19 media]# pvcreate /dev/hda9  (将hda9这个分区制作成物理卷)
  Physical volume "/dev/hda9" successfully created
[root@station19 media]# pvdisplay  查看PV的内容
  --- Physical volume ---
  PV Name               /dev/hda9
  VG Name              
  PV Size               486.31 MB / not usable 2.31 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              121
  Free PE               121
  Allocated PE          0
  PV UUID               0pE20O-EWqI-JtTY-gmeX-VJck-GUb0-Mxvx5v
       (从这些信息可以看出,/dev/hda9这个物理卷不属于任何VG,它的磁盘空间为486M)
2、创建VG 
[root@station19 media]# vgcreate vg /dev/hda9 
  Volume group "vg" successfully created
 将hda9这个物理卷加入到vg这个组里(vg为自己定义的名字)
 [root@station19 media]# vgdisplay
  --- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               484.00 MB
  PE Size               4.00 MB
  Total PE              121
  Alloc PE / Size       0 / 0   
  Free  PE / Size       121 / 484.00 MB
  VG UUID               6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
  现在查看一下,vg这个卷组就拥有了484M的空间也就是/dev/hda9这个逻辑卷的空间
3、创建LV
[root@station19 media]# lvcreate -L 300M -n lv vg
  Logical volume "lv" created
 创建一个LV,并给他指定拥有300M的空间,vg为指定它属于哪个卷组,也就是由哪个卷组为它提供这300M的空间。
[root@station19 media]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg/lv
  VG Name                vg
  LV UUID                HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                300.00 MB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   现在查看一下LV信息,现在这个lv属于vg这个卷组并拥有300M的空间
5、格式化文件系统
[root@station19 media]# mkfs.ext3 /dev/vg/lv 将lv这个逻辑卷格式化为ext3文件系统
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.  
6、挂载
[root@station19 media]# mount /dev/vg/lv /lv 将/dev/vg/lv这个分区挂在到/下的lv下
[root@station19 media]# df -H /lv/   
文件系统               容量   已用  可用 已用% 挂载点
/dev/mapper/vg-lv      305M    11M   279M   4% /lv
查看一下/lv这个分区的大小,300M
 到现在为止,我们已经成功的创建了一个逻辑卷,但别忘了。逻辑卷最大的功能是增大和减小,下面我们来对逻辑卷进行增大和减小。
7、增大逻辑卷
[root@station19 media]# lvextend -L 500M /dev/vg/lv
  Extending logical volume lv to 500.00 MB
  Insufficient free space: 50 extents needed, but only 46 available
 [root@station19 media]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg/lv
  VG Name                vg
  LV UUID                HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                300.00 MB
  Current LE             75
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
这是一个失败的例子,因为lv所属的vg只有484M,所以当我将lv扩增到500M的时候会失败,因为vg无法为lv提供500M的空间。查看一下,lv仍然只有300M。
[root@station19 media]# lvextend -L 480M /dev/vg/lv
  Extending logical volume lv to 480.00 MB
  Logical volume lv successfully resized
[root@station19 media]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg/lv
  VG Name                vg
  LV UUID                HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                480.00 MB
  Current LE             120
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
现在我将lv扩增到480M,480M是vg所允许的空间大小,查看一下现在成功了。Lv被成功的扩增到了480M。
8、增大文件系统
[root@station19 media]# df -H /lv/
文件系统               容量   已用  可用 已用% 挂载点
/dev/mapper/vg-lv      305M    11M   279M   4% /lv
查看一下文件系统大小,lv这个文件系统仍是300M,因为我们之前扩展的只是它的分区大小,文件大小并没有增大,所以我们仍然只能使用300M的空间
[root@station19 media]# resize2fs /dev/vg/lv 480M
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg/lv is mounted on /lv; on-line resizing required
Performing an on-line resize of /dev/vg/lv to 491520 (1k) blocks.
The filesystem on /dev/vg/lv is now 491520 blocks long.
[root@station19 media]# df -H /lv
文件系统               容量   已用  可用 已用% 挂载点
/dev/mapper/vg-lv      488M    11M   452M   3% /lv
现在用resize这个工具将/dev/vg/lv这个文件系统扩展到488M,查看一下成功了。
 *注:文件系统是建立在分区之上的,分区为我们提供空间,而我们真正能直接使用的是文件系统,例如windows下我们使用的ntfs文件系统一样。而在linux下使用的是ext3格式的文件系统。所以文件系统只能比分区小,不能比分区大。
9、缩小文件系统和分区
(1)减小文件系统时需要现卸载,因为resize这个工具不支持在线减小。
[root@station19 media]# umount /lv  卸载
[root@station19 media]# e2fsck -f /dev/vg/lv  
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/vg/lv: 11/121440 files (9.1% non-contiguous), 25872/491520 blocks
在减小文件系统之前需要先检查一下分区的完整性。
[root@station19 media]# resize2fs /dev/vg/lv 100M 将文件系统减小到100M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg/lv to 102400 (1k) blocks.
The filesystem on /dev/vg/lv is now 102400 blocks long.
 (2)缩小分区
[root@station19 media]# lvreduce -L 100M /dev/vg/lv
  WARNING: Reducing active logical volume to 100.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv? [y/n]: y
  Reducing logical volume lv to 100.00 MB
  Logical volume lv successfully resized
将分区缩小到100M
[root@station19 media]# mount /dev/vg/lv /lv/
[root@station19 media]# df -H /lv/
文件系统               容量   已用  可用 已用% 挂载点
/dev/mapper/vg-lv      102M    11M    88M  11% /lv
[root@station19 media]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg/lv
  VG Name                vg
  LV UUID                HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                100.00 MB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
挂载、查看,成功!文件系统和分区都为100M
10、增大与减小VG
这个很简单,VG是由多个物理卷构成的,只要将物理卷加入VG就可以实现增容,移出就能实现减小。
[root@station19 media]# pvcreate /dev/hda10 将一块新的lvm格式的分区做成物理卷
 Physical volume "/dev/hda10" successfully created
[root@station19 media]# vgextend vg /dev/hda10 将hda10这个分区加入到vg这个组
   Volume group "vg" successfully extended
[root@station19 media]# vgdisplay
  --- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               968.00 MB
  PE Size               4.00 MB
  Total PE              242
  Alloc PE / Size       25 / 100.00 MB
  Free  PE / Size       217 / 868.00 MB
  VG UUID               6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
现在查看一下,VG这个卷组拥有了将近1G的空间。
减小、
root@station19 media]# vgreduce vg /dev/hda10
  Removed "/dev/hda10" from volume group "vg"
[root@station19 media]# vgdisplay
  --- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               484.00 MB
  PE Size               4.00 MB
  Total PE              121
  Alloc PE / Size       25 / 100.00 MB
  Free  PE / Size       96 / 384.00 MB
  VG UUID               6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
将hda10这个物理卷从VG中移出,再查看,VG又被减小了。