LVM基本术语
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
-
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
-
物理卷(physical volume,PV)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
-
卷组(VolumeGroup,VG)LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
-
逻辑卷(logical volume,LV)LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
-
PE(physical extent, PE)每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
-
LE(logical extent,LE)逻辑卷也被划分为被称为LE(LogicalExtents)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
我的centos系统默认没有安装lvm安装包! 可以使用命令:yum install lvm2 进行安装!!!!
1、创建分区类型为8e的分区
使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。
为了后期便于维护管理,记得给分区加上标示,这样即使你不在的情况下,别人看到标示了就不会轻易动这块区域了. LVM的标识是8e,设置完成后记得按w保存
大家看见 The new table will be used at the next reboot没?意思就是这个分区在下次启动的时候才能使用,我们可以使用一个命令,让这个分区马上生效哈~
输入 #partprobe ( yum -y install parted )
如果报错(Warning: WARNING: the kernel failed to re-read the partition table on /dev/xvda (Device or resource busy). As a result, it may not reflect all of your changes until after reboo)
执行下面的参数:
sudo cat /proc/partitions
partx -a /dev/xvda
sudo cat /proc/partitions
2、创建物理卷PV (physical volume)
创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。
[root@linux~]$pvcreate /dev/sdb1 /dev/sdb2 添加两个分区为物理卷
[root@linux~]$pvcreate/dev/hda7 添加一个分区为物理卷
3、创建卷组VG (volume group)
创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:
[root@linux~]$vgcreate vgdata /dev/sdb1 /dev/sdb2 #vgdata是卷组的名字,自定义
4、创建逻辑卷组 (Logical Volume Group)
创建逻辑卷的命令为lvcreate:
[root@linux~]$ lvcreate -L 500M –n lvdatal vgdata
该命令就在 vgdata卷组 上创建名字为 lvdatal 的逻辑卷组,大小为500M的,并且设备入口为 /dev/vgdate/lvdatal。
5、在逻辑卷组上创建文件系统!!
使用mkfs.ext4命令在逻辑卷lvdatal上创建ext4文件系统.
mkfs.ext4 /dev/vgdate/lvdatal
#mkfs -t ext3 /dev/sdax (这样也可以!!)
6、挂载!
在创建好的逻辑卷组上创建好文件系统以后就可一直接挂载使用了!!
命令: mount /dev/vgdata/lvdatal /back #把创建好的逻辑卷组挂载到新建的/back目录下!
如果ls /back 目录里面有lost+found目录说明挂载的逻辑卷组可以正常使用了,因为新建的back目录是不会有lost+found
我们创建LVM是从物理分区-物理卷pv-卷组vg-逻辑卷-挂载到目录这个顺序来的..
重点来了!!!下面是怎么随意改变逻辑卷组的大小!
[root@clear /]# pvdisplay #查看物理卷的信息!! 我的物理卷是由两个分区(sdb1和sdb2)组成的!!
--- Physical volume --- # 这两个分区的文件类型为lvm也就是8e.
PV Name /dev/sdb1
VG Name vgdate
PV Size 1.01 GiB / not usable 3.41 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 258
Free PE 133
Allocated PE 125
PV UUID lu4lvW-GKe1-2I11-ISPM-0aor-UMmE-AjzFPW
--- Physical volume ---
PV Name /dev/sdb2
VG Name vgdate
PV Size 1.01 GiB / not usable 3.44 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 258
Free PE 258
Allocated PE 0
PV UUID g2OdBL-qomg-KWQU-Pb1t-Gz0w-Umkm-U9kn1n
[root@clear /]# vgdisplay #查看卷组的信息!! 卷组vgdate是由物理卷里面的两个分区创建的,所以卷组的大小是sdb1和sdb2的和!
--- Volume group ---
VG Name vgdate
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 2.02 GiB
PE Size 4.00 MiB
Total PE 516
Alloc PE / Size 125 / 500.00 MiB
Free PE / Size 391 / 1.53 GiB
VG UUID vb0yv7-xy2Q-EtO5-tiOw-7ddH-9dEm-J2oWev
[root@clear /]# lvdisplay #查看逻辑卷组的信息!! 逻辑卷组lvdatal是在卷组vgdate里面创建的! 所以逻辑卷组的大小是不可能超过卷组的大小的!!!
--- Logical volume ---
LV Path /dev/vgdate/lvdatal #当逻辑卷组的大小不够用的时候,可以不断增大直到卷组全部没有剩余的空间.
LV Name lvdatal #当卷组没有剩余的空间了,我们可以创建物理卷,然后把物理卷添加到卷组!
VG Name vgdate
LV UUID bYR8Xp-kIS9-u6B5-O3UU-NqVv-ENd2-nEZ4WU
LV Write Access read/write
LV Creation host, time clear.limit, 2013-03-29 02:01:46 +0800
LV Status available
# open 1
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
shijzh增加逻辑卷组容量的时候有两种情况!!
一.卷组有空闲容量!
直接通过命令lvextend –L +200M /dev/vgdata/lvdatal 或者 lvextend –l 2.5G /dev/vgdata/lvdatal 给lvdatal增加200M空间
注意: lvextend -l +100%FREE /dev/vgdata/lvdatal 把剩余的所有空间分给lvdatal逻辑卷组
resize2fs /dev/vgdata/lvdatal 记得使用resize2fs命令来同步文件系统.
二.卷组容量已经用完,这种情况比较多..
首先 创建8e文件类型的物理分区,并把物理创建成物理卷!
创建屋里分区省略...
把物理分区创建成物理卷
[root@linux~]$pvcreate /dev/sdb3
然后把物理卷加入需要扩容的卷组 vgdate!
[root@linux~]$ vgextend vgdata /dev/sdb3 #卷组没有文件系统所以不用同步文件系统!!
使用vgdisplay vgdata 可以查看vgdata卷组的容量是否增加了!!
然后使用命令 lvextend –L +200M /dev/vgdata/lvdatal 或者 lvextend –l 2.5G /dev/vgdata/lvdatal 给lvdatal增加200M空间
注意: lvextend -l +100%FREE /dev/vgdata/lvdatal 把剩余的所有空间分给lvdatal逻辑卷组
最后 记得使用 resize2fs /dev/vgdata/lvdatal (resize2fs 命令来同步文件系统).
LVM的删除!! 删除和安装一样反着来就好了!!从卸载-删除逻辑卷-删除卷组vg-删除物理卷pv-删除物理分区
卸载 : umount /back
删除逻辑卷: lvremove /dev/vgdata/lvdatal
删除卷组:vgremove vgdata
删除物理卷:pvremove /dev/sdb1
pvremove /dev/sdb2
删除物理分区: 这个就不多说了!!
以上知识LVM常用的增加容量的功能和创建/删除lvm的具体方法,其它的 缩减逻辑卷组 磁盘损坏转移数据可以参考 http://dreamfire.blog.51cto.com/418026/1084729/
---------------工作中遇到的问题--------------------------
Vsphere 虚拟机硬盘扩容步骤;
注意:被扩容的磁盘分区必须是LVM系统管理的分区. 否则无法对分区扩容.
1:先通过sphere client 或者 vcenter 关闭虚拟机给虚拟机扩容.
2:进入linux系统分区情况
[root@DFS2 src]# fdisk -l
Disk /dev/sda: 96.6 GB, 96636764160 bytes
255 heads, 63 sectors/track, 11748 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002db15
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 10444 83373056 8e Linux LVM (符合扩容要求)
3:在/dev/sda设备上创建新的主分区,即把新增的容量做成一个新的主分区.
fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)p
Partition number (1-4): 3
First cylinder (2611-3916, default 2611): "enter"Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"Using default value 3916
Command (m for help): t
Partition number (1-5): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
4:把创建的分区创建成物理卷并加入到卷组.
root@Mega:~# pvcreate /dev/sda3 #
Device /dev/sda3 not found (or ignored by filtering).
root@Mega:~# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
root@Mega:~# vgdisplay
--- Volume group ---
VG Name Mega
...
VG Size 19.76 Gib
root@Mega:~# vgextend Mega /dev/sda3
Volume group "Mega" successfully extended
root@Mega:~# pvscan
PV /dev/sda5 VG Mega lvm2 [19.76 GiB / 0 free]
PV /dev/sda3 VG Mega lvm2 [10.00 GiB / 10.00 GiB free]
Total: 2 [29.75 GiB] / in use: 2 [29.75 GiB] / in no VG: 0 [0 ]
root@Mega:~# lvdisplay
--- Logical volume ---
LV Name /dev/Mega/root
root@Mega:~# lvextend /dev/Mega/root /dev/sda3
Extending logical volume root to 28.90 GiB
Logical volume root successfully resized
oot@Mega:~# resize2fs /dev/Mega/rootresize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/Mega/root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/Mega/root to 7576576 (4k) blocks.
The filesystem on /dev/Mega/root is now 7576576 blocks long.
学习就学习呗,怎么还考试?!怎么人和人之间一点信任都没有!