• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

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

磁盘管理 eryajf 6个月前 (06-19) 15°C 已收录 0个评论
本文预计阅读时间 8 分钟

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

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

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

1,报警。

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

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

2,巡查。

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

然后去服务器上看:

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

查看磁盘:

fdisk -l 

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

3,分区。

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

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

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

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.

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

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

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

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

这里可以清晰看到原来使用着的 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

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

---》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

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

6,感恩。

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

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


weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送 WordPress 小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明服务器存储不够了之在原逻辑卷上扩容的操作
喜欢 (1)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址