tencent cloud

Cloud Object Storage

동향 및 공지
릴리스 노트
제품 공지
제품 소개
제품 개요
기능 개요
적용 시나리오
제품 장점
기본 개념
리전 및 액세스 도메인
규격 및 제한
제품 요금
과금 개요
과금 방식
과금 항목
프리 티어
과금 예시
청구서 보기 및 다운로드
연체 안내
FAQ
빠른 시작
콘솔 시작하기
COSBrowser 시작하기
사용자 가이드
요청 생성
버킷
객체
데이터 관리
일괄 프로세스
글로벌 가속
모니터링 및 알람
운영 센터
데이터 처리
스마트 툴 박스 사용 가이드
데이터 워크플로
애플리케이션 통합
툴 가이드
툴 개요
환경 설치 및 설정
COSBrowser 툴
COSCLI 툴
COSCMD 툴
COS Migration 툴
FTP Server 툴
Hadoop 툴
COSDistCp 툴
HDFS TO COS 툴
온라인 도구 (Onrain Dogu)
자가 진단 도구
실습 튜토리얼
개요
액세스 제어 및 권한 관리
성능 최적화
AWS S3 SDK를 사용하여 COS에 액세스하기
데이터 재해 복구 백업
도메인 관리 사례
이미지 처리 사례
COS 오디오/비디오 플레이어 사례
데이터 다이렉트 업로드
데이터 보안
데이터 검증
빅 데이터 사례
COS 비용 최적화 솔루션
3rd party 애플리케이션에서 COS 사용
마이그레이션 가이드
로컬 데이터 COS로 마이그레이션
타사 클라우드 스토리지 데이터를 COS로 마이그레이션
URL이 소스 주소인 데이터를 COS로 마이그레이션
COS 간 데이터 마이그레이션
Hadoop 파일 시스템과 COS 간 데이터 마이그레이션
데이터 레이크 스토리지
클라우드 네이티브 데이터 레이크
메타데이터 가속
데이터 레이크 가속기 GooseFS
데이터 처리
데이터 처리 개요
이미지 처리
미디어 처리
콘텐츠 조정
파일 처리
문서 미리보기
장애 처리
RequestId 가져오기
공용 네트워크로 COS에 파일 업로드 시 속도가 느린 문제
COS 액세스 시 403 에러 코드 반환
리소스 액세스 오류
POST Object 자주 발생하는 오류
보안 및 컴플라이언스
데이터 재해 복구
데이터 보안
액세스 관리
자주 묻는 질문
인기 질문
일반 문제
과금
도메인 규정 준수 문제
버킷 설정 문제
도메인 및 CDN 문제
파일 작업 문제
로그 모니터링 문제
권한 관리
데이터 처리 문제
데이터 보안 문제
사전 서명 URL 관련 문제
SDK FAQ
툴 관련 문제
API 관련 문제
Agreements
Service Level Agreement
개인 정보 보호 정책
데이터 처리 및 보안 계약
연락처
용어집

GooseFS-FUSE 기능

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-12-26 21:17:35
GooseFS-FUSE는 Unix 기기의 로컬 파일 시스템에 GooseFS 분산형 파일 시스템을 마운트할 수 있습니다. 이 기능을 사용하면 일부 표준 TCCLI(예: ls, cat 및 echo)가 GooseFS 분산형 파일 시스템의 데이터에 직접 액세스할 수 있습니다. 또한 더 중요한 것은 C, C++, Python, Ruby, Perl, Java와 같은 다른 언어로 구현된 애플리케이션은 모두 GooseFS의 클라이언트 통합 및 설정 없이 표준 POSIX 인터페이스(예시: open, write, read)를 통해 GooseFS를 읽고 쓸 수 있습니다.
GooseFS-FUSE는 FUSE 프로젝트를 기반으로 하며 대부분의 파일 시스템 작업을 지원합니다. 그러나 GooseFS의 일회성 불변 파일 데이터 모델과 같은 고유한 속성으로 인해 마운트된 파일 시스템은 POSIX 표준과 완전히 일치하지 않으며 여전히 제한성이 있습니다. 따라서 이 특징의 기능과 제한을 이해하려면 먼저 제한성을 읽으십시오.

