LVM的使用实例

例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 这条命令来删除这个“快照”分区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值