AWS linux 将增加的卷添加到现有分区中

AWS linux 将增加的卷添加到现有分区中

我正在使用 AWS 作为我的生产服务器。昨天我的 mongodb 停止运行,它说没有足够的空间用于日志记录。为了添加更多空间,我在AWS控制台中编辑了卷并将卷大小增加到16Gib。linux命令行上lsblk的结果如下

  lsblk
  NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  xvda    202:0    0  16G  0 disk
    └─xvda1 202:1    0   8G  0 part /

parted 中的打印命令显示以下结果

 print
 Model: Xen Virtual Block Device (xvd)
 Disk /dev/xvda: 17.2GB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt

Number  Start   End     Size    File system  Name                 Flags
128     1049kB  2097kB  1049kB               BIOS Boot Partition  bios_grub
1      2097kB  8590MB  8588MB  ext4         Linux
2      8590MB  17.2GB  8590MB               Linux

df-h 显示以下结果

 df -h
 Filesystem      Size  Used Avail Use% Mounted on
 /dev/xvda1      7.8G  4.3G  3.5G  56% /
 devtmpfs        488M   56K  488M   1% /dev
 tmpfs           498M     0  498M   0% /dev/shm

我需要将额外的 8 GB 空间添加到 /dev/xvda1,而不丢失服务器上的任何内容。我对 Linux 服务器相当陌生。任何帮助或建议表示赞赏

EDIT1 - 在谷歌之后我也尝试做 resize2fs 但它显示以下输出

resize2fs /dev/xvda1
 resize2fs 1.42.12 (29-Aug-2014)
 The filesystem is already 2096635 (4k) blocks long.  Nothing to do!

答案1

首先,在尝试此类操作之前,您应该进行完整备份。

您需要从分区表中删除第二个分区(例如使用gdiskparted),然后将第一个分区扩展到新可用空间的末尾,最后扩展文件系统,以便它知道它有更多可用存储 - 最后一步是每种文件系统类型都不同。例如,如果 fs 是 xfs,您将使用xfs_growfs.对于 ext2/3/4,您可以使用resize2fs.该网站上有几个问题有很好的答案增长文件系统- 我强烈建议在尝试之前广泛研究这个主题。这并不困难,但即使是小错误也可能导致灾难性的数据丢失。

另一种选择是仅创建一个具有 16G 或更大磁盘的新虚拟机(或者一个较小的 1-4GB /dev/xvda boot/OS 磁盘和第二个较大的 /dev/xvdb 磁盘用于数据库 - 这将使事情变得更简单,如果您是否需要再次增加存储空间)。让第二个虚拟机与原始虚拟机完全相同,然后将数据从原始虚拟机复制到新虚拟机。

rsync可能最适合复制 - 您可以在原始虚拟机仍在运行并为请求提供服务以获取大量数据时 rsync 数据,然后关闭其上的数据库服务并再次 rsync 以传输添加/更改的任何数据/自第一次 rsync 开始后已删除。然后关闭原始虚拟机,并重新启动新虚拟机,使其具有与原始虚拟机相同的 IP 地址等。这将最大限度地减少停机时间。

相关内容