例1 创建LV并调整其大小
step 1: 在vmware增加一个硬盘
<图1>
<图2>
在vmware中,重新启动Red Hat Linux系统。
step 2:给新增加的硬盘分区
[root@airhouse flagonxia]# fdisk /dev/sdb
... ...
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-261, default 261): +500M
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x882f0acb
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x882f0acb
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 8e Linux LVM
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (63-261, default 63):
Using default value 63
Last cylinder or +size or +sizeM or +sizeK (63-261, default 261): +500M
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x882f0acb
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 8e Linux LVM
/dev/sdb2 63 124 498015 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@airhouse flagonxia]# partprobe
step 3:建立PV
[root@airhouse mnt]# pvcreate /dev/sdb1 /dev/sdb2
[root@airhouse mnt]# pvdisplay /dev/sdb1 /dev/sdb2
"/dev/sdb1" is a new physical volume of "486.31 MB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 486.31 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 9vaT0S-jYZ1-w52n-0jSQ-q3fw-WkKv-oz9zPV
"/dev/sdb2" is a new physical volume of "486.34 MB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 486.34 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID zKjOAU-XgAg-bjvp-RbfL-3mUW-Rvlp-cmkkya
step 4:创建VG
[root@airhouse mnt]# vgcreate xboxVG /dev/sdb1
Volume group "xboxVG" successfully created
[root@airhouse mnt]# vgdisplay /dev/mapper/xboxVG
--- Volume group ---
VG Name xboxVG
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 Qn6PAx-d6iD-7tE3-L9Vd-eRel-GwuC-FvSnSd
注意现在xboxVG的大小是484MB。
step 5:建立并格式化LV
5.1 新建LV
[root@airhouse mnt]# lvcreate -L 200M -n xboxLV xboxVG
Logical volume "xboxLV" created
[root@airhouse mnt]# lvdisplay /dev/mapper/xboxVG/xboxLV
--- Logical volume ---
LV Name /dev/xboxVG/xboxLV
VG Name xboxVG
LV UUID n0UCts-b6rs-ZnOh-Tgaq-DYR6-36jY-NOUAte
LV Write Access read/write
LV Status available
# open 0
LV Size 200.00 MB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
5.2 格式化LV
[root@airhouse dev]# mke2fs /dev/xboxVG/xboxLV
[root@airhouse dev]# tune2fs -j /dev/xboxVG/xboxLV
step 6:在现有的VG基础上扩展LV的大小
[root@airhouse dev]# lvextend -L +100M /dev/xboxVG/xboxLV
Extending logical volume xboxLV to 300.00 MB
Logical volume xboxLV successfully resized
[root@airhouse dev]# lvdisplay /dev/xboxVG/xboxLV | grep 'LV Size'
LV Size 300.00 MB
[root@airhouse dev]# tune2fs -l /dev/xboxVG/xboxLV | grep 'Block'
Block count: 204800
Block size: 1024
Blocks per group: 8192
从上面的结果来看,xboxLV的空间实际上并没有增加。
[root@airhouse dev]# resize2fs /dev/xboxVG/xboxLV
resize2fs 1.40.8 (13-Mar-2008)
Resizing the filesystem on /dev/xboxVG/xboxLV to 307200 (1k) blocks.
The filesystem on /dev/xboxVG/xboxLV is now 307200 blocks long.
[root@airhouse dev]# tune2fs -l /dev/xboxVG/xboxLV | grep 'Block'
Block count: 307200
Block size: 1024
Blocks per group: 8192
现在,xboxLV的大小变成了300M。
step 7:缩小LV的大小
[root@airhouse VolGroup00]# umount /mnt/lvm
[root@airhouse VolGroup00]# lvdisplay /dev/xboxVG/xboxLV | grep 'LV Size'
LV Size 300.00 MB
[root@airhouse VolGroup00]# tune2fs -l /dev/xboxVG/xboxLV | grep 'Block'
Block count: 307200
Block size: 1024
Blocks per group: 8192
[root@airhouse VolGroup00]# vgdisplay /dev/xboxVG | grep 'PE'
PE Size 4.00 MB
Total PE 121
Alloc PE / Size 75 / 300.00 MB
Free PE / Size 46 / 184.00 MB
[root@airhouse VolGroup00]# lvreduce -L -50M /dev/xboxVG/xboxLV
Rounding up size to full physical extent 48.00 MB
WARNING: Reducing active logical volume to 252.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce xboxLV? [y/n]: y
Reducing logical volume xboxLV to 252.00 MB
Logical volume xboxLV successfully resized
[root@airhouse VolGroup00]# lvdisplay /dev/xboxVG/xboxLV | grep 'LV Size'
LV Size 252.00 MB
[root@airhouse VolGroup00]# tune2fs -l /dev/xboxVG/xboxLV | grep 'Block'
Block count: 307200
Block size: 1024
Blocks per group: 8192
从上面的输出结果看出文件系统的实际大小并没有改变。我试着执行resize2fs,但提示要先执行e2fsck命令。
[root@airhouse VolGroup00]# e2fsck -f /dev/xboxVG/xboxLV
e2fsck 1.40.8 (13-Mar-2008)
The filesystem size (according to the superblock) is 307200 blocks
The physical size of the device is 258048 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? no
上面的错误信息可能是由于设备的物理大小小于文件系统的大小引起的。所以缩小LV的空间,是一个危险的尝试,在实际工作中最好不要使用。
step 7:挂载LV
[root@airhouse dev]# mkdir /mnt/lvm
[root@airhouse lvm]# mount -t ext3 /dev/xboxVG/xboxLV /mnt/lvm
[root@airhouse lvm]# mount | grep xboxLV
/dev/mapper/xboxVG-xboxLV on /mnt/lvm type ext3 (rw)
例2:调整已有的LV的大小
step 1:扩展VG
[root@airhouse VolGroup00]# mount | grep LogVol00
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
先将/dev/sdb2加入VolGroup00中。
原来VG的大小是:
[root@airhouse VolGroup00]# vgdisplay /dev/VolGroup00 | grep 'VG Size'
VG Size 7.88 GB
[root@airhouse VolGroup00]# vgdisplay /dev/VolGroup00 | grep 'VG Size'
VG Size 8.34 GB
果然,空间加了500M左右。
step 2:扩展LV
原来LogVol00的大小是:
[root@airhouse VolGroup00]# lvdisplay /dev/VolGroup00/LogVol00 | grep 'LV Size'
LV Size 5.84 GB
[root@airhouse VolGroup00]# lvextend -L +500M /dev/VolGroup00/LogVol00
Rounding up size to full physical extent 512.00 MB
Extending logical volume LogVol00 to 6.34 GB
Logical volume LogVol00 successfully resized
[root@airhouse VolGroup00]# lvdisplay /dev/VolGroup00/LogVol00 | grep 'LV Size'
LV Size 6.34 GB
[root@airhouse VolGroup00]# tune2fs -l /dev/VolGroup00/LogVol00 | grep 'Block'
Block count: 1531904
Block size: 4096
Blocks per group: 32768
[root@airhouse VolGroup00]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.40.8 (13-Mar-2008)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1662976 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 1662976 blocks long.
[root@airhouse VolGroup00]# tune2fs -l /dev/VolGroup00/LogVol00 | grep 'Block'
Block count: 1662976
Block size: 4096
Blocks per group: 32768
好了,根文件系统挂载的逻辑卷LogVol00已经被成功扩展了500M的空间。
[root@airhouse lvm]# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.3G 4.0G 2.0G 68% /
......
重新启动系统后,由于MBR的分区表中根文件系统的大小已经改变,系统需要fsck对应的逻辑卷LogVol00。
例3:卷快照
这个功能常用于备份逻辑卷(LV)。
[root@airhouse lvm]# mount | grep 'xboxLV'
/dev/mapper/xboxVG-xboxLV on /mnt/lvm type ext3 (rw)
[root@airhouse lvm]# lvdisplay /dev/mapper/xboxVG
--- Volume group ---
VG Name xboxVG
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
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 75 / 304.00 MB
Free PE / Size 47 / 178.00 MB
VG UUID Qn6PAx-d6iD-7tE3-L9Vd-eRel-GwuC-FvSnSd
从上面的命令执行结果可以看出,卷组xboxVG分配了304M的空间。
现在我们为xboxLV创建一个卷快照,取名snap1.
[root@airhouse lvm]# lvcreate -L 50M -s -n snapshot1 /dev/xboxVG/xboxLV
Names starting "snapshot" are reserved. Please choose a different LV name.
Run `lvcreate --help' for more information.
[root@airhouse lvm]# lvcreate -L 50M -s -n snap1 /dev/xboxVG/xboxLV
Rounding up size to full physical extent 52.00 MB
Logical volume "snap1" created
[root@airhouse mnt]# mount /dev/mapper/xboxVG-snap1 /mnt/snap1
[root@airhouse mnt]# cd snap1
root@airhouse snap1]# ls -l
total 20574
-rw-r--r-- 1 root root 20971520 2009-07-10 10:33 file1
drwx------ 2 root root 12288 2009-07-08 20:52 lost+found
[root@airhouse snap1]# date
Fri Jul 10 10:40:05 CST 2009
可见,卷快照snap1中的file1是原xboxLV中的file1,它们的创建时间是一样的。
[root@airhouse snap1]# vgdisplay /dev/mapper/xboxVG
--- Volume group ---
VG Name xboxVG
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
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 89 / 356.00 MB
Free PE / Size 32 / 128.00 MB
VG UUID Qn6PAx-d6iD-7tE3-L9Vd-eRel-GwuC-FvSnSd
xboxVG的已分配空间为356M。
我们可以通过lvremove /dev/mapper/xboxVG-snap1 这条命令来删除这个“快照”分区。
2944

被折叠的 条评论
为什么被折叠?



