Linux学习与应用技巧

Ubuntu 不停止服务器的情况下扩容分区

2019-10-29  本文已影响0人  HoPGoldy

本文介绍一下如何在不停止服务的情况下 通过添加新硬盘来提升根目录分区的容量。注意,本文得以实现的前提是你的根目录分区的类型为Linux LVM

添加新硬盘

假设我们新添加的硬盘名称叫做 /dev/vdb。首先使用 fdisk 来创建新分区,

fdisk /dev/vdb

之后会弹出如下信息,然后我们键入n来新建分区你可以输入m来查看详细命令介绍

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): < n

随后键入p来新建主分区

Partition type
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): p

然后选择盘符,起始扇区和结束扇区,都默认即可

Partition number (1,5, default 1): 
First sector (2048-1048575999, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-1048575999, default 1048575999): 

然后就会弹出创建完成的提示,接下来我们键入t来修改分区类型为 LVM

Created a new partition 1 of type 'Linux' and of size 40 GiB.

Command (m for help): t
// 选择分区
Selected partition: 1
// 选择 LVM 的十六进制码
Hex code (type L to list codes): 8e

修改完后就会弹出已修改为 Linux LVM 的信息,然后键入w保存并退出即可

Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w

The partition table has been altered!
Calling ioctl() to re-read partition table.

Syncing disks.

然后我们就可以使用fdisk -l命令查看新建的分区了:

Disk /dev/vda: 500 GiB, 536870912000 bytes, 1048576000 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
Disklabel type: dos
Disk identifier: 0xd4bae426

Device     Boot   Start        End    Sectors   Size Id Type
/dev/vda1  *       2048     999423     997376   487M 83 Linux
/dev/vda2       1001470 1048573951 1047572482 499.5G  5 Extended
/dev/vda5       1001472 1048573951 1047572480 499.5G 8e Linux LVM


...


Disk /dev/vdb: 500 GiB, 536870912000 bytes, 1048576000 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
Disklabel type: dos
Disk identifier: 0x7779cca1

Device     Boot Start        End    Sectors  Size Id Type
/dev/vdb1        2048 1048575999 1048573952  500G 8e Linux LVM // 看这里看这里

接下来我们使用如下命令把新建的分区创建为物理卷:

pvcreate /dev/vdb1

新建成功提示:

Writing physical volume data to disk "/dev/vdb1"
Physical volume "/dev/vdb1" successfully created

至此,新硬盘的准备工作就完成了,接下来我们来把新硬盘加入卷组。

将新硬盘加入卷组

首先我们要确定一下根目录的卷组,输入vgdisplay来查看已有的卷组:

root@server:~# vgdisplay
  --- Volume group ---
  VG Name               firstBlood-vg
  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               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               500.52 GiB
  PE Size               4.00 MiB
  Total PE              255876
  Alloc PE / Size       255621 / 998.52 GiB
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               wZekM0-X7xi-edSz-eQ6X-72q6-pApj-MwnsmB

可以看到只有一个名为firstBlood-vg的卷组,那根目录的挂载卷肯定属于该卷组,可以输入df验证一下:

root@server:~# df
Filesystem                      1K-blocks      Used Available Use% Mounted on
udev                             32966516         0  32966516   0% /dev
tmpfs                             6597336    280672   6316664   5% /run
// 注意下面这行
/dev/mapper/firstBlood--vg-root 964375696 360737788 559860832  40% /
tmpfs                            32986676         0  32986676   0% /dev/shm
tmpfs                                5120         0      5120   0% /run/lock
tmpfs                            32986676         0  32986676   0% /sys/fs/cgroup

可以看到跟目录是从firstBlood--vg-root挂载的。接下来我们使用如下命令将刚才创建的物理卷/dev/vdb1加入firstBlood-vg卷组即可:

vgextend firstBlood-vg /dev/vdb1

成功提示如下:

Volume group "firstBlood-v" successfully extended

扩展根目录所在的逻辑卷

添加完成之后我们就可以使用如下命令来拓展根目录所在的逻辑卷的空间:

lvextend -L +499G /dev/mapper/firstBlood--vg-root

注意,如果你新硬盘的空间是 500G 的话,直接-L +500G是会报错的,因为实际空间比 500G 要小一个字节,你可以根据报错内容中给出的容量上限进行添加,也可以向我这样只添加 499G (会浪费 1G 的空间 )。

添加成功提示如下:

Extending logical volume lv_root to  999.52 GiB
Logical volume lv_root successfully resized

然后使用如下命令刷新配置即可,你新添加的空间越大,命令执行时间就越长 (10几秒 ):

resize2fs /dev/mapper/firstBlood--vg-root

输出如下:

Size of logical volume firstBlood-vg/root changed from 434.49 GiB (42239229 extents) to 934.99 GiB (239357 extents).
Logical volume root successfully resized.

添加完成

至此,跟目录的扩容就完成了,你可以使用df -h来查看扩容后的空间:

root@server:~# df -h
Filesystem                       Size  Used Avail Use% Mounted on
udev                              32G     0   32G   0% /dev
tmpfs                            6.3G  275M  6.1G   5% /run
//                               扩容成功
/dev/mapper/firstBlood--vg-root  920G  345G  534G  40% /
tmpfs                             32G     0   32G   0% /dev/shm
tmpfs                            5.0M     0  5.0M   0% /run/lock
tmpfs                             32G     0   32G   0% /sys/fs/cgroup
/dev/vda1                        472M   58M  391M  13% /boot

参考

上一篇下一篇

猜你喜欢

热点阅读