임시 스토리지를 사용하여 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 폴더와 같은 작업이나 세션 저장 (호스트가 웹 서버 인 경우)에 사용할 수 있습니다. 임시 드라이브는 매우 빠르지 만 슬프게도 영구적이지 않습니다.

어쨌든, 스왑 파티션으로 돌아갑니다!

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에 새로 작성된 스왑 공간을 추가하지 마십시오.

그러나 재부팅은 괜찮습니다.


1
스왑을 만드는 코드를 넣었습니다 rc.local. 그 확인은. 스왑이 시작될 때마다 자동으로 스왑이 생성되도록
Pandora

1
안 했어요 호스트가 재부팅되면 스왑 공간이 그대로 유지되므로 다시 만들 필요가 없습니다. 호스트가 종료 (종료) 된 후 다시 시작하면 이전에 사용했던 임시 드라이브를 더 이상 사용할 수 없으므로 스왑 공간을 처음부터 새로 만들어야합니다.
GeoSword

매번 다시 작성하는 이점은 재부팅하기 위해 수동 개입이 필요없는 안정적인 환경이 있다는 것입니다. 그냥 생각; 스왑을 다시 만드는 데 오랜 시간이 걸리는지 확실하지 않으면 더 작은 파티션을 사용할 수 있습니다.
Brian 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.