Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2783152
  • 博文数量: 423
  • 博客积分: 7770
  • 博客等级: 少将
  • 技术积分: 4766
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 11:58
个人简介

Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb

文章分类

全部博文(423)

文章存档

2019年(3)

2018年(6)

2017年(27)

2016年(23)

2015年(30)

2014年(16)

2013年(31)

2012年(73)

2011年(45)

2010年(14)

2009年(30)

2008年(30)

2007年(63)

2006年(32)

分类: LINUX

2007-03-21 09:01:40

苏小勇                                

1.基本概念:

物理卷(pv): 物理卷可以是硬盘,也可以是硬盘上的分区,使用如pvcreate /dev/sdb1来创建一个物理卷.
卷组(vg): 卷组由物理卷组成,可以通过添加,删除物理卷来改变卷组的大小,卷组可以看作传统意义上的可以改变大小的硬盘.
逻辑卷(lv): 逻辑卷对卷组进行的重新划分,相当于传统意义上的可以自由改变大小的硬盘分区.

2.基本操作

创建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 group

Writing 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 device

ext2online: 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

阅读(1644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~