/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 に追加しないでください。
ただし、再起動は問題ないはずです。
エフェメラル デバイスでスワップを作成するのに役立つスクリプトを作成しました。 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