Назад | Перейти на главную страницу

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

Я использую загрузочный образ Centos EBS.

Я читал различные вопросы по этому поводу, но они говорят, что нужно установить новый диск. Но я думаю, что диск уже установлен на /dev/xvdb. Я прав?

Могу я просто использовать это:

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

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

/ 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.

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

Я создал сценарий это может быть полезно для создания свопа на временных устройствах. Он использует 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 ]

Сначала отключите накопитель epermal и перемонтируйте, как показано ниже.

  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