web-dev-qa-db-ja.com

一時ストレージを使用して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

うまくいきますか?

8
Pandora

/ dev/xvdbは実際にマウントされています。重要なものを一時的なドライブに保持することは本当に悪い考えですが、保持したいものがそこに格納されているかどうかを確認する必要があります。

/ dev/xvdbをアンマウントする必要があります。

あなたができる間

mkswap /dev/xvdb 

それはあなたがほぼ確実に必要としないエフェメラルドライブ全体のスワップスペースを作ります。また、スワップをパーティション化すると、tmpフォルダーやセッションの保存(ホストがWebサーバーの場合)などに、残りの一時ドライブを使用できます。エフェメラルドライブは非常に高速ですが、残念ながらあまり持続しません。

とにかく、パーティションを交換してください!

Abhishekが言及するようにsfdiskを使用するか、fdiskを使用して手動でswapパーティションを作成する方が良いでしょう:

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に追加しないでください。

ただし、再起動は問題ありません。

8
GeoSword

script を作成しました。これは、一時的なデバイスでスワップを作成するのに役立つ場合があります。 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 ]
3
Taavi Tuisk

最初に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