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

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

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


답변