如何增加 CentOS VM 中的交换空间

如何增加 CentOS VM 中的交换空间

当尝试在 Virtualbox 5.1 内运行的 CentOS 7 VM 中通过 RPM 安装 Oracle XE 时,我收到以下错误消息:

This system does not meet the minimum requirements for swap space.  Based on
the amount of physical memory available on the system, Oracle Database 11g
Express Edition requires 2048 MB of swap space. This system has 1279 MB
of swap space.  Configure more swap space on the system and retry the 
installation.

如何增加交换空间?

到目前为止,我已尝试按照lvm说明进行操作这里这里没有成功。我必须从已配置的最小 CentOS VM 开始,因此调整原始映像不是一个选项。

命令swapon -s通知我:

Filename                Type        Size    Used    Priority
/dev/dm-1               partition   1310716 0       -1

输出lvdisplay是:

  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                rdNgH4-Sili-NpwP-Ny3S-xtU9-MlEC-ttE5JI
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-12-19 22:50:56 +0000
  LV Status              available
  # open                 2
  LV Size                1.25 GiB
  Current LE             320
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                H737Lq-OMhE-F9Lf-BlTg-3PL1-0T7O-1Ciusi
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-12-19 22:50:56 +0000
  LV Status              available
  # open                 1
  LV Size                12.39 GiB
  Current LE             3172
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

df -h

Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   13G  9.4G  3.1G  76% /
devtmpfs             907M     0  907M   0% /dev
tmpfs                920M  4.0K  920M   1% /dev/shm
tmpfs                920M  8.7M  912M   1% /run
tmpfs                920M     0  920M   0% /sys/fs/cgroup
/dev/sda1           1014M  239M  776M  24% /boot
tmpfs                184M     0  184M   0% /run/user/1002
tmpfs                184M     0  184M   0% /run/user/1001
tmpfs                184M   12K  184M   1% /run/user/1000
tmpfs                184M     0  184M   0% /run/user/2
/dev/sr0              57M   57M     0 100% /run/media/vagrant/VBOXADDITIONS_5.1.33_120529
vagrant              102G   77G   26G  76% /vagrant

编辑:

内容/etc/fstab

/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=41388da5-fc65-4a34-a3da-58bb81daf744 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

输出vgs

VG #PV #LV #SN Attr   VSize  VFree
cl   1   2   0 wz--n- 13.64g 4.00m

答案1

这些是交换(问题)或普通分区的步骤。

当涉及逻辑卷 (LVM) 时,请忽略您可能在 Internet 上找到的有关使用 gparted 调整分区大小的答案 - 但当您拥有逻辑卷时为什么要这样做呢?相反,我们将创建一个额外的新分区并扩展我们的逻辑卷以包含它。

在 VirtualBox 中,打开虚拟媒体管理器。找到相关的 *.vdi 文件并确保其虚拟大小足以满足您想要的额外空间,稍微大一点是因为文件系统结构需要空间。对于这个例子的其余部分,我们将选择64GB额外的空间,所以在这一步我将任意选择65G。

然后,在您的 CentOS 虚拟机中:

  1. 找到“/dev/mapper/?”您正在扩展的逻辑卷的条目。对于交换使用sudo fdisk -l,但为了扩大正常的安装点,使用df -h和查看文件系统更容易。在这个例子的其余部分,我们将假装它是“/dev/mapper/cl-root”。
  2. 用于sudo lsblk查找卷所在的驱动器(实际上是您的 vdi)。对于这个例子,我假设它是“/dev/sda”。
  3. sudo fdisk /dev/sda。使用命令n(添加分区)然后p(主分区)。接受所有默认值,但对于“最后一个扇区”,输入我们的选择+64G,或者如果您想要所有剩余空间,则接受其默认值。使用命令w写入和退出。如果询问,请重新启动。
  4. 在最后一步中,我们创建了一个新分区,因此如果您没有重新启动,请将其添加到 /dev 表中。例如。pvcreate /dev/sda3。现在可能会要求您重新启动内核以使用新表,所以就这样做吧。
  5. sudo vgscan了解卷组的名称。问题中是“cl”
  6. 允许/扩展卷组以包含我们创建的分区:sudo vgextend cl /dev/sda3
  7. 获取您想要的逻辑卷以使用我们想要的数量:sudo lvextend -L +64G /dev/mapper/cl-root。如果它不能满足您的需求,它会很好地告诉您最大“范围”,您可以使用sudo lvextend -l [extents] /dev/mapper/cl-root
  8. 进行交换时请跳过此步骤。将文件系统扩展到该区域。对于 ext4,您需要 resize2fs,对于 xfs,您需要sudo xfs_growfs /dev/mapper/cl-root

答案2

您可以通过首先缩小根逻辑卷以释放空间来增加交换空间,然后将其重新分配给交换逻辑卷。您需要将交换 LV 增加 769 MB 才能达到 2048 MB,并且您的根 LV 有 3.1 GB 可用空间,因此您可以尝试以下操作:

  1. 缩小你的根LV。该-r选项也会导致文件系统调整大小:lvresize -L -769M -r c1/root
  2. 暂时关闭你的交换,因为你将要修改它:swapoff
  3. 调整交换 LV 的大小。或者,删除它并使用连续分配重新创建它,以便物理扩展彼此相邻,以获得更好的性能:lvresize -L +769M c1/swap
  4. 重新打开交换:swapon

答案3

这就是我必须做的:

VM 停止后,右键单击计算机,然后单击“配置”->“存储”,从 Virtualbox 添加新的虚拟硬盘。单击带有 + 号的硬盘驱动器图标,然后添加 2Gb 固定大小的新磁盘。

添加新硬盘后启动机器并登录后输入:

sudo vgdisplay

这将显示卷组信息,如下所示: VG 名称

然后执行

sudo fdisk -l

列出可用的驱动器。您应该进入列表/dev/hdb或者/dev/sdb取决于您使用的是旋转物理驱动器还是固态物理驱动器。

现在执行:

sudo pvcreate /dev/sdb
sudo vgextend cl /dev/sdb
sudo lvextend -L+2G /dev/cl/swap

这将为交换空间添加 2Gb。

答案4

we can increase Swap with out LVM


1. dd if=/dev/zero of=/path/swapfile bs=<swapsizein gB> count=1

/path/swapfile  ====> its the pathfile where available space is there and you can create swap  file

2. mkswap /path/swapfile

3. swapon -v /path/swapfile


4. swapon -s ====> swap will be added

相关内容