前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux LVM --- 硬盘扩容

Linux LVM --- 硬盘扩容

作者头像
Kevin song
发布2020-03-24 11:38:41
24.8K0
发布2020-03-24 11:38:41
举报
文章被收录于专栏:运维监控日志分析

简介

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,在Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。

LVM组成

Logical Volume Manager(逻辑卷管理)

PV:是物理的磁盘分区

VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库统一管理了几个大的硬盘,形成了一个统一虚拟的存储资源池。

LV:也就是从VG中划分的逻辑分区

LVM模型

操作环境介绍

1,在线扩容根分区,根分区100G,新增一块20G硬盘,将根分区扩容至120G。

2,新建逻辑卷并扩容和缩减,新增2块20G磁盘,划分10GLV,再扩容10G,随后缩减5G.

扩容根分区

查看系统可用块设备以及依赖关系

代码语言:javascript
复制
[root@zabbix-server ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   91G  0 lvm  /
  └─centos-swap 253:1    0    8G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.3G  0 rom

查看系统初始硬盘

代码语言:javascript
复制
[root@zabbix-server ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        91G  1.6G   90G   2% /
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  139M  359M  28% /boot
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0

查看当前物理卷

代码语言:javascript
复制
[root@zabbix-server ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  99.00g    0

创建硬盘分区

代码语言:javascript
复制
[root@zabbix-server ~]# fdisk  /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6488a7cc.

Command (m for help): n    //添加新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p   // 回车,默认p,主分区
Partition number (1-4, default 1):   // 回车,默认1
First sector (2048-41943039, default 2048):  // 回车,默认起始位置
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):  // 回车,默认最后位置
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): t // 更改分区格式
Selected partition 1
Hex code (type L to list all codes): L // 查看可选项

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e // 更改分区格式为LVM
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): p  //打印,Blocks为分区大小 单位为kb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x6488a7cc

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM

Command (m for help): w    //保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

将物理硬盘格式化成PV(物理卷) 使用的是pvcreate命令

代码语言:javascript
复制
[root@zabbix-server ~]# pvcreate  /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created.

查看当前vg信息

