- 论坛徽章:
- 0
|
1、什么时LVM传统上,一个分区大小是静态的。这要求一个系统安装人员必须考虑的不是“我要在这个分区上存储多少数据”,而是“我‘究竟’要在这个分区上存储多
少数据”。当一个用户在这个分区上没有空间了,他要么不得不重新分区(这可能要求整个操作系统重装),要么象符号连接一样使用组装机。
一个分区就是物理磁盘上一系列连续数据块的概念已经演变了。多数类Unix系统现在有能力分解物理磁盘到许多单元。
多个驱动器上的存储单元可以汇聚成一个“逻辑卷”,它们可以分配给分区。另外,单元可以随着空间要求的改变而从分区中添加和删除。
这就是基本的逻辑卷管理器(LVM)
例如,假设你有一个1GB的磁盘,并且创建“/home”分区花了600MB。设想你没有空间了,于是决定“/home”需要1GB。
用传统的分区观念,你不得不有另外一个至少1GB大小的驱动器。接着增加这个磁盘,创建新的/home,并且将现有的数据拷贝过去。
然而,用LVM配置,你仅仅只需要增加400MB(或更大)的磁盘,并将它的存储单元添加到“/home”分区中。
其他工具可以让你调整原来文件系统的大小,所以你仅仅只需要调整“/home”大小来使用更大的分区,接着返回到商务中。
一个非常特殊的处理,LVM甚至可以做它自身的“快照”,这使你能对不可移动的目标做备份。
我们返回到这个激动人心的可能中,稍后,有许多另外的真实应用。
2,基本术语
物理介质 The physical media
你应该感受“物理”这个单词有极大的延伸,虽然我们刚开始假设它仅仅是一个硬盘,或者一个分区。例如,/dev/hda,/dev/hda6,/dev/sda。
物理卷 Physical Volume (PV)
一个PV只不过是有许多管理数据添加在它里面的物理介质。
物理分区 Physical Extents (PE)
物理分区真的象一些大的数据块,通常有几MB。
卷组 Volume Group (VG)
一个VG是由许多物理分区组成的(可能来自多个物理卷或硬盘)。虽然这可能容易让你认为一个VG就是由几个硬盘组成的(例如/dev/hda和/dev/sda),但是更确切的说,它包含由这些硬盘提供的许多PE。
逻辑卷 Logical Volume (LV)
Yes,我们最终到达某处。一个逻辑卷是我们工作的最终结果,这里是我们存储信息的地方。这等同于传统分区的想法。
象用通常的分区一样。
文件系统 Filesystem
文件系统是你想它成为的形态:标准的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。
我试着画了一个ASCII图来使这些形象化。
一个物理卷,包含了许多物理分区:
+-----[ Physical Volume ]------+
| PE | PE | PE | PE | PE | PE |
+------------------------------+
一个卷组,包含了2个物理卷(PV)有6个物理分区:
+------[ Volume Group ]-----------------+
| +--[PV]--------+ +--[PV]---------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +--------------+ +---------------+ |
+---------------------------------------+
我们现在做更进一步扩展:
+------[ Volume Group ]-----------------+
| +--[PV]--------+ +--[PV]---------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +--+---+---+---+ +-+----+----+---+ |
| | | | +-----/ | | |
| | | | | | | |
| +-+---+---+-+ +----+----+--+ |
| | Logical | | Logical | |
| | Volume | | Volume | |
| | | | | |
| | /home | | /var | |
| +-----------+ +------------+ |
+---------------------------------------+
这个向我们展示了两个文件系统,它跨越两个磁盘。/home文件系统包含4个物理分区,/var文件系统包含2个。
3.基本操作创建pv#pvcreate /dev/sdb2 /dev/sdb3
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created创建vg#vgcreate vg1 /dev/sdb1 /dev/sdb2 /dev/sdb3
Volume group "vg1" successfully created激活vg#vgchange -a y vg1
0 logical volume(s) in volume group "vg1" now active向vg中追加pv#vgextend vg1 /dev/sdb5
Volume group "vg1" successfully extended从vg中移走pv(不推荐)查看pv的使用情况#pvdisplay /dev/sdb1
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg1
PV Size 48.00 MB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 12
Free PE 12
Allocated PE 0
PV UUID ncdQHn-wRWW-pCJR-2siv-SXSY-vCxq-FBfWrw查看vg的状态#vgdisplay vg1
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 192.00 MB
PE Size 4.00 MB
Total PE 48
Alloc PE / Size 0 / 0
Free PE / Size 48 / 192.00 MB
VG UUID Qzd9qI-5oeA-23b9-FLls-W2Ra-739g-vw36XW建立LV# lvcreate -L100M -nlv1 vg1
Logical volume "lv1" created查看已经建立的LV lvdisplay
--- Logical volume ---
LV Name /dev/vg1/lv1
VG Name vg1
LV UUID ezmFx2-svKD-EVNV-rZxY-HS6P-vnd3-Q9KKOR
LV Write Access read/write
LV Status available
# open 0
LV Size 100.00 MB
Current LE 25
Segments 3
Allocation inherit
Read ahead sectors 0
Block device 253:2格式化LV# mkfs.ext3 -b 4096 /dev/vg1/lv1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
25600 inodes, 25600 blocks
1280 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=29360128
block group
32768 blocks per group, 32768 fragments per group
25600 inodes per groupWriting inode tables: done
Creating journal (1024 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 LV# mount /dev/vg1/lv1 /mnt查看当前系统分区情况,我们可以看到现在lv1的大小是100M
[root@ha1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3451040 2644664 631068 81% /
/dev/sda1 101086 9181 86686 10% /boot
none 127988 0 127988 0% /dev/shm
/dev/mapper/vg1-lv1 99184 4152 89912 5% /mnt扩展LV的大小# lvextend -L50M /dev/vg1/lv1
Rounding up size to full physical extent 52.00 MB
New size given (13 extents) not larger than existing size (25 extents)
lvextend: Add space to a logical volume这个错误是说新的大小比以前的要小,索引不能扩展,我们指定的新的大小必须大于原来的大小.或者用+50M来增加大小.
比如
# lvextend -L120M /dev/vg1/lv1
Extending logical volume lv1 to 120.00 MB
Logical volume lv1 successfully resized或者 #lvextend -L+20M /dev/vg1/lv1
Extending logical volume lv1 to 120.00 MB
Logical volume lv1 successfully resized这个时候,我们再看每个分区的大小,还是跟以前一样,并没有增大 # df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3451040 2644668 631064 81% /
/dev/sda1 101086 9181 86686 10% /boot
none 127988 0 127988 0% /dev/shm
/dev/mapper/vg1-lv1 99184 4152 89912 5% /mnt在LVM2中,最方便的地方就是,使用ext2online,我们不用卸载原来的LVM就可以改变它的大小. # ext2online /dev/vg1/lv1
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b这时候再查看分区的大小,可以看到lv1已经变为120M了. # df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3451040 2644668 631064 81% /
/dev/sda1 101086 9181 86686 10% /boot
none 127988 0 127988 0% /dev/shm
/dev/mapper/vg1-lv1 119664 4152 110392 4% /mnt如果LV所在的VG空间不够的话,在进行lvextend时并不会表现出来,只有在ext2online的时候才会有提示:
ext2online /dev/vg1/lv1
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b
ext2online: ext2_ioctl: No space left on deviceext2online: unable to resize /dev/mapper/vg1-lv1
减小LV我们说了LV是可以动态调整大小的,既然可以扩展,当然可以减小了.可以使用lvreduce来进行这个操作.
lvreduce -L-50M /dev/vg1/lv1
Rounding up size to full physical extent 48.00 MB
WARNING: Reducing active and open logical volume to 92.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv1? [y/n]: y
Reducing logical volume lv1 to 92.00 MB
Logical volume lv1 successfully resized同样,也需要使用ext2online来使更改生效.
减小lv具有一定的风险,一般情况下不要减小lv
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17549/showart_222729.html |
|