对添加的硬盘进行分区(fdisk /dev/[hs]d[a-z])
对创建的分区创建物理卷(pvcreate)
给逻辑卷创建逻辑容器(卷组)
在卷组创建大小不同的逻辑卷(lvcreate)
给以存在的卷组扩大容量
实现在线扩大LVM容量
实现缩减LVM容量(不支持在线缩减)
减小卷组容量
利用给LVM创建快照,并完成备份并还原数据
1234567
[root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# uname -r 2.6.18-194.el5 [root@localhost ~]# rpm -qa | grep lvm lvm2-2.02.56-8.el5 [root@localhost ~]#1234567891011121314151617181920212223242526272829303132333435363738[root@localhost ~]# fdisk –l #查看已存在的分区与硬盘Disk/dev/sda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = 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 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk/dev/sdbdoesn't contain a valid partition tableDisk/dev/sdc: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk/dev/sdcdoesn't contain a valid partition table[root@localhost ~]# fdisk /dev/sdb #给/sdb分区,效果如下Command (mforhelp): pDisk/dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdb11 244 1959898+ 8e Linux LVM#注意修改分区类型为8e/dev/sdb2245 488 1959930 8e Linux LVM/dev/sdb3489 732 1959930 8e Linux LVMCommand (mforhelp):[root@localhost ~]# partprobe #让内核重新读取一下硬盘[root@localhost ~]# fdisk -l /dev/sdbDisk/dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = 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 ~]#12345678910111213[root@localhost ~]# pvcreate /dev/sdb[1-3] #将分区创建为物理卷Physical volume"/dev/sdb1"successfully createdPhysical volume"/dev/sdb2"successfully createdPhysical volume"/dev/sdb3"successfully created[root@localhost ~]#[root@localhost ~]# pvcreate /dev/sdc #将硬盘创建为物理卷Physical volume"/dev/sdc"successfully created[root@localhost ~]# pvs #查看创建的物理卷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.00G12345678910111213141516171819202122232425262728[root@localhost ~]# vgcreate myvg /dev/sdb[1-3] /dev/sdcVolume group"myvg"successfully created[root@localhost ~]# vgsVG#PV #LV #SN Attr VSize VFreemyvg 4 0 0 wz--n- 25.60G 25.60G[root@localhost ~]#[root@localhost ~]# vgdisplay--- Volume group ---VG Name myvg#卷组名System IDFormat lvm2Metadata Areas 4Metadata Sequence No 1VG Accessread/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 4Act PV 4VG Size 25.60 GBPE Size 4.00 MB#物理盘的基本单位:默认4MBTotal PE 6553Alloc PE / Size 0 / 0Free PE / Size 6553 / 25.60 GBVG UUID wuNBgb-tP95-pVoX-ehHw-cMfN-hyem-PNMqwe[root@localhost ~]#1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950[root@localhost ~]# lvcreate -L 2G -n mylv1 myvg #创建逻辑卷Logical volume"mylv1"created[root@localhost ~]# lvs #查看逻辑卷LV VG Attr LSize Origin Snap% Move Log Copy% Convertmylv1 myvg -wi-a- 2.00G[root@localhost ~]# mke2fs -j /dev/myvg/mylv1 #格式化逻辑卷mke2fs 1.39 (29-May-2006)Filesystem label=OStype: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)262144 inodes, 524288 blocks26214 blocks (5.00%) reservedforthe super userFirst data block=0Maximum filesystem blocks=53687091216 blockgroups32768 blocks per group, 32768 fragments per group16384 inodes per groupSuperblock 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 or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@localhost ~]# mkdir /mydata #创建挂载目录[root@localhost ~]# mount /dev/myvg/mylv1 /mydata/ #挂载[root@localhost ~]# mount #查看是否挂载成功/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 ~]# ls /mydata/ #查看lost+found[root@localhost ~]# df –h #查看硬盘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 ~]#1234567891011121314151617[root@localhost ~]# pvcreate /dev/sdd #将新硬盘/sdd加入物理卷中Physical volume"/dev/sdd"successfully created[root@localhost ~]# pvs #查看物理卷/dev/cdrom:openfailed: No medium foundPV 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 ~]# vgextend myvg /dev/sdd #扩展卷组Volume group"myvg"successfully extended[root@localhost ~]# vgs #查看新增加的卷组VG#PV #LV #SN Attr VSize VFreemyvg 5 1 0 wz--n- 45.59G 43.59G[root@localhost ~]#123456789101112131415161718192021222324252627282930313233将/dev/myvg/mylv1扩展到4G,并且要求数据可以正常访问[root@localhost ~]# cd /mydata/[root@localhost mydata]# touch index.html[root@localhost mydata]# echo "test" > index.html[root@localhost mydata]# cat index.htmltest[root@localhost mydata]# vgs/dev/cdrom:openfailed: No medium foundVG#PV #LV #SN Attr VSize VFreemyvg 5 1 0 wz--n- 45.59G 43.59G[root@localhost mydata]# lvextend -L +2G /dev/myvg/mylv1Extending logical volume mylv1 to 4.00 GBLogical volume mylv1 successfully resized[root@localhost mydata]# resize2fs -p /dev/myvg/mylv1 #通过 resize2fs 将文件系统的容量确实添加resize2fs 1.39 (29-May-2006)Filesystem at/dev/myvg/mylv1is mounted on/mydata; on-line resizing requiredPerforming an on-line resize of/dev/myvg/mylv1to 1048576 (4k) blocks.The filesystem on/dev/myvg/mylv1is now 1048576 blocks long.[root@localhost mydata]# lvsLV VG Attr LSize Origin Snap% Move Log Copy% Convertmylv1 myvg -wi-ao 4.00G[root@localhost mydata]#[root@localhost mydata]# cat index.htmltest[root@localhost mydata]# df -hFilesystem 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#成功增加了2G[root@localhost mydata]#12345678910111213141516
查看逻辑卷使用空间状况
不能在线缩减,得先卸载
确保缩减后的空间大小依然能存储原有的所有数据
在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态
将/dev/myvg/mylv1缩减到1G,并且要求数据可以正常访问 (所以我们就按上面的提示在操作)[root@localhost ~]#df –lh #查看已用空间大小[root@localhost ~]# umount /dev/myvg/mylv1 #卸载分区[root@localhost ~]# e2fsck -f /dev/myvg/mylv1 #强制检查文件系统[root@localhost ~]# resize2fs /dev/myvg/mylv1 1G #缩减逻辑大小[root@localhost ~]# lvreduce -L 1G /dev/myvg/mylv1 #缩减物理边界大小[root@localhost ~]# lvs #查看逻辑卷/dev/cdrom:openfailed: No medium foundLV VG Attr LSize Origin Snap% Move Log Copy% Convertmylv1 myvg -wi-ao 1.00G[root@localhost ~]# mount /dev/myvg/mylv1 /mydata[root@localhost ~]# ls /mydata/index.html lost+found[root@localhost ~]# cat /mydata/index.htmltest[root@localhost ~]#1234567891011121314151617181920212223
pvmove /dev/sdb1 #将/dev/sdb1上存储的数据移到其它物理卷中
vgreduce myvg /dev/sdb1 #将/dev/sdb1从myvg卷组中移除
pvremove /dev/sdb1 #将/dev/sdb1从物理卷上移除
[root@localhost ~]# pvs/dev/cdrom:openfailed: No medium foundPV 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 ~]# pvmove /dev/sdb1No data to moveformyvg[root@localhost ~]# vgreduce myvg /dev/sdb1Removed"/dev/sdb1"from volume group"myvg"root@localhost ~]# pvremove /dev/sdb1Labels on physical volume"/dev/sdb1"successfully wiped[root@localhost ~]# pvs/dev/cdrom:openfailed: No medium foundPV 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 ~]#1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950[root@localhost ~]# cd /mydata/[root@localhost mydata]# lsindex.html lost+found[root@localhost mydata]# cat index.htmltest[root@localhost mydata]# lvcreate -L 30M -n backup -s -p r /dev/myvg/mylv1 #-L 快照大小 –n:快照名称 –p 权限只读 –s 创建快照Rounding up size to full physical extent 32.00 MBLogical volume"backup"created[root@localhost mydata]# lltotal 20-rw-r--r-- 1 root root 5 Jun 28 01:04 index.htmldrwx------ 2 root root 16384 Jun 28 00:47 lost+found[root@localhost mydata]# mkdir /tmp/backup #创建挂载目录[root@localhost mydata]# mount /dev/myvg/backup /tmp/backup/ #挂载mount: block device/dev/myvg/backupis write-protected, mountingread-only[root@localhost mydata]# cd /tmp/backup/[root@localhost backup]# lsindex.html lost+found[root@localhost backup]# mkdir /tmp/lvmbackup #创建备份目录[root@localhost backup]# tar jcf /tmp/lvmbackup/sandy.tar.bz2 index.html #打包并压缩文件[root@localhost backup]# cd ..[root@localhost tmp]# cd lvmbackup/[root@localhost lvmbackup]# ls #查看备份sandy.tar.bz2[root@localhost lvmbackup]# cd /mydata/[root@localhost mydata]# lltotal 20-rw-r--r-- 1 root root 5 Jun 28 01:04 index.htmldrwx------ 2 root root 16384 Jun 28 00:47 lost+found[root@localhost mydata]# rm -rf * #删除所有文件[root@localhost mydata]#[root@localhost mydata]# lltotal 0[root@localhost mydata]# tar xf /tmp/lvmbackup/sandy.tar.bz2 #还原备份数据[root@localhost mydata]# lltotal 4-rw-r--r-- 1 root root 5 Jun 28 01:04 index.html[root@localhost mydata]# cat index.htmltest[root@localhost mydata]# df -hFilesystem 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]#