代码语言:javascript
复制
[root@zabbix-server ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  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               99.00 GiB
  PE Size               4.00 MiB
  Total PE              25344
  Alloc PE / Size       25344 / 99.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               280QHe-8dkW-t34f-9JKh-QhMk-1rZE-cejqal

把转换好的物理卷并到vg(卷组)中, 通过vgcreate命令

代码语言:javascript
复制
[root@zabbix-server ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended
[root@zabbix-server ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  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               <119.00 GiB
  PE Size               4.00 MiB
  Total PE              30463
  Alloc PE / Size       30463 / <119.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               280QHe-8dkW-t34f-9JKh-QhMk-1rZE-cejqal

查看逻辑卷,默认系统分了2个,选择对应逻辑卷路径

代码语言:javascript
复制
[root@zabbix-server ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                vhJWup-CgKn-C9xH-dmOv-3iLW-TM4g-ezKp3R
  LV Write Access        read/write
  LV Creation host, time zabbix-server, 2019-07-29 18:48:17 +0800
  LV Status              available
  # open                 1
  LV Size                <111.00 GiB
  Current LE             28415
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                813MLJ-AbCR-hdvv-85hd-L289-GHEH-DDC1Lj
  LV Write Access        read/write
  LV Creation host, time zabbix-server, 2019-07-29 18:48:17 +0800
  LV Status              available
  # open                 2
  LV Size                8.00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

扩容当前逻辑卷空间

代码语言:javascript
复制
[root@zabbix-server ~]# lvextend /dev/centos/root /dev/sdb1
  Size of logical volume centos/root changed from 91.00 GiB (23296 extents) to <111.00 GiB (28415 extents).
  Logical volume centos/root successfully resized.

写入文件系统,使扩容生效

代码语言:javascript
复制
[root@zabbix-server ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=5963776 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=23855104, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=11648, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 23855104 to 29096960

使用ext文件系统,可以使用resize2fs命令替换xfs_growfs命令。

查看扩容后的物理卷

代码语言:javascript
复制
[root@zabbix-server ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   99.00g    0 
  /dev/sdb1  centos lvm2 a--  <20.00g    0

查看根分区扩容效果

代码语言:javascript
复制
[root@zabbix-server ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs       111G  1.6G  110G   2% /
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  139M  359M  28% /boot
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0

新建逻辑分区扩容

查看硬盘信息

查看系统可用块设备以及依赖关系

将新增磁盘格式化为物理卷PV

代码语言:javascript
复制
[root@zabbix-server ~]# pvcreate  /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

查看pv信息

创建卷组(diskvg),并将PV加入到卷组中 通过vgcreate命令

代码语言:javascript
复制
[root@zabbix-server ~]# vgcreate diskvg /dev/sdb /dev/sdc
Volume group "diskvg" successfully created

通过vgdisplay或vgs命令查看vg的信息

代码语言:javascript
复制
[root@zabbix-server ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 99.00g     0 
  diskvg   2   0   0 wz--n- 19.99g 19.99g
[root@zabbix-server ~]# vgdisplay 
  --- Volume group ---
  VG Name               diskvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               itBEsX-bKdl-lqdf-qd8y-07AG-W12i-lFIvL0
   
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  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               99.00 GiB
  PE Size               4.00 MiB
  Total PE              25344
  Alloc PE / Size       25344 / 99.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               280QHe-8dkW-t34f-9JKh-QhMk-1rZE-cejqal

基于卷组(VG)创建逻辑卷(LV) 通过lvcreate命令

lvcreate -n app1 -L 5G diskvg (基于diskvg创建逻辑卷lv,名字为app,大小为5G)

代码语言:javascript
复制
[root@zabbix-server ~]# lvcreate -n app1 -L 5G diskvg
  Logical volume "app1" created.

用lvdisplay或lvs命令查看创建好的逻辑卷。可以看到名字为app1的逻辑卷lv已经创建好了,它是基于diskvg创建的,大小为5G

代码语言:javascript
复制
[root@zabbix-server ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 91.00g                                                    
  swap centos -wi-ao----  8.00g                                                    
  app1 diskvg -wi-a-----  5.00g

格式化逻辑卷

代码语言:javascript
复制
[root@zabbix-server ~]# mkfs -t xfs  /dev/diskvg/app1
meta-data=/dev/diskvg/app1       isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载文件系统

代码语言:javascript
复制
[root@zabbix-server ~]# mkdir /app1
[root@zabbix-server ~]# mount  /dev/diskvg/app1 /app1
[root@zabbix-server ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        91G  1.2G   90G   2% /
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  139M  359M  28% /boot
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0

添加开机启动

代码语言:javascript
复制
echo "/dev/diskvg/app1 /app1 xfs defaults 0 0" >>/etc/fstab

扩容逻辑卷

查看vg信息

代码语言:javascript
复制
[root@zabbix-server app1]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 99.00g     0 
  diskvg   2   1   0 wz--n- 19.99g 14.99g

卸载文件系统与挂载点关联

代码语言:javascript
复制
umount /app1

扩展逻辑卷至10G

代码语言:javascript
复制
[root@zabbix-server /]# lvextend  -L 10G /dev/diskvg/app1
  Size of logical volume diskvg/app1 changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents).
  Logical volume diskvg/app1 successfully resized.

挂载文件系统

代码语言:javascript
复制
mount /dev/diskvg/app1 /app1 或 mount -a

重置LV容量

代码语言:javascript
复制
[root@zabbix-server /]# xfs_growfs /dev/diskvg/app1
meta-data=/dev/mapper/diskvg-app1 isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1310720 to 2621440

查看扩容硬盘信息

代码语言:javascript
复制
[root@zabbix-server app1]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        91G  1.2G   90G   2% /
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  139M  359M  28% /boot
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0
/dev/mapper/diskvg-app1 xfs        10G   33M   10G   1% /app1
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档