二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

    • 记一次关于tomcat的踩坑的经历
    • 解决VNC连接闪退的问题
    • 一次升级线上服务器内核的经历
    • 记一次给笔记安装Windows系统遇到的一些坑
    • 解决一个新安装系统使用yum时报错的问题
    • 服务器存储不够了之直接挂载一块儿新磁盘的操作
    • 服务器存储不够了之在原逻辑卷上扩容的操作
      • 1,报警。
      • 2,巡查。
      • 3,分区。
      • 4,格式化。
      • 5,扩容。
      • 6,感恩。
    • 解决php-fpm启动之后没有9000端口的问题
    • 解决MySQL问题:Got error 28 from storage engine
    • 解决git clone报错Peer’s Certificate has expired的问题
    • Linux的普通用户bash突然报错bash fork retry No child processes的解决办法
    • 分析解决脚本执行时总是报出command not found
    • confluence数据目录满了
    • 利用prlimit动态修改应用进程的最大文件打开数
    • vim复制代码包含注释时格式会乱掉解决办法
    • python如何快速迁移依赖库
    • YUM安装提示--skip-broken-to-work-around-the-problem
    • 请求nginx返回413的错误
    • Linux系统环境变量被覆盖所有命令找不到怎么办
    • Centos7更改yum源为阿里云
    • node编译报错
    • git-commit错了如何更改
    • 关于执行journalctl时的一个报错
    • yum安装epel之后报错
    • umount卸载磁盘的时候提示busy
    • pip安装依赖时报ssl的问题
    • lavel框架缓存目录的问题
    • Debian系统中执行shell报错unexpected operator
    • Vuepress项目编译时报routines的错误
    • 一次因为Mac系统升级引发的ssh无法免密登陆的问题
  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • 迎刃而解
二丫讲梵
2018-06-19
目录

服务器存储不够了之在原逻辑卷上扩容的操作

文章发布较早,内容可能过时,阅读注意甄别。

当然上一篇的直接格式化新挂载的操作,也有当初的考量,其实说白了,任何的操作,都是根据你自己当前的实际情况来作出相对应的方案的。

上次扩容之所以采用直接挂在新磁盘的方式,有两点重要原因,一方面原本旧挂载的分区就是一个普通分区,并没有做成逻辑卷,这点很重要,基本上决定了你没办法再重新来做了。另一方面就是那次扩容是 T 级别的,像这种庞大的动静,还是让原有的磁盘安静的做一个 “美盘子” 就好了,不可轻易打扰啊。

那么现在进入今天的正题,说一下如何在原有逻辑卷基础上进行扩容。

# 1,报警。

还是风平浪静的一个下午,我们乖乖的zabbix对接的钉钉报警又来通知啦。

image

通过报警很容易得知,磁盘空间已经不足 20% 了。那就先来一波查看呗。

# 2,巡查。

先看 zabbix 上边显示的,容量正一点一点被用去。

image

然后去服务器上看:

image

嗯哼,这台机器貌似应该不是只有 50G 的额,果然,不一会儿,当初创建此机器的小伙伴说给到的容量是 150G 的,应该是没有完整分配出来。

查看磁盘:

fdisk -l
1

image

果然通过查看发现原本分配 150G 的磁盘只适用了 50 个 G,而且刚好之前是通过逻辑卷的方式进行的磁盘管理,那么现在就通过 lvm 的特性直接对磁盘进行扩容呗。

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

# 3,分区。

整套操作简化命令先罗列开来。

fdisk /dev/sda
---》n		#新增一个分区。
---》p		#分区类型选择为主分区。
---》回车	#可以填入3,也可以直接按其默认的直接回车。
---》回车	#默认(起始扇区)
---》回车	#默认(结束扇区)这里因为只剩下100G了,所以就全部分配了。
---》p		#再次查看是否划分成功。
---》
---》t		#修改分区类型。
---》回车	#也就是默认的刚刚创建的3。
---》L		#列出所有分区类型。
---》8e		#填入8e,将刚创建的分区3修改为lvm。
---》p		#此刻再次检查是否变成与2一样的lvm。
---》w		#保存并退出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14

接下来将具体输出详细展示一遍。

fdisk /dev/sda

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.


Command (m for help):

---》p		#查看一眼之前分区的情况。

Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 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: 0x000312a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      718847      358400   83  Linux
/dev/sda2          718848   104857599    52069376   8e  Linux LVM

Command (m for help):

---》n		#新增一个分区。

Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p):

---》p		#分区类型选择为主分区。

Partition number (3,4, default 3):

---》回车	#可以填入3,也可以直接按其默认的直接回车。

Last sector, +sectors or +size{K,M,G} (104857600-314572799, default 314572799):

---》回车	#默认(起始扇区)
---》回车	#默认(结束扇区)这里因为只剩下100G了,所以就全部分配了。

Using default value 314572799
Partition 3 of type Linux and of size 100 GiB is set

Command (m for help):

---》p		#再次查看是否划分成功。

Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 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: 0x000312a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      718847      358400   83  Linux
/dev/sda2          718848   104857599    52069376   8e  Linux LVM
/dev/sda3       104857600   314572799   104857600   83  Linux

Command (m for help):

---》t		#修改分区类型。

Partition number (1-3, default 3):

---》回车	#也就是默认的刚刚创建的3。

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		#填入8e,将刚创建的分区3修改为lvm。

Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help):

---》p		#此刻再次检查是否变成与2一样的lvm。

