如何在具有临时存储的Amazon EC2上创建交换分区?


8

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

能行吗

Answers:


8

/ dev / xvdb确实已挂载,您需要检查是否要保存任何内容,尽管将重要的内容保存在临时驱动器上确实是个坏主意。

在执行任何操作之前,需要卸载/ dev / xvdb。

虽然可以

mkswap /dev/xvdb 

它将构成整个临时驱动器的交换空间,您几乎肯定不需要它。另外,如果对交换分区,则可以将临时驱动器的其余部分用于tmp文件夹或存储会话(如果主机是Web服务器)。临时驱动器非常快,但遗憾的是不是很持久。

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

最好使用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

现在,您可以使用以下命令创建交换空间

mkswap /dev/xvdb1

然后用

swapon /dev/xvdb1

但是,有一个警告词,如果我是“教奶奶吸卵”,我对此表示歉意。但是,顾名思义,暂时性的驱动器是……嗯,暂时性的。如果曾经关闭实例,则必须重新创建交换分区并启用它。因此,请勿将新创建的交换空间添加到fstab中。

重新启动应该没问题。


1
我把创建交换的代码放在了rc.local。这可以吗。以便每次启动时自动创建交换
Pandora

1
我不会 如果主机重新启动,交换空间将仍然存在,因此无需重新创建它。如果主机终止(关闭)然后重新启动,则以前使用的临时驱动器将不再可用,因此无论哪种方式,您都必须从头开始创建交换空间。
GeoSword

每次重新创建的优点是您拥有一个稳定的环境,不需要手动干预即可重新启动。只是一个想法; 不知道重新创建交换是否需要花费很长时间(如果确实需要,则可以使用较小的分区)。
Brian C

3

我创建了一个脚本,该脚本可能有助于在临时设备上创建交换。它使用lvm创建交换卷,还创建一个可能用作/ 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 ]

2

首先卸载您的永久存储并按如下所示重新安装

  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

我如何输入像,1024这样的行。,;;。我的意思是我需要逐行输入全部复制然后粘贴。您还需要多少钱才能安装交换驱动器。我可以使它达到10GB吗?
Pandora

2
该代码的作用应予以记录。它会创建一个特定大小的交换和XFS分区,尚不清楚这些命令在重新启动后将如何持久。
Mark Stosberg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.