LINUX创建与扩展LVM分区
一、使用场景:
1、创建LVM分区
2、扩展LVM分区
/data/目录为LVM分区,磁盘空间现不够,需要加多一块,并将之扩展到之前的分区内
什么是LVM分区?
由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理。由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数据的情况。
LVM(Logic Volume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区管理的一种机制。对于其他的的UNIX(AIX/HP/SUM)操作系统,以及Windows系统也有类似的磁盘管理软件。
LVM管理的方式非常简单,就是通过将底层的物料磁盘抽象并封装起来,然后以逻辑的方式呈现给上层应用。
LVM磁盘结构

二、场景一:创建LVM分区
测试方法:先在VMWARE添加一块50G的磁盘
shell> fdisk -l #查看新增的磁盘,如新增的盘为sdb
shell> fdisk /dev/sdb #### 选择磁盘
Command (m for help): m #### 帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n #### 创建新的分区
Command action
e extended
p primary partition (1-4)
p #### 创建主分区
Partition number (1-4):1 #### 分区ID
First cylinder (1-65270, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270):
Using default value 65270
Command (m for help):t #### 修改分区类型
Command (m for help):8e #### Linux lvm
Command (m for help):w #### 保存修改
shell> pvcreate /dev/sdb1/ #### 创建新的pv卷
shell> pvs #### 查看pv卷
shell> vgcreate vgdata /dev/sdb1/ #### 创建新的vg卷
shell> vgs #### 查看vg卷
shell> lvcreate -L 50G -n lvmdata vgdata #### 创建逻辑卷 -L 指定分区大小 -n 指定lvm名称
shell> mkfs.xfs /dev/vgdata/lvmdata #### 使用mkfs.xfs命令在逻辑卷lvmServer上创建ext4文件系统
shell> mount /dev/vgdata/lvmdata /data/ #### 挂在分区到本地目录/server
shell> vi /etc/fstab #### 修改fstab 开机自动挂载
#
# /etc/fstab
# Created by anaconda on Thu Aug 14 21:16:42 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=94e4e384-0ace-437f-bc96-057dd64f42ee / ext4 defaults,barrier=0 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/vgdata/lvmdata /data xfs defaults 0 0
:wq
#### 保存重启测试
注意:
* fstab一定要正确填写路径,一旦出错,可能无法正常启动.
* 可以在rc.local使用mount命令进行挂载
如果增加的空间不够,可使用以下将未划分的空间在线扩容
lvextend -L +40G /dev/vgdata/lvmdata (全部分配则用lvextend -l +100%FREE /dev/vgdata/lvmdata)(使用vgs可查看剩余空间)
xfs_growfs /dev/vgdata/lvmdata (动态扩容分区的大小,ext4使用resize2fs /dev/vgdata/lvmdata)
三、场景二,扩展LVM分区
新增一块磁盘,并将其加入之以前LVM分区
1、将新增加的磁盘创建成LVM分区,方法和之前一样
shell> fdisk -l #查看新增的磁盘,如新增的盘为sdc
shell> fdisk /dev/sdc #### 选择磁盘
Command (m for help): m #### 帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n #### 创建新的分区
Command action
e extended
p primary partition (1-4)
p #### 创建主分区
Partition number (1-4):1 #### 分区ID
First cylinder (1-65270, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270):
Using default value 65270
Command (m for help):t #### 修改分区类型
Command (m for help):8e #### Linux lvm
Command (m for help):w #### 保存修改
如新添加进一个磁盘后,未见到磁盘,可通过以下进行扫描。
# echo '- - -' > /sys/class/scsi_host/host0/scan
# echo '- - -' > /sys/class/scsi_host/host1/scan
# echo '- - -' > /sys/class/scsi_host/host2/scan
# echo '- - -' > /sys/class/scsi_host/host3/scan
2、pvcreate命令 用于将物理硬盘分区初始化为物理卷,以便LVM使用。
shell> pvcreate /dev/sdc1 #### 创建新的pv卷
3、使用vgdisplay查看已经存在的卷组名称,如当前/分区所在卷组名称为vgdata
[root@JKtest ~]# vgdisplay
--- Volume group ---
VG Name vgdata
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <50.00 GiB
PE Size 4.00 MiB
Total PE 12799
Alloc PE / Size 12799 / <50.00 GiB
Free PE / Size 0 / 0
VG UUID Xxi1gu-2BQP-DeKq-i1t1-6i9s-T9pB-k2ep2S
4、使用vgextend vgdata /dev/sdc 将刚才创建的物理卷/dev/sdc加入根分区的卷组vgdata中
[root@JKtest ~]# vgextend vgdata /dev/sdc1
Volume group "vgdata" successfully extended
如不小心加错,可通过vgreduce移出
vgreduce vgdata /dev/sdc1
5、再次使用vgdisplay查看刚才刚才加入卷组中的物理卷,如图所示,显示空闲空间大小,即为刚刚添加的大小
[root@JKtest ~]# vgdisplay
--- Volume group ---
VG Name vgdata
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
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 176.99 GiB
PE Size 4.00 MiB
Total PE 45310
Alloc PE / Size 12799 / <50.00 GiB
Free PE / Size 32511 / <127.00 GiB
VG UUID Xxi1gu-2BQP-DeKq-i1t1-6i9s-T9pB-k2ep2S
6、动态扩容空间
lvextend -L +40G /dev/vgdata/lvmdata (全部分配则用lvextend -l +100%FREE /dev/vgdata/lvmdata)
xfs_growfs /dev/vgdata/lvmdata (动态扩容分区的大小,ext4使用resize2fs /dev/vgdata/lvmdata)