如何使用临时存储在 Amazon EC2 上创建交换分区?

Pan*_*ora 9 linux partition centos swap amazon-ec2

这是输出df -k

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1            10317860   7059008   2734732  73% /
none                    847584         0    847584   0% /dev/shm
/dev/xvdb            153899044    192068 145889352   1% /mnt/ephemeral
Run Code Online (Sandbox Code Playgroud)

我正在使用 Centos EBS 启动映像。

我已经阅读了有关此的各种问题,但他们告诉要安装新驱动器。但我认为该驱动器已经安装在/dev/xvdb. 我对么?

我可以用这个吗:

mkswap -f /dev/xvdb
#add in /etc/fstab
/dev/xvdb       swap    swap    defaults        0       0
swapon /dev/xvdb
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?

Geo*_*ord 8

/dev/xvdb 确实已挂载,您需要检查那里是否存储了您想要保留的任何内容,尽管将重要内容保存在临时驱动器上是一个非常糟糕的主意。

您需要先卸载 /dev/xvdb,然后才能对其进行任何操作。

虽然你可以

mkswap /dev/xvdb 
Run Code Online (Sandbox Code Playgroud)

它将为整个临时驱动器创建一个交换空间,您几乎肯定不需要。此外,如果您对交换分区进行分区,则可以将临时驱动器的其余部分用于 tmp 文件夹或存储会话(如果您的主机是网络服务器)等内容。临时驱动器非常快,但遗憾的是不是很持久。

无论如何,回到交换分区!

最好是 Abhishek 提到的 sfdisk,或者使用 fdisk 手动创建交换分区:

fdisk /dev/xvdb
Press N to create a new partition
P for primary
1 for the first partition
Press Enter to accept the first location
Enter +xG where x is the size of the swapspace you want. I typically use twice the amount of RAM, but this is not a hard and fast rule
Enter T to change the type
Enter 82 for Linux Swap
Enter W to write the changes
Enter q to quit
Run Code Online (Sandbox Code Playgroud)

您现在可以创建您的交换空间

mkswap /dev/xvdb1
Run Code Online (Sandbox Code Playgroud)

然后启用它

swapon /dev/xvdb1
Run Code Online (Sandbox Code Playgroud)

然而,一个警告,如果我“教奶奶吸鸡蛋”,我深表歉意,但顾名思义,短暂的驱动器是......好吧,短暂的。如果您曾经关闭过实例,则必须重新创建交换分区并启用它。因此,不要将新创建的交换空间添加到 fstab。

不过重启应该没问题。