1、PV VG LV概念
PV,VG,LV构成了一种易于管理拥有一个或多个硬盘的主机的文件系统,这些硬盘可能只有一个分区也可能有多个。通过将这些物理存在的分区(或称为卷)PV(physical volume)进行整合,组成一个分区(卷)组VG(volume group),进而再次进行分配形成逻辑分区(卷)LV(logical volume)。创建成功的逻辑分区对于操作系统来说会想普通分区无异,其好处是可以动态调整分区大小。管理PV,VG,LV的工具称为逻辑卷管理器LVM(logical volume manager)。其关系如下图所示:
2、环境信息
cat /etc/centos-release
CentOSLinux release 7.8.2003(Core)
3、查看当前文件系统的空间分配情况
[root@localhost ~]# df -h
文件系统容量已用可用已用%挂载点
devtmpfs 1.9G01.9G0%/dev
tmpfs 1.9G01.9G0%/dev/shm
tmpfs 1.9G8.9M1.9G1%/run
tmpfs 1.9G01.9G0%/sys/fs/cgroup
/dev/mapper/centos-root 44G4.4G40G10%/
/dev/sda1 1014M150M865M15%/boot
tmpfs 379M0379M0%/run/user/0
可以看到挂载点为根目录的文件系统/dev/mapper/centos-root现在一共是44GB的空间,现在我想新加入一块1TB物理磁盘,将新的磁盘全部挂载到这个文件系统中(44GB+1TB)
4、查看当前磁盘空间
[root@localhost ~]# fdisk -l
磁盘/dev/sda:53.7 GB,53687091200字节,104857600个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘标签类型:dos
磁盘标识符:0x000b638c
设备BootStartEndBlocksIdSystem
/dev/sda1 *20482099199104857683Linux
/dev/sda2 2099200104857599513792008eLinux LVM
磁盘/dev/mapper/centos-root:47.2 GB,47240445952字节,92266496个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘/dev/mapper/centos-swap:5368 MB,5368709120字节,10485760个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
目前只有一块物理磁盘sda
4、新增物理磁盘
我使用的是ESXi的虚拟机,现在我给虚拟机新增一块1TB的空磁盘
新增磁盘后返回ssh重新查看磁盘列表信息
[root@localhost ~]# fdisk -l
磁盘/dev/sda:53.7 GB,53687091200字节,104857600个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘标签类型:dos
磁盘标识符:0x000b638c
设备BootStartEndBlocksIdSystem
/dev/sda1 *20482099199104857683Linux
/dev/sda2 2099200104857599513792008eLinux LVM
磁盘/dev/mapper/centos-root:47.2 GB,47240445952字节,92266496个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘/dev/mapper/centos-swap:5368 MB,5368709120字节,10485760个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘/dev/sdb:1099.5 GB,1099511627776字节,2147483648个扇区
Units=扇区 of 1*512=512 bytes
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
可以看到此时已经多了一块大小为1099.5 GB名为sdb的新磁盘。
但是现在还无法使用,我们先给它分个区。
5、PV前期准备工作
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符0xa981a92f创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m printthis 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 system id
u change display/entry units
v verify the partition table
w write table to disk andexit
x extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary,0 extended,4 free)
e extended
Select(default p): p
分区号(1-4,默认1):1
起始扇区(2048-2147483647,默认为2048):
将使用默认值2048
Last扇区,+扇区or+size{
K,M,G}(2048-2147483647,默认为2147483647):
将使用默认值2147483647
分区1已设置为Linux类型,大小设为1024GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
我只划分了一个分区sdb1,可根据自身需求划分多个分区,但需要提前规划好各分区容量。最后不要忘记输入w来保存信息。
现在我们给新分区指定分区类型
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
已选择分区1
Hex代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
分区类型:很多,一般描述的是磁盘分区的用途,比如要做逻辑卷和swap分区的需要指定特定的分区类型,没有特殊用途,只是普通作为存储数据的,保持默认的分区类型就可以了。
文件系统:描述的是文件在磁盘里的存储方式,权限定义,i节点分配等功能。
一般情况下,Windows默认的文件系统为:NTSFREDHAT7默认的文件系统为:XFS
REDHAT6默认的文件系统为:ext4 同样不要忘记w保存
6、格式化PV
现在格式化一下我们新建的sdb1分区
[root@localhost ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.42.9(28-Dec-2013)
Discarding device blocks:完成
文件系统标签=
OS type:Linux
块大小=4096(log=2)
分块大小=4096(log=2)
Stride=0 blocks,Stripe width=0 blocks
67108864 inodes,268435200 blocks
13421760 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
8192 block groups
32768 blocks per group,32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768,98304,163840,229376,294912,819200,884736,1605632,2654208,
4096000,7962624,11239424,20480000,23887872,71663616,78675968,
102400000,214990848
Allocatinggroup tables:完成
正在写入inode表:完成
Creating journal (32768 blocks):完成
Writing superblocks and filesystem accounting information:完成
7、使用lvm创建PV
[root@localhost ~]# lvm pvcreate /dev/sdb1
WARNING: ext3 signature detected on /dev/sdb1 at offset 1080.Wipe it?[y/n]: y
Wiping ext3 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
创建好了之后,查看一下现在的pv列表
[root@localhost ~]# lvm pvdisplay
---Physical volume ---
PV Name/dev/sda2
VG Name centos
PV Size<49.00GiB/not usable 3.00MiB
Allocatable yes (but full)
PE Size4.00MiB
Total PE 12543
Free PE 0
Allocated PE 12543
PV UUID fQgbcS-biIL-kGQT-MU0L-8cpV-Kmv5-6kZtcc
"/dev/sdb1"is a new physical volume of "<1024.00 GiB"
--- NEW Physical volume ---
PV Name/dev/sdb1
VG Name
PV Size<1024.00GiB
Allocatable NO
PE Size0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID G4Jldl-0RGv-HmhP-UUKf-vGbc-S32e-h42UTm
8、将新的PV加入VG
首先我们先来看一下目前的VG列表
[root@localhost ~]# lvm vgdisplay
---Volumegroup---
VG Name centos
System ID
Format lvm2
MetadataAreas1
MetadataSequenceNo3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size<49.00GiB
PE Size4.00MiB
Total PE 12543
Alloc PE /Size12543/<49.00GiB
Free PE /Size0/0
VG UUID Cd3LKc-dtg5-otbP-UHOO-QoAK-wkSs-0XljMj
只有一个名为centos的系统创建的vg。我们直接将新的PV加入其中即可,也可以自己创建新的VG。
[root@localhost ~]# lvm vgextend centos /dev/sdb1
Volumegroup"centos" successfully extended
[root@localhost ~]# lvm vgdisplay
---Volumegroup---
VG Name centos
System ID
Format lvm2
MetadataAreas2
MetadataSequenceNo4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size<1.05TiB
PE Size4.00MiB
Total PE 274686
Alloc PE /Size12543/<49.00GiB
Free PE /Size262143/<1024.00GiB
VG UUID Cd3LKc-dtg5-otbP-UHOO-QoAK-wkSs-0XljMj
加入VG后再次查看VG列表,发现VG已经扩大到1个T了。
9、LV扩容
现在我们可以给根目录挂载点的LV扩容了
[root@localhost ~]# lvm lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from<44.00GiB(11263 extents) to 1.04TiB(273406 extents).
Logical volume centos/root successfully resized.
可以看到LV的大小已经从44GB改变到1.04TB了
这个指令的含义是,将100%的剩余可用空间全部分配给/dev/mapper/centos-root
也可以指定具体的数值
$ lvm lvextend -L +1T/dev/mapper/centos-root
重新调整逻辑分区大小
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2883328 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=11533312, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5631, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from11533312 to 279967744
最后再次查看磁盘空间信息,发现根目录挂载点已经扩容成功了。
[root@localhost ~]# df -h
文件系统容量已用可用已用%挂载点
devtmpfs 1.9G01.9G0%/dev
tmpfs 1.9G01.9G0%/dev/shm
tmpfs 1.9G8.9M1.9G1%/run
tmpfs 1.9G01.9G0%/sys/fs/cgroup
/dev/mapper/centos-root 1.1T4.4G1.1T1%/
/dev/sda1 1014M150M865M15%/boot
tmpfs 379M0379M0%/run/user/0
还没有评论,来说两句吧...