설치 요구 사항

JDK 1.8 이상
Linux 시스템: libfuse 2.9.3 이상(버전 2.8.3은 사용 가능하나 경고 발생 가능성 있음)
MAC 시스템: osxfuse 3.7.1 이상

사용법

GooseFS-FUSE 마운트

설정을 완료하고 GooseFS 클러스터를 시작한 후 GooseFS를 마운트해야 하는 노드에서 Shell을 실행하고 $GOOSEFS_HOME 디렉터리로 이동하여 다음 명령어를 실행합니다.
$ integration/fuse/bin/goosefs-fuse mount mount_point [GooseFS_path]
이 명령은 <mount_point>로 지정된 경로에 해당 GooseFS 경로를 마운트하기 위해 백엔드 Java 프로세스를 실행합니다. 예를 들어 다음 명령은 GooseFS 경로 /people을 로컬 파일 시스템의 /mnt/people 디렉터리에 마운트합니다.
$ integration/fuse/bin/goosefs-fuse mount /mnt/people /people
Starting goosefs-fuse on local host.
goosefs-fuse mounted at /mnt/people. See /lib/GooseFS/logs/fuse.log for logs
GooseFS_path를 지정하지 않으면 GooseFS-FUSE는 기본적으로 GooseFS 루트 디렉터리(/)에 마운트됩니다. 이 명령을 여러 번 호출하여 GooseFS를 다른 로컬 디렉터리에 마운트할 수 있습니다. 모든 GooseFS-FUSE는 $GOOSEFS_HOME\\logs\\fuse.log 로그 파일을 공유합니다. 이 로그 파일은 오류 진단에 유용합니다.
주의:
<mount_point>는 로컬 파일 시스템의 빈 폴더여야 하며 GooseFS-FUSE 프로세스를 실행한 사용자는 마운트 포인트 및 읽기/쓰기 권한이 있습니다.

GooseFS-FUSE 언마운트

GooseFS-FUSE를 언마운트할 때 노드에서 Shell을 실행하고 $GOOSEFS_HOME 디렉터리로 이동하여 다음 명령을 실행해야 합니다.
$ integration/fuse/bin/goosefs-fuse umount mount_point
이 명령은 goosefs-fuse Java 백엔드 프로세스를 종료하고 파일 시스템을 언마운트합니다. 예시:
$ integration/fuse/bin/goosefs-fuse umount /mnt/people
Unmount fuse at /mnt/people (PID: 97626).
기본적으로 unmount 작업은 읽기/쓰기 작업이 완료되지 않은 경우 최대 120s 동안 기다립니다. 120s 후에도 읽기/쓰기 작업이 완료되지 않으면 Fuse 프로세스가 강제 종료되어 파일 읽기/쓰기가 실패하게 되므로 -s 매개변수를 추가하여 Fuse 프로세스가 강제 종료되는 것을 방지할 수 있습니다. 예시:
$ ${GOOSEFS_HOME}/integration/fuse/bin/goosefs-fuse unmount -s /mnt/people

GooseFS-FUSE가 실행 중인지 확인

모든 마운트 포인트를 나열하려면 노드에서 Shell을 실행하고 $GOOSEFS_HOME 디렉터리로 이동하여 다음 명령을 실행해야 합니다.
$ integration/fuse/bin/goosefs-fuse stat
이 명령은 pid, mount_point, GooseFS_path를 포함한 정보를 출력합니다.
예를 들어 출력은 다음 형식일 수 있습니다.
$ pid mount_point GooseFS_path
80846 /mnt/people /people
80847 /mnt/sales /sales

Goosefs-FUSE 디렉터리 구조




