天天看点

linux LVM 逻辑卷组管理

                                               linux LVM 逻辑卷组管理

LVM逻辑卷组管理

LVM实现硬盘容量自由扩展,提高可用性。

实验部分:

1、创建3个100M的分区。

[root@zhaoyun ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1        3916    31455238+  83  Linux

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Disk /dev/sdb doesn't contain a valid partition table

[root@zhaoyun ~]# fdisk /dev/sdb 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Partition number (1-4): 1

First cylinder (1-2610, default 1): 

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): 

Using default value 2610

   l   logical (5 or over)

l

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +100M

First cylinder (14-2610, default 14): 

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-2610, default 2610): +100M

l  

First cylinder (27-2610, default 27): 

Last cylinder or +size or +sizeM or +sizeK (27-2610, default 2610): +100M   

Command (m for help): p

/dev/sdb1               1        2610    20964793+   5  Extended

/dev/sdb5               1          13      104359+  83  Linux

/dev/sdb6              14          26      104391   83  Linux

/dev/sdb7              27          39      104391   83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@zhaoyun ~]# 

[root@zhaoyun ~]#

2、创建物理卷

使用pvcreate命令创建物理卷。pvs可以查看已经创建好的物理卷。

[root@zhaoyun ~]# pvcreate /dev/sdb5

  Physical volume "/dev/sdb5" successfully created

[root@zhaoyun ~]# pvs     还有一个pvdisplay命令也可以查看

  PV         VG   Fmt  Attr PSize   PFree  

  /dev/sdb5       lvm2 --   101.91M 101.91M

3、创建卷组

使用vgcreate命令创建卷组。vgs可以查看到已经创建好的卷组

[root@zhaoyun ~]# vgcreate vg0 /dev/sdb5

  Volume group "vg0" successfully created

[root@zhaoyun ~]# vgs   还有一个vgdisplay命令也可以查看

  VG   #PV #LV #SN Attr   VSize   VFree  

  vg0    1   0   0 wz--n- 100.00M 100.00M

4、创建逻辑卷

使用lvcreate命令创建逻辑卷,使用lvs可以查看以创建好的逻辑卷

[root@zhaoyun ~]# lvcreate -L 100M -n lv0 vg0

  Logical volume "lv0" created

[root@zhaoyun ~]# lvs    还有一个lvdisplay命令也可以查看

  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert

  lv0  vg0  -wi-a- 100.00M                                      

5、格式化逻辑卷,并挂载使用。

使用格式化命令,格式或逻辑卷。

mkfs.ext3  /dev/vg0/lv0

[root@zhaoyun ~]# mkfs.ext3 /dev/vg0/lv0

#将逻辑卷挂载使用。

[root@zhaoyun ~]# mount /dev/vg0/lv0 /mnt

[root@zhaoyun ~]# cd /mnt

[root@zhaoyun mnt]# ls

lost+found

[root@zhaoyun mnt]# touch file

file  lost+found

[root@zhaoyun mnt]# df -h

文件系统              容量  已用 可用 已用% 挂载点

/dev/sda1              30G  3.1G   25G  11% /

tmpfs                  95M     0   95M   0% /dev/shm

/dev/mapper/vg0-lv0    97M  5.6M   87M   7% /mnt    #看到挂载的卷。

现在一个逻辑卷就可以正常工作了,现在要把这个卷的空间扩大,比如增加100M。

因为刚才创建的物理卷和逻辑组只有100M都已经分配至逻辑卷了。已经没有可用空间来扩展,那么就需要重新创建一个物理卷,然后扩大卷组,再分配给逻辑卷。

扩展是在线扩展的,就是不需要将已经过载的逻辑卷卸载掉。

1、创建一个新的物理卷。

[root@zhaoyun ~]# pvcreate /dev/sdb6 

  Physical volume "/dev/sdb6" successfully created

[root@zhaoyun ~]# pvs

  /dev/sdb5  vg0  lvm2 a-   100.00M      0 

  /dev/sdb6       lvm2 --   101.94M 101.94M   现在可以看到物理卷有俩块磁盘了。

2、扩展卷组

[root@zhaoyun ~]# vgextend vg0 /dev/sdb6 

  Volume group "vg0" successfully extended

