大纲
一、简介
二、版本
三、LVM 模块
四、具体操作
一、简介
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,于1998年发布到Linux社区中,它允许你在Linux系统上用简单的命令行管理一个完整的逻辑卷管理环境。
二、版本
LVM1 最初的LVM与1998年发布,只在Linux内核2.4版本上可用,它提供最基本的逻辑卷管理。
LVM2 LVM-1的更新版本,在Linux内核2.6中才可用,它在标准的LVM-1功能外还提供了额外的功能。
查看:(测试机CentOS 5.5 X86_64)
1234567[root@localhost ~]Linux localhost.localdomain 2.6.18-194.el5 [root@localhost ~]2.6.18-194.el5 [root@localhost ~]lvm2-2.02.56-8.el5 [root@localhost ~]三、LVM 模块
Physical volume (PV)、Volume group (VG)、Logical volume(LV)、 Physical extent (PE),下面我们用一个简单的图来说明下物理卷、卷组、逻辑卷他们之间的关系(此图只是个人理解,仅供参考)

简而言之:
逻辑卷的创建,就是将多块硬盘创建物理卷,而将这些物理卷以逻辑的形式总成一个容器,然后从这个容器里面创建大小不同的分区文件,而这个容器就是所谓的逻辑卷,而从这个容器里创建大小不同的分区文件,这个分区文件就叫做逻辑卷。嘿嘿,你懂了吗? ^_^ ……
四、具体操作
1. 分区
1234567891011121314151617181920212223242526272829303132333435363738[root@localhost ~]Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System /dev/sda1* 1 33 265041 83 Linux /dev/sda234 1308 10241437+ 83 Linux /dev/sda31309 1945 5116702+ 83 Linux /dev/sda41946 2610 5341612+ 5 Extended /dev/sda51946 2072 1020096 82 Linux swap / SolarisDisk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/sdbdoesn't contain a valid partition tableDisk /dev/sdc: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/sdcdoesn't contain a valid partition table[root@localhost ~]Command (m forhelp): pDisk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System /dev/sdb11 244 1959898+ 8e Linux LVM /dev/sdb2245 488 1959930 8e Linux LVM /dev/sdb3489 732 1959930 8e Linux LVMCommand (m forhelp):[root@localhost ~][root@localhost ~]Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System /dev/sdb11 244 1959898+ 8e Linux LVM /dev/sdb2245 488 1959930 8e Linux LVM /dev/sdb3489 732 1959930 8e Linux LVM [root@localhost ~]2. 将物理分区与硬盘创建为物理卷(pvcreate)
12345678910111213[root@localhost ~]Physical volume "/dev/sdb1"successfully created Physical volume "/dev/sdb2"successfully created Physical volume "/dev/sdb3"successfully created [root@localhost ~][root@localhost ~]Physical volume "/dev/sdc"successfully created[root@localhost ~]PV VG Fmt Attr PSize PFree /dev/sdb1myvg lvm2 a- 1.87G 1.87G /dev/sdb2myvg lvm2 a- 1.87G 1.87G /dev/sdb3myvg lvm2 a- 1.87G 1.87G /dev/sdcmyvg lvm2 a- 20.00G 20.00G3. 将物理卷(pv)创建为卷组(vgcreate),名为myvg
12345678910111213141516171819202122232425262728[root@localhost ~]Volume group "myvg"successfully created [root@localhost ~]VG myvg 4 0 0 wz--n- 25.60G 25.60G [root@localhost ~][root@localhost ~]--- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 1 VG Access read/writeVG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 4 Act PV 4 VG Size 25.60 GB PE Size 4.00 MB Total PE 6553 Alloc PE / Size 0 / 0 Free PE / Size 6553 / 25.60 GB VG UUID wuNBgb-tP95-pVoX-ehHw-cMfN-hyem-PNMqwe [root@localhost ~]4. 在卷组里创建逻辑卷并格式化、挂载使用
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950[root@localhost ~]Logical volume "mylv1"created [root@localhost ~]LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv1 myvg -wi-a- 2.00G [root@localhost ~]mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 262144 inodes, 524288 blocks 26214 blocks (5.00%) reserved forthe super user First data block=0 Maximum filesystem blocks=536870912 16 block groups32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~][root@localhost ~][root@localhost ~]/dev/sda2on / typeext3 (rw) proc on /proctypeproc (rw) sysfs on /systypesysfs (rw) devpts on /dev/ptstypedevpts (rw,gid=5,mode=620) /dev/sda3on /datatypeext3 (rw) /dev/sda1on /boottypeext3 (rw) tmpfs on /dev/shmtypetmpfs (rw) none on /proc/sys/fs/binfmt_misctypebinfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefstyperpc_pipefs (rw) /dev/mapper/myvg-mylv1on /mydatatypeext3 (rw) [root@localhost ~][root@localhost ~]lost+found [root@localhost ~]Filesystem Size Used Avail Use% Mounted on /dev/sda29.5G 1.8G 7.2G 20% / /dev/sda34.8G 138M 4.4G 4% /data/dev/sda1251M 17M 222M 7% /boottmpfs 60M 0 60M 0% /dev/shm/dev/mapper/myvg-mylv12.0G 68M 1.9G 4% /mydata[root@localhost ~]5. 发现卷组空间不够,我们扩大卷组空间
1234567891011121314151617[root@localhost ~]Physical volume "/dev/sdd"successfully created[root@localhost ~]/dev/cdrom: openfailed: No medium found PV VG Fmt Attr PSize PFree /dev/sdb1myvg lvm2 a- 1.87G 1.87G /dev/sdb2myvg lvm2 a- 1.87G 1.87G /dev/sdb3myvg lvm2 a- 1.87G 1.87G /dev/sdcmyvg lvm2 a- 20.00G 18.00G /dev/sddmyvg lvm2 a- 20.00G 20.00G [root@localhost ~][root@localhost ~]Volume group "myvg"successfully extended [root@localhost ~]VG myvg 5 1 0 wz--n- 45.59G 43.59G [root@localhost ~]6. 扩展逻辑卷 (支持在线扩展)
123456789101112131415161718192021222324252627282930313233将/dev/myvg/mylv1扩展到4G,并且要求数据可以正常访问[root@localhost ~][root@localhost mydata][root@localhost mydata][root@localhost mydata]test[root@localhost mydata]/dev/cdrom: openfailed: No medium found VG myvg 5 1 0 wz--n- 45.59G 43.59G [root@localhost mydata]Extending logical volume mylv1 to 4.00 GB Logical volume mylv1 successfully resized[root@localhost mydata]resize2fs 1.39 (29-May-2006) Filesystem at /dev/myvg/mylv1is mounted on /mydata; on-line resizing required Performing an on-line resize of /dev/myvg/mylv1to 1048576 (4k) blocks. The filesystem on /dev/myvg/mylv1is now 1048576 blocks long.[root@localhost mydata]LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv1 myvg -wi-ao 4.00G [root@localhost mydata][root@localhost mydata]test[root@localhost mydata]Filesystem Size Used Avail Use% Mounted on /dev/sda29.5G 1.8G 7.2G 20% / /dev/sda34.8G 138M 4.4G 4% /data/dev/sda1251M 17M 222M 7% /boottmpfs 60M 0 60M 0% /dev/shm/dev/mapper/myvg-mylv14.0G 69M 3.7G 2% /mydata[root@localhost mydata]7. 缩减逻辑卷
12345678910111213141516将/dev/myvg/mylv1缩减到1G,并且要求数据可以正常访问 (所以我们就按上面的提示在操作)[root@localhost ~][root@localhost ~][root@localhost ~][root@localhost ~][root@localhost ~][root@localhost ~]/dev/cdrom: openfailed: No medium found LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv1 myvg -wi-ao 1.00G [root@localhost ~][root@localhost ~]index.html lost+found [root@localhost ~]test[root@localhost ~]8. 缩减磁盘空间
发现物理磁盘空间使用不足,将其中一块硬盘或分区拿掉
pvmove /dev/sdb1 #将/dev/sdb1上存储的数据移到其它物理卷中
vgreduce myvg /dev/sdb1 #将/dev/sdb1从myvg卷组中移除
pvremove /dev/sdb1 #将/dev/sdb1从物理卷上移除
1234567891011121314151617181920212223[root@localhost ~]/dev/cdrom: openfailed: No medium found PV VG Fmt Attr PSize PFree /dev/sdb1myvg lvm2 a- 1.87G 1.87G /dev/sdb2myvg lvm2 a- 1.87G 1.87G /dev/sdb3myvg lvm2 a- 1.87G 1.87G /dev/sdcmyvg lvm2 a- 20.00G 19.00G /dev/sddmyvg lvm2 a- 20.00G 20.00G [root@localhost ~][root@localhost ~]No data to move formyvg[root@localhost ~]Removed "/dev/sdb1"from volume group "myvg"root@localhost ~]Labels on physical volume "/dev/sdb1"successfully wiped [root@localhost ~]/dev/cdrom: openfailed: No medium found PV VG Fmt Attr PSize PFree /dev/sdb2myvg lvm2 a- 1.87G 1.87G /dev/sdb3myvg lvm2 a- 1.87G 1.87G /dev/sdcmyvg lvm2 a- 20.00G 19.00G /dev/sddmyvg lvm2 a- 20.00G 20.00G [root@localhost ~]9. 实现快照,进行备份还原
在/mnt/lvm目录上,我们将原始的目录文件进行快照,然后将/mydata目录中的内容清空,并进行还原
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950[root@localhost ~][root@localhost mydata]index.html lost+found [root@localhost mydata]test[root@localhost mydata]Rounding up size to full physical extent 32.00 MB Logical volume "backup"created [root@localhost mydata]total 20 -rw-r--r-- 1 root root 5 Jun 28 01:04 index.html drwx------ 2 root root 16384 Jun 28 00:47 lost+found [root@localhost mydata][root@localhost mydata]mount: block device /dev/myvg/backupis write-protected, mounting read-only [root@localhost mydata][root@localhost backup]index.html lost+found [root@localhost backup][root@localhost backup][root@localhost backup][root@localhost tmp][root@localhost lvmbackup]sandy.tar.bz2 [root@localhost lvmbackup][root@localhost mydata]total 20 -rw-r--r-- 1 root root 5 Jun 28 01:04 index.html drwx------ 2 root root 16384 Jun 28 00:47 lost+found [root@localhost mydata][root@localhost mydata][root@localhost mydata]total 0 [root@localhost mydata][root@localhost mydata]total 4 -rw-r--r-- 1 root root 5 Jun 28 01:04 index.html [root@localhost mydata]test[root@localhost mydata]Filesystem Size Used Avail Use% Mounted on /dev/sda29.5G 1.8G 7.2G 21% / /dev/sda34.8G 138M 4.4G 4% /data/dev/sda1251M 17M 222M 7% /boottmpfs 60M 0 60M 0% /dev/shm/dev/mapper/myvg-mylv11008M 67M 901M 7% /mydata/dev/mapper/myvg-mylv11008M 67M 901M 7% /tmp/backup[root@localhost mydata]了解以上步骤操作的含义,我相信大家应该对LVM有更深的认识,嘿嘿 ^_^……
本文出自 “Share your knowledge …” 博客,请务必保留此出处http://freeloda.blog.51cto.com/2033581/1231089