为什么在 swap 增加、swapoff 和 swapon 之后,swap total 会返回到之前的值

为什么在 swap 增加、swapoff 和 swapon 之后,swap total 会返回到之前的值

在我的 Linux Redhat 机器上(版本 5.x)

我执行以下步骤以将交换从 6G 增加到 8G

 lvcreate -n swap -L 2g /dev/rootvg
 mkswap /dev/mapper/rootvg-swap1
 swapon /dev/mapper/rootvg-swap1

经过上述步骤后,swap成功增加到8G

两天后我表演交换-a交换-a

但我注意到总交换量仅为6G就像我之前的脚步一样!

请指出我的步骤中哪里出了问题——缺少了什么?g

答案1

您应该首先检查“/etc/fstab”文件,其中是否有交换分区条目。“swapon -a”命令将从“/etc/fstab”检查交换分区条目,并从该分区分配交换内存。您可以在 fstab 中添加以下行。

/dev/mapper/rootvg-swap1 无 交换 sw 0 0

然后尝试“swapon -a”命令。

答案2

它不起作用的原因是你省略了必要的mkswap命令。当你运行该mkswap命令时,它会写入一个包含三条信息的标题:

  • 交换空间有多大
  • 此交换空间的 UUID 是什么
  • 一个魔法值,表示该分区是交换空间

mkswap命令在写入标题时将默认使用分区的实际大小,但如果您确实愿意,您可以从命令行覆盖它。

当您调整交换分区的大小但不重写交换头时,交换头仍将包含旧的大小,这就是内核将使用的大小。

运行前使用此命令swapon可以完成以下工作:

mkswap /dev/mapper/rootvg-swap1

如果您/etc/fstab使用 UUID 来查找交换分区,则需要添加一个-U参数并告诉它 UUID(您可以从中复制粘贴该值fstab)。

答案3

我知道这是一个过时的问题,但希望能够帮助那些拥有一些扩展的 rhel5 生命周期操作系统或与 RHEL 达成特殊协议的人。:)

您已完成以下步骤:

lvcreate -n swap -L 2g /dev/rootvg
mkswap /dev/mapper/rootvg-swap1
swapon /dev/mapper/rootvg-swap1

但是您谈论将交换从 6G 增加到 8G。——在这一点上,这是 lvextend 而不是 lvcreate。

因此步骤如下:

swapoff /dev/mapper/rootvg-swap1
lvextend -L +2G /dev/mapper/rootvg-swap1
mkswap /dev/mapper/rootvg-swap1
swapon /dev/mapper/rootvg-swap1

相关内容