Disk /dev/sda: 161.1 GB, 161061273600 bytes, 314572800 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: 0x000312a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      718847      358400   83  Linux
/dev/sda2          718848   104857599    52069376   8e  Linux LVM
/dev/sda3       104857600   314572799   104857600   8e  Linux LVM

Command (m for help):

---》w		#保存并退出。

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133

此时保存退出之后可以先通过ls /dev/sda3看一下是否有 sda3。如果没有,那么使用partprobe命令进行加载,如果条件允许,也可以通过重启机器进行加载。

# 4,格式化。

格式化分区。

---》mkfs.ext3 /dev/sda3

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 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

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

格式化之后就可以进行扩容的操作了。

image

# 5,扩容。

操作之前首先查看一下原来的情况。

---》pvscan

PV /dev/sda2   VG centos   lvm2 [49.66 GiB / 0    free]
  Total: 1 [49.66 GiB] / in use: 1 [49.66 GiB] / in no VG: 0 [0   ]

---》vgscan

  Reading all physical volumes.  This may take a while...
  Found volume group "centos" using metadata type lvm2

---》lvscan

  ACTIVE            '/dev/centos/root' [49.66 GiB] inherit
1
2
3
4
5
6
7
8
9
10
11
12
13

这里可以清晰看到原来使用着的 sda2 到的 50 个 G。

接下来进入正题,依旧先把操作步骤简化命令列出。

---》pvcreate /dev/sda3		#把新加的分区创建为物理卷。
---》vgextend centos /dev/sda3		#将刚创建的物理卷添加到卷组centos中。(注意此处的centos是通过刚才vgscan得到的。)
---》pvscan				#再次查看物理卷情况。
---》vgscan				#再次查看卷组情况。
---》vgdisplay -v			#详细查看卷组。
---》lvextend -l +25599 /dev/centos/root	#直接在原有逻辑卷上进行扩容。25599是通过刚才详细查看卷组得到的free PE数。
---》
---》xfs_growfs /dev/centos/root	#通过此命令让操作系统识别刚刚扩容的分区。这个命令适用在centos 7系统中。如果是6的,则用resize2fs -f /dev/centos/root
---》df -h
1
2
3
4
5
6
7
8
9

接着展示以下每个命令的输出结果。

---》pvcreate /dev/sda3

WARNING: ext3 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y
  Wiping ext3 signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created

---》vgextend centos /dev/sda3

  Volume group "centos" successfully extended

---》pvscan

  PV /dev/sda2   VG centos   lvm2 [49.66 GiB / 0    free]
  PV /dev/sda3   VG centos   lvm2 [100.00 GiB / 100.00 GiB free]
  Total: 2 [149.65 GiB] / in use: 2 [149.65 GiB] / in no VG: 0 [0   ]

---》vgscan

  Reading all physical volumes.  This may take a while...
  Found volume group "centos" using metadata type lvm2

---》vgdisplay -v

    Using volume group(s) on command line.
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  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               149.65 GiB
  PE Size               4.00 MiB
  Total PE              38311
  Alloc PE / Size       12712 / 49.66 GiB
  Free  PE / Size       25599 / 100.00 GiB
  VG UUID               xvU7EX-3SXG-z21B-LXGn-TO00-RzvQ-n7zUV0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                x8lIiU-nuPh-MtXV-aQRo-bOZ4-dQiN-7kE3wT
  LV Write Access        read/write
  LV Creation host, time localhost, 2017-12-29 18:04:48 +0800
  LV Status              available
  # open                 1
  LV Size                49.66 GiB
  Current LE             12712
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Physical volumes ---
  PV Name               /dev/sda2
  PV UUID               PkLNer-Uz8l-Fw1y-AKzz-DvP5-1P4T-76paP6
  PV Status             allocatable
  Total PE / Free PE    12712 / 0

  PV Name               /dev/sda3
  PV UUID               50sSuP-0X3I-oWke-keCp-Hmfo-XMW7-GQkRBp
  PV Status             allocatable
  Total PE / Free PE    25599 / 25599

---》lvextend -l +25599 /dev/centos/root

  Size of logical volume centos/root changed from 49.66 GiB (12712 extents) to 149.65 GiB (38311 extents).
  Logical volume root successfully resized.

---》xfs_growfs /dev/centos/root

meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3254272 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=13017088, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6356, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13017088 to 39230464

---》df -h

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  150G   40G  110G  27% /
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    3.9G   33M  3.8G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                347M  115M  233M  33% /boot
tmpfs                    783M     0  783M   0% /run/user/0
tmpfs                    783M     0  783M   0% /run/user/1000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

由此可见一次平稳的扩容就这么完成了。所以这也是很多时候提倡适用 lvm 进行磁盘分区管理的一个理由之一。

# 6,感恩。

当我看到扩容已经成功之后,就看到乖巧的 zabbix 通知告警问题修复了,这里再次夸一下 zabbix 同学。

image

参考链接:http://blog.csdn.net/remote_roamer/article/details/50670802

微信 支付宝
上次更新: 2024/07/04, 22:40:37
服务器存储不够了之直接挂载一块儿新磁盘的操作
解决php-fpm启动之后没有9000端口的问题

← 服务器存储不够了之直接挂载一块儿新磁盘的操作 解决php-fpm启动之后没有9000端口的问题→

最近更新
01
学习周刊-总第213期-2025年第22周
05-29
02
学习周刊-总第212期-2025年第21周
05-22
03
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式