目录
一、 LVM PV VG LV 理解
二、磁盘分区新增和删除
新建分区
删除分区
三、LVM的创建与删除
LVM的创建
LV的缩容
LV的扩容
LVM的卸载
注意:xfs的不能缩容也不能用resize2fs,只有xfs_growfs。
不论哪个系统都不能用e2fsck,因为e2fsck可能会丢失数据。
一、 LVM PV VG LV 理解
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,是磁盘管理的一种工具,就目前基本上所有操作系统均支持。LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。
- 物理存储介质(The physical media)
这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
- 物理卷(PV physical volume)
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
- 卷组(VG Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
- 逻辑卷(LV logical volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
- PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
- LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
- PV、VG、LV的关系
首先可以看到,物理卷(PV)被由大小等同的基本单元PE组成。一个卷组由一个或多个物理卷组成。
从上图可以看到,PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区,可以在其上创建文件系统。
下图是磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图:
二、磁盘分区新增和删除
新建分区
- 使用fdisk -l查看硬盘分区情况
- 输入fdisk /dev/sda2对硬盘分区/dev/sda2进行操作,输入m显示帮助信息。
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 注:这是删除一个分区的动作;
l list known partition types 注:l是列出分区类型,以供我们设置相应分区的类型;
m print this menu 注:m 是列出帮助信息;
n add a new partition 注:添加一个分区;
o create a new empty DOS partition table
p print the partition table 注:p列出分区表;
q quit without saving changes 注:不保存退出;
s create a new empty Sun disklabel
t change a partition's system id 注:t 改变分区类型;
u change display/entry units
v verify the partition table
w write table to disk and exit 注:把分区表写入硬盘并退出;
x extra functionality (experts only) 注:扩展应用,专家功能;
- 输入n新建一个分区。
Command (m for help): n 注:添加分区
Partition type:
p primary (0 primary, 0 extended, 4 free) 注:0个主分区,4个空闲分区
e extended 注:扩展分区
Select (default p): p 注:添加主分区,默认主分区;
Partition number (1-4, default 1): 3 注:添加主分区3
First sector (2048-39843839, default 2048): 注:直接回车,主分区3的开始位置。默认为2048,默认就好;
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2099200-209715199, default 209715199): +2G 注:指定分区大小,用+2G来指定大小为2G。
- 输入p显示/dev/sda2的分区情况。
- 输入w把分区表写入硬盘并退出。
删除分区
- 输入fdisk /dev/sda2,输入p查看/dev/sda2的分区情况。
- 输入d删除分区(由于只有一个分区,不需要后面步骤,直接删除)。
输入p查看分区情况,发现分区已被删除。
- 输入w,把分区写入硬盘并退出。
三、LVM的创建与删除
LVM的创建
如果想LVM文件系统挂载随机启动需要修改/etc/fastab文件。
- 在虚拟机设置中添加两块硬盘(sda不能作为新分区进行pvcreate,系统安装时自动分区就已经将sda作为lvm的文件系统)
- 使用fdisk -l查看分区情况,新硬盘被识别为/dev/sdb和/dev/sdc
- 将/dev/sdb分成sdb1、sdb2、sdb3
- 使用sdb1和sdb2创建PV(可以使用pvs查看pv情况)
pvcreate /dev/sdb1
pvcreate /dev/sdb2
- 使用刚创建的PV创建VG组(可以使用vgs查看vg情况)
vgcreate vgsxqiu /dev/sdb1 /dev/sdb2
- 使用VG组vgsxqiu创建LV(采用lvremove vgsxqiu可以删除使用vgsxqiu创建的lv)
lvcreate -n lvsxqiu01 -L 2G vgsxqiu 注:使用VG组vgsxqiu中的1G创建lvsxqiu01
lvcreate -n lvsxqiu02 -l 30%VG vgsxqiu 注:使用现VG组vgsxqiu中的30%创建lvsxqiu02
lvcreate -n lvsxqiu03 -l 100%free vgsxqiu 注:使用现VG组vgsxqiu中剩余的空间创建lvsxqiu02
- 使用lvs查看LV情况
- 使用刚创建的LV创建文件系统并进行挂载(用df -h查看挂载情况)
mkfs.ext4 /dev/vgsxqiu/lvsxqiu01
mkfs.ext4 /dev/vgsxqiu/lvsxqiu02
mkfs.ext4 /dev/vgsxqiu/lvsxqiu03
mkdir /orasxqiu01
mkdir /orasxqiu02
mkdir /orasxqiu03
mount /dev/vgsxqiu/lvsxqiu01 /orasxqiu01
mount /dev/vgsxqiu/lvsxqiu02 /orasxqiu02
mount /dev/vgsxqiu/lvsxqiu03 /orasxqiu03
LV的缩容
LV可以进行在线扩容,所以不需要解挂载。但LV必须是离线缩容,需要解挂载。
- 使用df -h查看现在的挂载情况
- 对lvsxqiu01进行解挂载
umount /orasxqiu01
- resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小、刷新文件系统设备的缓冲区。
缩容可能会破坏缓冲区的数据,所以需要先resize2fs。
resize2fs /dev/mapper/vgsxqiu-lvsxqiu01
- 对lvsxqiu01进行缩容,将其缩容到1.5G
lvreduce -L 1.5G /dev/mapper/vgsxqiu-lvsxqiu01
- 采用resize2fs命令来收缩未加载的“ext2/ext3/ext4”文件系统的大小。
resize2fs /dev/mapper/vgsxqiu-lvsxqiu01
- 重新挂载lvsxqiu01到/orasxqiu01
用df -h可以查看到现在lvsxqiu01为1.5G。
LV的扩容
LV可以进行在线扩容,所以不需要解挂载。但LV必须是离线缩容,需要解挂载。
- 对lvsxqiu01进行扩容(lvs可以查看到lvsxqiu01变为2G)
lvextend -L +0.5G /dev/mapper/vgsxqiu-lvsxqiu01
lvextend -l +100%free /dev/mapper/vgsxqiu-lvsxqiu01(表示将vg的free空间扩容到lvsxqiu01)
- 采用resize2fs命令来增大未加载的“ext2/ext3/ext4”文件系统的大小。
(若没有使用resize2fs命令,则df -h看到的lvsxqiu01大小仍为1.5G)
resize2fs /dev/mapper/vgsxqiu-lvsxqiu01
- df -h查看到resize2fs后的lvsxqiu01大小为2G
LVM的卸载
LVM的卸载过程与LVM的创建过程相反
- 解挂载所有LV
umount /orasxqiu01
umount /orasxqiu02
umount /orasxqiu03
- 删除所有的LV
lvremove /dev/mapper/vgsxqiu-lvsxqiu01
lvremove /dev/mapper/vgsxqiu-lvsxqiu02
lvremove /dev/mapper/vgsxqiu-lvsxqiu03
- 删除VG组
vgremove /dev/mapper/vgsxqiu
- 删除PV
pvremove /dev/sdb1
pvremove /dev/sdb2