2016-07-07 7 views
3
나는 ... 나의 목표이다가/사용하여 자동 마운트 AWS에서 탄성 파일 시스템 (EFS)를 사용하는 것을 시도하고있다

등/fstab에동적 IP에서의/etc/fstab에

EC2 인스턴스를 자동에서 조정되기 때문에

사용 가능한 영역, 인스턴스의 영역에 따라 EFS 마운트 IP가 변경됩니다. 순간 AWS는

sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-xxxx.efs.us-east-1.amazonaws.com:/ efs 

그러나, EFS DNS URL의 몇 가지 문제가 ... 올바른 영역에 마운트하는 명령을 제공, 난 단지 제공 EFS IP의를 통해 연결할 수 있었다. 그래서 나는이 스크립트를 사용하여 장착 할 수 있습니다 /efsmount.sh

#!/bin/sh 

CURR_ZONE=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone) 

if [ "$CURR_ZONE" == "us-east-1e" ];then 
    echo "172.xx.xx.xx" 
fi 
... more if statements to cover all zones 

영역에 관한 올바른 IP를 얻을 수있는 bash는 스크립트 ...

나노를 만들어

sudo mount -t nfs4 -o nfsvers=4.1 $(/efsmount.sh):/ /efs 

지금 제 질문은 ... 어떻게 fstab을 사용하여 자동 마운트합니까? 이 같은

뭔가가있는 init.d 스크립트를 사용하여 부팅시 마운트 EFS를 내가 자동으로 할 수 있었다

$(/efsmount.sh):/ /efs nfs  auto,noatime,nolock,bg,nfsvers=4.1,intr,tcp,actimeo=1800 0 0 

감사

+1

fstab에가 프로그래밍 환경이 아닙니다 줄을 추가하기 위해 노력하고 그것으로 동적 콘텐츠를 포함 할 수 없습니다. 파일을 동적으로 생성 할 수는 있지만 내부에서 수행하려고 시도 할 때 정적 텍스트로 읽습니다. –

+0

고마워요. 부팅시 마운트 된 다른 방법이 있습니까? – Jsp

+2

외부 스크립트 (cron) 또는 다른 자동 트리거 환경에서 마운트를 호출합니다. IP 주소를 알아 내고 직접 mount를 호출 할 수 있습니다. –

답변

0

작동하지 않습니다. 다음은 내가 따르는 지침입니다. http://www.archisoft.ca/ami/lemp/#setting-up-efs-with-auto-mounting

이 init.d 스크립트는 부팅 할 때 시작되며 네트워크가 사용 가능해질 때까지 기능을 반복하고 EFS를 즉시 마운트합니다.

웹 서버가 시작되기 전에 EFS가 마운트되기 때문에 EFS에있는 사이트 디렉토리는 문제없이 NGINX 웹 서버에 인식됩니다.

나는 이것이 누군가를 도울 수 있다고 생각했습니다!

0

업데이트 : 현재 EFS에서는 사용 가능 영역에 의존하지 않는 일반 URL을 사용할 수 있습니다 (항상 올바른 사용 가능 지점을 가리킴).

'file-system-id'.efs.'aws-region'.amazonaws.com:/ /path/to/dir nfs4 nfsvers=4.1 0 0 

올드 응답 :

내가 가용성 영역 내 /etc/fstab 독립적으로 EFS 볼륨을 마운트하기 위해 동일한 문제가 있었다

당신은이 하나의 같은 fstab에 항목을 사용해야합니다. experoinc.com - Amazon’s Elastic File System: Kicking the Tires에서

:

마지막으로, EFS는 때 시스템이 재부팅 사라 때문에 EFS는 컴퓨터 이미지는/etc/fstab에 마운트 추가하는 것을 고려 가진 재미가 없다. 유감스럽게도, 가용 영역마다 다른 마운트 포인트가 있기 때문에 보통 지역별 AMI로 굽는 것이 조금 어렵습니다. 부팅시 실행할 프로비저닝 스크립트에서 구성하는 것이 좋습니다.

지금 제가 사용하는 솔루션은 마운트 도우미 (/sbin/mount.efs-nfs4)를 만들고이를 사용하여 내 EFS 볼륨을 마운트하는 것입니다.

이 도우미의 코드와 지침은 Github Gist : https://gist.github.com/rarylson/9095c56137a60a7fdb7bb2b420f0ad04에 있습니다.

'file-system-id'.efs.'aws-region'.amazonaws.com:/ /path/to/dir efs-nfs4 nfsvers=4.1 0 0 

그리고 실행 : 그것을 사용 한마디로

, 당신은 URL에서 가용성 영역을 지정하고 efs-nfs4 "가짜"파일 시스템 유형을 사용하지 않고, /etc/fstab이 같은 라인을 넣을 수 있습니다

mount /path/to/dir 

EFS 파일 시스템은 재부팅 후에도 부팅 할 때 마운트됩니다.

0

나를 위해 수동으로 중지하고 내 EC2 인스턴스를 시작했을 때 fstab (amazon 권장)을 사용하지 않았습니다. 나에게 어떤 이유에서 자동화가 필요한가요? 재난 복구 시나리오, 콜드 부팅 및 오프라인으로 갈 때 수직적으로 확장 할 때 솔루션이 필요합니다. 예를 들어 수동으로 RAM을 EC2 인스턴스에 추가 할 때 '중지'해야합니다 , 'RAM 추가', '시작'). 나에게는

crontab -e 

을 다음

@reboot sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-123ddddd.efs.us-east-1.amazonaws.com:/ /data