conf 디렉터리:
masters: master 서버의 IP 구성 파일
worker: worker 서버의 IP 구성 파일
goosefs-site.properties: goosefs 구성 파일
libexec: goosefs-fuse 종속 lib 파일 실행
goosefs-fuse-1.4.0: goosefs-fuse 백엔드에서 실행되는 jar 패키지
log: 로그 디렉터리

설정 옵션

GooseFS-FUSE는 표준 GooseFS-core-client-fs를 기반으로 작업합니다. 다른 애플리케이션을 사용하는 client와 같이 작업하려면, 이 GooseFS-core-client-fs의 동작을 사용자 정의하십시오.
$GOOSEFS_HOME/conf/goosefs-site.properties 구성 파일을 편집하여 클라이언트 옵션을 변경할 수 있습니다.
주의:
모든 변경은 GooseFS-FUSE가 실행되기 전에 완료되어야 합니다.

제한성

현재 GooseFS-FUSE는 대부분의 기본 파일 시스템 작업을 지원합니다. 그러나 GooseFS의 몇 가지 특징으로 인해 다음 사항에 유의해야 합니다.
파일은 랜덤 및 추가로 작성될 수 없습니다.
파일은 한 번만 순차적으로 쓸 수 있으며 수정할 수 없습니다. 파일을 수정하려면 먼저 파일을 삭제한 다음 다시 생성하거나 O_TRUNC 식별자로 파일을 open하고 길이를 0으로 설정합니다.
마운트 지점에 작성 중인 파일은 읽을 수 없습니다.
파일 길이는 truncate할 수 없습니다.
soft/hard link 미지원; GooseFS는 hard-link 및 soft-link의 개념이 없기 때문에 ln과 같은 관련 명령어는 지원하지 않습니다. 또한 hard-link에 대한 정보는 ll의 출력에 표시되지 않습니다.
COS(Cloud Object Storage)가 기본 저장소로 사용되는 경우 Rename 작업은 원자가 아닙니다.
GooseFS의 GooseFS.security.group.mapping.class 옵션이 ShellBasedUnixGroupsMapping 값으로 설정된 경우에만 파일의 사용자 및 그룹 정보가 Unix 시스템의 사용자 그룹에 해당합니다. 그렇지 않으면 chown 및 chgrp의 작업이 적용되지 않으며 ll이 반환하는 사용자 및 그룹은 GooseFS-FUSE 프로세스의 사용자 및 그룹 정보입니다.

성능 고려 사항

FUSE와 JNR을 함께 사용하기 때문에 마운트된 파일 시스템을 사용하는 경우 네이티브 파일 시스템 API를 직접 사용하는 경우보다 성능이 상대적으로 떨어집니다.
대부분의 성능 문제의 이유는 read 또는 write 작업을 할 때마다 메모리에 여러 복사본이 있고 FUSE는 쓰기의 최대 데이터 분할 정도를 128KB로 설정하기 때문입니다. kernel 3.15에 연결된 FUSE write-backs 캐시 정책을 이용하면 성능이 크게 향상될 수 있습니다(그러나 libfuse 2.x 사용자 공간 라이브러리는 현재 이 기능을 지원하지 않습니다).

GooseFS-FUSE 설정 매개변수

