Как создать раздел подкачки в 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

Это будет работать?

бандура
источник

Ответы:

8

/ dev / xvdb действительно смонтирован, вам нужно проверить, не хранится ли там что-то, что вы хотите сохранить, хотя хранение важных вещей на эфемерном диске - ДЕЙСТВИТЕЛЬНО плохая идея.

Вам нужно размонтировать / dev / xvdb, прежде чем что-либо делать с ним.

Пока ты можешь

mkswap /dev/xvdb 

это создаст пространство подкачки всего эфемерного диска, в котором вы почти наверняка не нуждаетесь. Кроме того, если вы разбиваете раздел подкачки, вы можете использовать оставшуюся часть временного диска для таких вещей, как папка tmp или для хранения сеансов (если ваш хост является веб-сервером). Эфемерные побуждения очень быстрые, но, к сожалению, не очень настойчивые.

В любом случае, вернемся к обмену разделами!

Лучше либо 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.

Перезагрузка должна быть в порядке, однако.

GeoSword
источник
1
Я поместил этот код создания своп в rc.local. это нормально. так что своп автоматически создается каждый раз, когда он начинается
Pandora
1
Я бы не Если хост перезагрузится, пространство подкачки все равно останется, поэтому нет необходимости его воссоздавать. Если хост завершает работу (завершает работу), а затем перезапускается, то эфемерный диск, который у вас был ранее, больше не будет доступен, поэтому в любом случае вам придется создать пространство подкачки с нуля.
GeoSword
Преимущество воссоздания каждый раз в том, что у вас стабильная среда, которая не требует ручного вмешательства для перезагрузки. Просто мысль; не уверен, что воссоздание свопа занимает много времени (и если это так, возможно, можно использовать меньший раздел).
Брайан 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. , ;;. я имею в виду, нужно ли вводить построчно копировать все, а затем вставлять. Также сколько вы делаете подкачки диска. Могу ли я сделать это 10 ГБ
Пандора
2
Что этот код делает, должно быть документировано. Он создает разделы подкачки и XFS определенных размеров, и неясно, как эти команды сохранятся при перезагрузке.
Марк Стосберг