一時ストレージを使用して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フォルダーやセッションの保存(ホストが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

ただし、一言警告すると、Im "おばあちゃんに卵を吸うように教える"の場合は謝罪します。しかし、名前が示すように、一時的なドライブは...まあ、一時的なものです。インスタンスをシャットダウンした場合は、スワップパーティションを再作成して有効にする必要があります。このため、新しく作成したスワップ領域をfstabに追加しないでください。

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


1
スワップを作成するコードをに入れましたrc.local。それは大丈夫ですか。スワップが開始するたびに自動的に作成されるように
Pandora

1
しません。ホストが再起動しても、スワップスペースは残っているため、再作成する必要はありません。ホストが終了(シャットダウン)してから再起動すると、以前の一時ドライブは使用できなくなるため、どちらの方法でも、スワップスペースを最初から作成する必要があります。
GeoSword 2013

毎回再作成することの利点は、再起動するために手動の介入を必要としない安定した環境があることです。ちょっとした考え; スワップを再作成するのに長い時間がかかるかどうかはわかりません(そうする場合は、おそらくより小さなパーティションを使用できます)。
ブライアン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

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

1024などの行を入力する方法 、;;。つまり、すべてコピーの行ごとに入力してから貼り付ける必要がありますか?また、スワップドライブの量はどれくらいですか。私はそれを10GBにすることができます
Pandora

2
このコードが何をするかは文書化されるべきです。特定のサイズのスワップとXFSパーティションを作成し、これらのコマンドが再起動後どのように持続するかは明確ではありません。
Mark Stosberg、2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.