Amazon EC2에서“인스턴스 스토어 볼륨”스토리지를 사용하는 방법은 무엇입니까?


18

AWS에 따르면 Medium EC2 서버와 함께 850GB의 스토리지를 확보했습니다. 그러나 Amazon Linux AMI를 만들 때 제공된 850GB를 사용할 수 없습니다.

디바이스를 생성하는 동안 인스턴스 스토어 볼륨의 스토리지 디바이스 구성 에서 디바이스가 / dev / sdb에 있음을 표시하지만 VM을 시작할 때 / dev / sda1을 찾습니다.

이 스토리지를 마운트하는 데 도움을 줄 수 있습니까? 감사합니다

또한 Amazon이 인스턴스 스토리지가 장기간 사용하기에 안전하지 않다고 주장하고 EBS를 사용하는 것을 선호해야하는 경우 850GB의 요점은 무엇입니까?

감사


어떤 특정 인스턴스 유형을 실행하려고합니까? c1. 중간? m1. 중간? 다른 것?
Eric Hammond

1
EC2의 인스턴스 스토리지에 대해 배우기위한 두 가지 훌륭한 리소스는 다음과 같습니다. docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…
Eric Hammond

답변:


10

인스턴스가 중지 될 때 지속되지 않는 인스턴스 로컬 스토리지의 사용은 매우 간단합니다. 일시적인 작업에 유용한 매우 큰 공간입니다. 이 파일은에 마운트하기에 완벽한 대상이며 /tmp서버가 대용량 파일을 일시적으로 처리하는 경우 매우 유용합니다.

예를 들어, 업로드 된 비디오 파일의 음성을 텍스트로 변환하기 위해 인스턴스 그룹을 구축하는 경우 인스턴스 로컬 스토리지는 처리중인 파일을 넣는 것입니다. 파일이 처리되는 동안 몇 시간 동안있을 수 있지만 일단 완료되면 삭제하고 다른 파일을 가져올 수 있습니다. 이를 위해서는 EBS가 필요하지 않으며 EBS 대신 인스턴스 로컬에서 이러한 종류의 스토리지를 실행하는 것이 훨씬 저렴합니다.

인스턴스 로컬 스토리지는 장기 스토리지가 아니라 처리를 실행하기위한 스크래치 공간으로 사용됩니다. 워크로드가 스크래치 공간을 사용하지 않거나 필요한 것이 중요하지 않을 정도로 작 으면 적합하지 않습니다.


16
임시 스토리지 또는 인스턴스 스토어는 인스턴스 재부팅시에도 지속됩니다! 중지 / 시작, 종료 또는 일부 인스턴스 하드웨어 오류에 걸쳐 지속되지 않습니다. 다음은 재부팅과 중지 / 시작의 차이점에 대해 작성한 기사입니다. alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond

27

예를 들어 / mnt 아래에 마운트되지 않았고 파일 시스템이 아직 생성되지 않은 경우 다음을 수행하십시오.

  1. 장치 이름을 확인하십시오

    sudo fdisk -l

  2. 볼륨을 마운트 할 디렉토리를 만드십시오

    sudo mkdir / mnt

  3. 볼륨에 파일 시스템을 작성하십시오 (볼륨에 새 파일 시스템을 작성하므로 올바른 볼륨을 선택하십시오)

    sudo mkfs.ext4 / dev / xvdj

  4. 마운트 볼륨

    sudo 마운트 -t ext4 / dev / xvdj / mnt

  5. 예를 들어 재시작 후 마운트를 유지하려면 / etc / fstab을 열고 마운트를 추가하십시오

    echo "/ dev / xvdj / mnt 자동 noatime 0 0"| sudo 티 -a / etc / fstab

  6. 모두 마운트하여 fstab에 문제가 없는지 확인하십시오.

    마운트 -a


5
인스턴스 유형에 따라 먼저 block-device-mapping 옵션을 사용하여 인스턴스 스토어 볼륨을 인스턴스에 연결해야합니다. 이 작업을 수행하지 않으면 / dev
Eric Hammond

