autofs를 사용하여 요청 시 GCS 버킷을 마운트하려고 합니다. 가장 가까운 설명은 아래와 같이 SSHFS입니다.
mntpoint -fstype=fuse,allow_other :sshfs\#[email protected]\:
이 예에 따라 다음을 수행합니다.
mntpoint -fstype=fuse,allow_other :gcsfuse\#my-bucket\:
그러나 이것은 나에게 효과가 없으며 문제를 일으킬 수 있는 오류 메시지를 보는 방법을 모르겠습니다. 이것은 내 autofs 구성입니다.
# grep "^#" -v /etc/auto.master
+dir:/etc/auto.master.d
+auto.master
# grep "^#" -v /etc/auto.master.d/mnt.autofs
/mnt /etc/autofs/auto.mnt
# grep "^#" -v /etc/autofs/auto.mnt
/- -fstype=fuse,allow_other,r :gcsfuse\#dfci-mev-def-12345-678\:
마운트는 일반적으로 다음과 같이 작동합니다.
gcsfuse -o allow_other my-bucket /mnt
GOOGLE_APPLICATION_CREDENTIAL
환경 변수에서 Google 서비스 계정 자격 증명 파일 위치를 사용하세요.
고쳐 쓰다
구성의 공백을 탭으로 변경하고 몇 가지 단순화를 수행하고 자동 마운트의 자세한 출력을 켰습니다. 이제 구성은 다음과 같습니다.
# cat /etc/auto.master
/mnt /etc/auto.gcsfuse --timeout=0 --ghost --verbose
# cat /etc/auto.gcsfuse
dfci-mev-def-12345-678 -fstype=fuse,rw,allow_other :gcsfuse\#dfci-mev-def-12345-678
dfci-mev-def-12345-678은 내 테스트 버킷입니다. 이제 /mnt에서 볼 수 있습니다. 폴더처럼 보입니다. CD로 들어가려고 하면 "해당 파일이나 디렉터리가 없습니다"라는 메시지가 나타나고 자동 마운트 결과는 다음과 같습니다.
attempting to mount entry /mnt/dfci-mev-def-12345-678
>> gcsfuse takes exactly two arguments. Run `gcsfuse --help` for more info.
mount(generic): failed to mount gcsfuse#dfci-mev-def-12345-678 (type fuse) on /mnt/dfci-mev-def-12345-678
failed to mount /mnt/dfci-mev-def-12345-678
re-reading map for /mnt
업데이트 2
무슨 일이 일어나고 있는지는 알지만 해결책이 없습니다. 두 번째 구성 세트는 gcsfuse
버킷 및 마운트 지점 매개변수 이후의 마운트 옵션이 마음에 들지 않아 티켓을 열었습니다.https://github.com/GoogleCloudPlatform/gcsfuse/issues/216