[root@zhaoyun ~]# vgs

  vg0    2   1   0 wz--n- 200.00M 100.00M

3、扩展逻辑卷

先看下之前lv0的大小

[root@zhaoyun ~]# lvs

  lv0  vg0  -wi-ao 100.00M    

扩展lv0                                  

[root@zhaoyun ~]# lvextend -L +100M /dev/vg0/lv0 

  Extending logical volume lv0 to 200.00 MB

  Logical volume lv0 successfully resized

可以看到说是已经扩展到200M了,在看下系统挂载使用的情况,发现还是97M,没有扩大。

[root@zhaoyun ~]# df -h

/dev/mapper/vg0-lv0    97M  5.6M   87M   7% /mnt

执行resize2fs命令使扩展生效

[root@zhaoyun ~]# resize2fs /dev/vg0/lv0 

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/vg0/lv0 is mounted on /mnt; on-line resizing required

Performing an on-line resize of /dev/vg0/lv0 to 204800 (1k) blocks.

The filesystem on /dev/vg0/lv0 is now 204800 blocks long.

再看的话已经将分区成功扩展了。。

/dev/mapper/vg0-lv0   194M  5.6M  179M   4% /mnt

LVM还可以实现缩小操作,,不建议做缩小操作,只不过看看现象就行了。

将刚才194M的逻辑卷缩小到150M。

缩小不支持在线,需要先卸载掉已经挂载的逻辑卷。

1、先卸载挂载的卷

[root@zhaoyun ~]# umount /dev/vg0/lv0

2、执行检查

[root@zhaoyun ~]# e2fsck -f /dev/vg0/lv0 

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/vg0/lv0: 12/49400 files (8.3% non-contiguous), 11903/204800 blocks

3、重新配置卷大小,分俩步

[root@zhaoyun ~]# resize2fs /dev/vg0/lv0 150M

Resizing the filesystem on /dev/vg0/lv0 to 153600 (1k) blocks.

The filesystem on /dev/vg0/lv0 is now 153600 blocks long.

[root@zhaoyun ~]# lvreduce -L 150M /dev/vg0/lv0 

  Rounding up size to full physical extent 152.00 MB

  WARNING: Reducing active logical volume to 152.00 MB

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce lv0? [y/n]: y

  Reducing logical volume lv0 to 152.00 MB

4、重新挂载,已经重194M成功减少到146M了。

/dev/mapper/vg0-lv0   146M  5.6M  134M   4% /mnt

LVM快照功能,通过快照功能可以理解为备份,,就想VM虚拟机一样有一个快照的功能。

[root@zhaoyun ~]# lvcreate -L 40M -s -n lv0bak /dev/vg0/lv0 

  Logical volume "lv0bak" created

[root@zhaoyun ~]# ll /dev/vg0/lv0

lv0     lv0bak  

[root@zhaoyun ~]# ll /dev/vg0/lv0bak 

lrwxrwxrwx 1 root root 22 11-29 08:29 /dev/vg0/lv0bak -> /dev/mapper/vg0-lv0bak

[root@zhaoyun ~]# mount /dev/vg0/lv0bak /media

[root@zhaoyun ~]# cd /media

[root@zhaoyun media]# ls

[root@zhaoyun media]# touch file2

file  file2  lost+found

[root@zhaoyun media]# cd /mnt

[root@zhaoyun mnt]#

删除卷组。

[root@zhaoyun ~]# umount /dev/vg0/lv0bak 

[root@zhaoyun ~]# lvremove /dev/vg0/lv0

Do you really want to remove active logical volume lv0bak? [y/n]: y

  Logical volume "lv0bak" successfully removed

Do you really want to remove active logical volume lv0? [y/n]: y

  Logical volume "lv0" successfully removed

[root@zhaoyun ~]# lvremove /dev/

Display all 197 possibilities? (y or n)

  vg0    2   0   0 wz--n- 200.00M 200.00M

[root@zhaoyun ~]# vgremove vg0 

  Volume group "vg0" successfully removed

  /dev/sdb6       lvm2 --   101.94M 101.94M

[root@zhaoyun ~]# pvremove /dev/sdb5 /dev/sdb6

  Labels on physical volume "/dev/sdb6" successfully wiped

查看已经没有信息了

本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/729244

继续阅读