EricHammond의 의견이 정말 내 탐구에 대한 답이었다 @ - 난 아무데도 그들을 보지 않았다 -도에서fdisk -l
피터 V. Mørch

장치가 보이지 않으면를 사용해보십시오 lsblk.
volker238

이 지침은 볼륨을 마운트하지만 볼륨에 새 파일을 쓰려고하면 "액세스 거부"가 발생합니다. 권한에 어떤 문제가 있는지 정리할 수 없습니다. 어떤 아이디어?
MikeB

lsblk -f디스크 볼륨을 찾는 가장 좋은 방법입니다. 마운트 된 모든 볼륨은 마운트 경로와 함께 표시되며 볼륨 레이블을 표시합니다 (Linux에서 파일 시스템을 마운트 할 때 UUID 또는 레이블을 사용하는 것이 좋습니다).
RichVel

1

AWS 세계에서는 두 가지가 매우 다르기 때문에 부팅시와 시작 / 중지주기 후에 실행할 수있는 Ubuntu 용 스크립트를 만들었습니다. 재부팅 할 때 여전히 동일한 임시 디스크가 있으며 마운트하기 만하면됩니다 (/ etc / fstab이 자동으로 처리해야 함). 인스턴스를 중지했다가 다시 시작하면 포맷되지 않은 새로운 임시 디스크가 생겨 더 많은 사랑이 필요합니다. 사용할 준비가되었습니다. / etc / fstab 항목이 올 바르면 언제든지 실행할 수 있으며 필요에 따라 장치를 마운트 / 포맷합니다. 마운트 지점의 매개 변수를 사용하지만 제공되지 않으면 / mnt라고 가정합니다. mount_ephemeral.sh 스크립트를 호출하고 시작 서비스에서 루트로 실행할 수 있습니다.

#!/bin/sh
set -e
mountPoint=${1:-'/mnt'}
rawDevice=$(grep "\s$mountPoint\s" /etc/fstab |cut -f1)
#echo checking $mountPoint on $rawDevice
[ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; }
mountpoint -q $mountPoint
[  "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; }
hasFS=$(blkid |grep $rawDevice)
[ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; }
echo initializing $mountPoint on $rawDevice
mkdir -p $mountPoint
mkfs.ext4 $rawDevice
mount $mountPoint
chmod 777 $mountPoint
exit 0

각 볼륨에 사용되는 /mnt규칙이 있으므로 볼륨의 마운트 지점 으로 사용하지 않는 것이 좋습니다 /mnt/foo. 라고 말하면 어느 시점에서 다른 볼륨을 마운트해야하는 경우 /mnt/bar마운트 된 /mnt볼륨 을 마운트 해제 할 수 없습니다 /mnt/bar. 은 grep당신이 사용하는 경우 위험 /mnt과 같은 포인트가 탑재되어 /mnt/foo있기 때문에, /mnt어떤 경우에는 스크립트 힘 마운트 있도록하거나 잘못된 디스크에서 mkfs - 여러 행과 일치 할 수 있습니다.
RichVel

정확히 일치해야하기 때문에 다른 유사한 마운트를 찾지 못합니다. 문제는 fstab에 사용 된 공백이 grep의 인용 된 값과 일치해야한다는 것입니다. \bYMMV 를 사용하도록 업데이트했습니다 . 이것은 /mnt스스로 변경할 수있는 기본값 일 뿐이며 단지 예일뿐입니다. 또한 스크립트에 매개 변수를 전달하면 해당 마운트 지점이 대신 사용됩니다. 나는 set -e모든 실패가 전체 스크립트를 종료하도록 추가 할 것입니다
DanJGer

보정 : 변경 \b\s
DanJGer

0

인스턴스 스토어 마운팅도 이미지에 따라 다릅니다.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

인스턴스를 시작하면 지정된 AMI가 기본 블록 디바이스 매핑을 제공합니다. 추가 인스턴스 스토어 볼륨이 필요한 경우이를 시작할 때 인스턴스에 추가해야합니다. AMI 블록 디바이스 매핑에 지정된 디바이스를 생략 할 수도 있습니다.

일부 이미지는 사용 가능한 모든 리소스를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.