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

这是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 

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

我已经阅读了关于这个问题的各种问题,但他们告诉要装入新的驱动器。 但是我认为这个驱动已经挂载在/dev/xvdb 。 我对么?

我可以使用这个:

 mkswap -f /dev/xvdb #add in /etc/fstab /dev/xvdb swap swap defaults 0 0 swapon /dev/xvdb 

它会起作用吗?

/ dev / xvdb确实是挂载的,你需要检查是否有任何东西存储在你想保留的地方,尽pipe在短暂的驱动器上保留重要的东西是一个很坏的主意。

在你做任何事情之前,你需要先卸载/ dev / xvdb。

虽然你可以

 mkswap /dev/xvdb 

它会使整个短暂的驱动器的交换空间,你几乎肯定不需要。 另外,如果你对swap进行分区,你可以使用临时驱动器的其余部分,如tmp文件夹或存储会话(如果你的主机是一个web服务器)。 短暂的驱动器非常快,但可惜不是很持久。

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

更好的sfdisk阿布舍克提到,或手动创build一个交换分区使用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 

您现在可以使用创build交换空间

 mkswap /dev/xvdb1 

然后启用它

 swapon /dev/xvdb1 

然而,有一个警告的话,我很抱歉如果我“教奶奶吸鸡蛋”但顾名思义,一个短暂的驱动器是…好吧,短暂的。 如果你closures了你的实例,你将不得不重新创build你的交换分区并启用它。 出于这个原因,不要添加你新创build的交换空间到你的fstab。

重启应该没问题。

我创build了一个脚本 ,可能有助于在短暂设备上创build交换。 它使用lvm创build交换卷,并创build一个可能对/ tmp有用的卷。 你可以使用cloud-init来触发它。

 bootcmd: - [ cloud-init-per, once, mk-eph, /usr/local/sbin/mk-eph.sh] # Filesystem setup fs_setup: - label: 'tmp' filesystem: 'xfs' device: '/dev/ephemeral/tmp' partition: 'auto' mounts: - [ /dev/ephemeral/tmp, /tmp, auto, "defaults,nobootwait" ] - [ ephemeral0, null ] runcmd: - [ chmod, 1777, /tmp ] 

首先卸下您的储藏室,并重新安装如下

  umount /dev/xvdb # in case it is already mounted sfdisk /dev/xvdb << EOF ,1024,82 , ; ; EOF mkswap /dev/xvdb1 && swapon /dev/xvdb1 mkfs.xfs -f /dev/xvdb2 && mount /dev/xvdb2 /mnt