一,一些概念:
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。安装OEL6等linux系统默认的格式就是lvm的,比如:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 976773119 487873536 8e Linux LVM
先来了解下一些概念,网上摘录:
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
二,创建步骤
1,创建lvm分区
fdisk /dev/sdb -> n p 编号 大小 t 8e p查看 w保存
partprobe
2, 创建lvm
创建PV: pvcreate /dev/sdb2 查看:pvdisplay或者pvscan
创建VG: vgcreate logevg /dev/sdb2 扩展:vgextend logevg /dev/sdb3 (其中logevg是要擴容的vg,后便接的是新的PV)
查看:vgdisplay或者vgscan
创建LV: lvcreate -L 100M -n logelv logevg 扩展:lvextend -L /dev/logevg/logelv
如果想把新加入的盘全部扩容,则执行lvextend -l +100%FREE /dev/logevg/logelv
(扩容后,需要执行resize2fs /dev/logevg/logelv才能生效,如果是xfs文件系统,执行xfs_growfs /dev/logevg/logelv)查看:lvdisplay或者lvscan
格式化LV:mkfs.ext4 /dev/logevg/logelv 如果是扩展不需要重复格式化
挂载:mkdir /lvmount ; mount /dev/logevg/logelv /lvmount;永久挂载修改/etc/fstab
查看:df -h
三,其他命令
还有其他一些命令,比如移除操作相关:pvmove,pvremove,vgremove,vgreduce,pvremove
目前大磁盘已经非常常见,使用fdisk就不合适了
查看大磁盘:
使用parted创建xfs分区,下面红框标记的为注意的地方:
如果有问题(The resulting partition is not properly aligned for best performance)可以参考网上说的
[root@localhost ~]# cat /sys/block/sdb/queue/minimum_io_size
262144
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# cat /sys/block/sda/queue/optimal_io_size
786432
[root@localhost ~]# cat /sys/block/sda/alignment_offset
0
[root@localhost ~]# cat /sys/block/sda/queue/physical_block_size
4096
把optimal_io_size的值与alignment_offset的值相加,之后除以physical_block_size的值,需要注意的是在我的机器中physical_block_size显示的是4096,但是不行,换成512却可以,原因未知,因此在我的服务器中(786432 + 0) / 4096 = 192还是会有警告,但是(786432 + 0) / 512 = 1536是没警告的,本文使用的也是1536