GooseFS-FUSE와 관련된 설정 매개변수는 다음과 같습니다.
매개변수
기본값
설명
goosefs.fuse.cached.paths.max
500
내부 GooseFS-FUSE 캐시 크기를 정의하며, 이 캐시는 로컬 파일 시스템 경로와 Alluxio 파일 URI 간의 가장 자주 사용되는 전환을 점검합니다.
goosefs.fuse.debug.enabled
false
goosefs.logs.dir로 지정된 디렉터리의 fuse.out 로그 파일로 리디렉션되는 FUSE 디버깅 출력을 허용합니다.
goosefs.fuse.fs.name
goosefs-fuse
FUSE가 파일 시스템을 마운트하는 데 사용하는 설명형 이름입니다.
goosefs.fuse.jnifuse.enabled
true
더 나은 성능을 위해 JNI-Fuse 라이브러리를 사용합니다. 비활성화되면 JNR-Fuse가 사용됩니다.
goosefs.fuse.shared.caching.reader.enabled
false
(실험용) GooseFS JNI Fuse를 통한 다중 프로세스 파일 읽기 성능 향상을 위해 공유 grpc 데이터 리더를 사용합니다. 블록 데이터는 클라이언트에 캐시되므로 Fuse 프로세스에는 더 많은 메모리가 필요합니다.
goosefs.fuse.logging.threshold
10s
소요 시간이 임계값을 초과하면 FUSE API 호출을 기록합니다.
goosefs.fuse.maxwrite.bytes
131072
FUSE 쓰기 작업(bytes)의 데이터 분할 정도. 현재 128KB는 Linux 커널 제한의 상한선입니다.
goosefs.fuse.user.group.translation.enabled
false
FUSE API에서 GooseFS 사용자 및 그룹을 해당 Unix 사용자 및 그룹으로 전환할지 여부입니다. false로 설정하면 모든 FUSE 파일의 사용자 및 그룹이 goosefs-fuse 스레드가 마운트된 사용자 및 그룹으로 표시됩니다.

FAQ

libfuse 라이브러리 파일 누락

GooseFS-Fuse를 마운트하기 전에 libfuse를 설치해야 합니다.


방법1 설치 명령어:
yum install fuse-devel
설치 완료 여부 조회:
find / -name libfuse.so*
방법2 이전 버전 libfuse.so.2.9.2를 업데이트합니다. 설치 단계는 다음과 같습니다.
설명:
CentOS 7에 libfuse를 설치합니다. CentOS 7은 기본적으로 libfuse.so.2.9.2를 설치합니다.
먼저 libfuse 소스 코드를 다운로드하고 libfuse.so.2.9.7을 컴파일 및 생성합니다.
tar -zxvf fuse-2.9.7.tar.gz
cd fuse-2.9.7/ && ./configure && make && make install
echo -e '\\n/usr/local/lib' >> /etc/ld.so.conf
ldconfig
다음으로, libfuse.so.2.9.7을 다운로드, 컴파일 및 생성한 후 아래 단계에 따라 설치 및 교체합니다.
1.1 다음 명령을 실행하여 이전 버전 libfuse.so.2.9.2 라이브러리 링크를 찾습니다.
find / -name libfuse.so*
1.2 다음 명령을 실행하여 libfuse.so.2.9.7을 이전 ​​버전 라이브러리 libfuse.so.2.9.2 위치에 복사합니다.
cp /usr/local/lib/libfuse.so.2.9.7 /usr/lib64/
1.3 다음 명령을 실행하여 이전 libfuse.so 라이브러리에 대한 모든 링크를 삭제합니다.
rm -f /usr/lib64/libfuse.so
rm -f /usr/lib64/libfuse.so.2
1.4 다음 명령을 실행하여 삭제된 이전 버전의 링크와 유사한 libfuse.so.2.9.7 라이브러리를 링크합니다.
ln -s /usr/lib64/libfuse.so.2.9.7 /usr/lib64/libfuse.so
ln -s /usr/lib64/libfuse.so.2.9.7 /usr/lib64/libfuse.so.2

VIM을 사용하여 마운트 지점에서 파일을 편집하는 동안 Write error in swap file? 오류가 발생합니다.

GooseFS-Fuse 마운팅 포인트에서 파일 편집에 VIM 7.4 또는 이전 버전을 사용하도록 VIM 구성을 변경할 수 있습니다. VIM swap 파일은 시스템이 충돌하거나 다시 시작하는 경우 VIM이 swap 파일을 기반으로 저장하지 않은 수정 사항을 복원할 수 있도록 수정 사항을 유지하는 데 사용됩니다. 상기 오류는 VIM swap 파일에 대한 임의 쓰기 작업으로 인해 발생하며 GooseFS에서는 지원하지 않습니다. 솔루션: :set noswapfile 명령을 실행하여 swap 파일 생성을 종료하거나 구성 파일(~/.vimrc)에 set noswapfile을 추가할 수 있습니다.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백