FastDFS 학습 노트

이론 적 기초
FastdFS 는 NGINX (APACHE) 와 함께 이미지 서버 를 구축 하 는 등 중 소 파일 을 캐리어 로 하 는 온라인 서비스 에 적합 하 다.
분산 파일 시스템 FastDFS
패스 트 DFS 는 리 눅 스, 프 리 BSD 등 유 닉 스 시스템 만 지원 하 는 순수 C 언어 구현 이다.
FastdFS 의 두 핵심 개념 은 Tracker (추적 기), Storage (저장 노드) 이다.
       Tracker       ,   mvc  controller   ,            。                      ,                                ,                 ,                   。

      Tracker       Storage group,  Storage       Tracker,

자신 이 속 한 group 등의 정 보 를 알 리 고 주기 적 인 심장 박동 을 유지 하 며 tracker 는 storage 의 심장 박동 정보 에 따라
group = = > [storage server list] 의 맵 표를 만 듭 니 다. Tracker 가 관리 해 야 할 메타 정보 가 적 고 모두 메모리 에 저 장 됩 니 다.또한 tracker 의 메타 정 보 는 모두 storage 가 보고 한 정보 로 생 성 되 었 습 니 다. 그 자체 가 데이터 가 오래 지속 되 지 않 아 도 됩 니 다. 그러면 tracker 가 쉽게 확장 되 고 tracker 기 계 를 직접 추가 하면 tracker cluster 로 확장 하여 서 비 스 를 제공 할 수 있 습 니 다. cluster 안의 모든 tracker 는 stroage 의 심장 박동 정 보 를 받 습 니 다.메타 데이터 정 보 를 생 성하 여 읽 기와 쓰기 서 비 스 를 제공 합 니 다.
        Storage     [Volume](   [group])     ,             ,              ,                        。

하나의 볼 륨 [Volume] (그룹 [group]) 은 한 대 또는 여러 대의 저장 서버 로 구성 할 수 있 습 니 다. 한 그룹의 저장 서버 에 있 는 파일 은 모두 같 습 니 다. 그룹 에 있 는 여러 대의 저장 서버 는 불필요 한 백업 과 부하 균형 을 이 루 는 역할 을 합 니 다. 데 이 터 는 서로 백업 되 고 저장 공간 은 group 내 용량 이 가장 작은 storage 를 기준 으로 하기 때문에 group 안의 여러 개의 storage 는 되도록 똑 같이 설정 하 는 것 을 권장 합 니 다.저장 공간의 낭 비 를 초래 하지 않도록 하 다.
2. 설치 환경
운영 체제 버 전: CentOS release 6.5
관련 운영 체제 패키지 미리 설치
yum install unzip zip gcc-c++
관련 소프트웨어 를 저장 하기 위해 폴 더 / opt / df패키지 / 를 만 듭 니 다.
원본 주소 첫 페이지:https://github.com/happyfish100소스 코드 작성 자: 베테랑 구조 사 여 경
공통 함수 라 이브 러 리: libfastcommon - master. zip
다운로드 주소:
https://codeload.github.com/happyfish100/libfastcommon/zip/master
주 프로그램: fastdfs - 5.10. tar. gz
다운로드 주소:https://github.com/happyfish100/fastdfs
https://codeload.github.com/happyfish100/fastdfs/zip/master
NGINX 와 DFS 연결 모듈: fastdfs - nginx - modulev1.16.tar.gz
https://github.com/happyfish100/fastdfs-nginx-module
https://codeload.github.com/happyfish100/fastdfs-nginx-module/zip/master
다운로드 가 끝나 면 WinScp, SECURET 등 을 통 해 서버 로 바로 전 송 됩 니 다.
다음 FastdFS 의 설치 과정 은 다음 과 같다.
3. 배치 절차
3.1 libfastcommon 패 키 지 는 FastdFS 를 설치 하여 이전 버 전의 공공 함 수 를 libfastcommon 패키지 로 단독으로 봉 인 했 기 때문에 FastdFS 를 설치 하기 전에 libfastcommon 을 설치 해 야 합 니 다.
3.1.1 압축 풀기 unzip libfastcommon - master. zip 컴 파일 절차:. / make. sh
설치 절차 실행:. / make. sh install
libfastcommon. so 는 기본적으로 / usr / lib 64 / libfastcommon. so 에 설치 되 어 있 지만, FastdFS 메 인 프로그램 이 설정 한 lib 디 렉 터 리 는 / usr / local / lib 이 므 로 소프트 링크 를 다시 설정 해 야 합 니 다 (Windows 와 같은 단축 키):ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.soln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.soln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
3.2 FastDFS 설치 unzip fastdfs - master. zipcd fastdfs - master. / make. sh. / mae. sh 설치
cd /etc/fdfs/ll -lh
세 개의 프로필 을 복사 합 니 다. 그 다음 에는 cp client. conf. sample client. confcp storage. conf. sample storage. confcp tracker. conf. sample tracker. conf 가 있 습 니 다.
3.3Tracker 는 Tracker 서버 를 만 드 는 파일 경 로 를 설치 합 니 다. 즉, Tracker 의 데이터 파일 과 로그 파일 등 을 저장 하 는 데 사 용 됩 니 다. mkdir / opt / fastdfstracker
/ etc / fdfs / tracker. conf 설정 파일 을 편집 하고 파일 을 열 면 다음 과 같이 수정 합 니 다: vim / etc / fdfs / tracker. conf \ # 설정 파일 사용 (기본 false) disabled = false
\ # tracker 의 포트 번 호 를 설정 합 니 다. 보통 22122 라 는 기본 포트 포트 포트 = 22122 를 사용 합 니 다.
\ # tracker 의 데이터 파일 과 로그 디 렉 터 리 base 설정path=/opt/fastdfs_tracker
\ # http 포트 번 호 를 설정 합 니 다. 초기 값 은 8080 http. server 입 니 다.port=6666
fdfs 때문에 스 크 립 트 를 시작 하기 위해 소프트 인용 을 만 듭 니 다.trackerd 등 명령 은 / usr / local / bin 에 없 으 며 / usr / bin 경로 에서: ln - s / usr / bin / fdfstrackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
마지막 으로 명령 을 통 해 Tracker 서버 시작: service fdfstrackerd start
시작 명령 이 성공 하면 방금 만 든 tracker 파일 디 렉 터 리 / opt / fastdfstracker 에 서 는 시작 후 새로 생 성 된 data 와 logs 디 렉 터 리 를 볼 수 있 습 니 다. tracker 서비스의 포트 도 정상적으로 감청 되 어야 합 니 다. 마지막 으로 netstat 명령 을 통 해 포트 감청 상황 을 확인 하 십시오: netstat - unltp | grep fdfs
서비스 가 실행 중인 22122 포트 가 정상 입 니 다.
3.4 스토리 지 설치
Storage 서버 의 파일 디 렉 터 리 를 만 듭 니 다. Tracker 보다 디 렉 터 리 를 하나 더 만들어 야 합 니 다. Storage 는 파일 저장 경로 가 필요 하기 때문에 받 은 파일 을 저장 하 는 데 사 용 됩 니 다: mkdir / opt / fastdfsstoragemkdir /opt/fastdfs_storage_data
다음 에 / etc / fdfs / storage. conf 설정 파일 을 수정 하고 파일 을 열 면 다음 과 같이 수정 합 니 다.
\ # storage 포트 번 호 를 설정 합 니 다. 기본 값 은 23000 입 니 다. 같은 그룹의 storage 포트 번 호 는 port = 23000 \ # storage 데이터 파일 과 로그 디 렉 터 리 base 를 설정 해 야 합 니 다.path=/opt/fastdfs_storage \ # 실제 파일 저장 경로 storepath0=/opt/fastdfs_storage_data
\ # 저장 경로 개수, 필요 와 storepath 개수 매 칭 storepath_count=1
\ # tracker 서버 의 IP 주소 와 포트 번호, 단일 컴퓨터 로 구축 되 었 다 면 IP 는 127.0.0.1 을 쓰 지 마 십시오. 그렇지 않 으 면 tracker 를 시작 할 수 없습니다.server = 11727.1.11: 22122 \ # http 포트 번호 설정 http. serverport=8888
설정 이 완료 되면 Storage 서버 의 시작 스 크 립 트 에 소프트 인용 을 설정 해 야 합 니 다: ln - s / usr / bin / fdfsstoraged /usr/local/bin
이제 Storage 서 비 스 를 시작 할 수 있 습 니 다: service fdfsstoraged start
성공 적 으로 시작 하 는 방법 검증:
netstat - unltp | grep fdfs 23000, 22122, 두 포트 가 성공 하면 / opt / fastdfsstorage / data 디 렉 터 리 에 생 성 된 폴 더 입 니 다. data 에는 256 개의 1 급 디 렉 터 리 가 있 고 각 디 렉 터 리 에는 256 개의 2 급 하위 디 렉 터 리 가 있 으 며 모두 65536 개의 폴 더 가 있 습 니 다.새로 쓴 파일 은 hash 방식 으로 하위 디 렉 터 리 로 이동 한 다음 파일 데 이 터 를 로 컬 파일 로 직접 저장 합 니 다.그럼 마지막 으로 storage 서비스의 포트 감청 상황 을 살 펴 보 겠 습 니 다.
보기: storage 서버 가 tracker 서버 에 등록 되 었 는 지, 다음 명령 을 실행 합 니 다: / usr / bin / fdfsmonitor /etc/fdfs/storage.conf
117.27.1.11 ACTIVE 라 는 글 자 를 보면 storage 서버 가 tracker 서버 에 성공 적 으로 등록 되 었 음 을 알 수 있 습 니 다. 이로써 저 희 는 fastdfs 의 모든 설정 을 완 료 했 습 니 다. 이때 클 라 이언 트 도구 로 파일 업로드 와 다운로드 테스트 를 할 수 있 습 니 다.3.5 초보 테스트 부터https://github.com/happyfish100/fastdfs-client-java테스트 코드 다운로드 이번 테스트 는 로 컬 F 판 에서 1. JPG 설정 fdfsclient. conf 파일 trackerserver = 117.27.1.11: 2122 Test. java 를 실행 하여 group 1 / M00 / 00 / 00 / dRuYfFjwefOAadcAAjuDOhJdt 4482. jpg 대응 서버 위치: / opt / fastdfsstorage_data/data/00/00
이것 은 서버 위 에 있 는 디 스 플레이 위치 입 니 다.
3.6 fastdfs - nginx - moduleFastdFS 는 현재 http 프로 토 콜 을 지원 하지 않 습 니 다. nginx 에서 FastdFS 를 사용 하 는 모듈 fastdfs - nginx - module 을 제공 합 니 다. 이렇게 하면 가장 큰 장점 은 HTTP 서 비 스 를 제공 하고 group 에서 storage 서버 의 동기 화 지연 문 제 를 해결 하 는 것 입 니 다.안 nginx 모듈 의존 lib 라 이브 러 리 yum - y install pcre pcre - devel yum - y install zlib zlib - devel yum - y install openssl openssl - devel
먼저 nginx 등 을 설치 한 다음 에 fastdfs - nginx - module 의 설치 설정 프로 세 스 코드 다운로드 주 소 를 구체 적 으로 기록 해 야 합 니 다.https://github.com/happyfish100/fastdfs-nginx-module원본 nginx 설치 폴 더 에 들 어가 서 압축 을 풀 면 nginx 를 컴 파일 하여 설치 할 수 있 습 니 다.nginx 디 렉 터 리 에 들 어가 다음 명령 을 입력 하여 설정 합 니 다.
또는 NGINX. / configure -- prefix = / opt / dfsnginx -- user = nginx -- group = nginx -- with - http 새로 설치ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/opt/dfspackages/fastdfs-nginx-module-master/src --http-client-body-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgimake && make installgroupadd -f nginxuseradd -g nginx nginx
nginx. conf 파일 을 설정 하고 server {} 에 listen 9999 를 추가 합 니 다.
location ~/group1/M00 {root /opt/fastdfs_storage_data/data;ngx_fastdfs_module;}cp /opt/dfspackages/fastdfs-master/conf/http.conf /etc/fdfs/cp /opt/dfspackages/fastdfs-master/conf/mime.types /etc/fdfs/cp /opt/dfspackages/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
편집 modfastdfs. conf 파일, vim / etc / fdfs / modfastdfs. conf: \ # 로그 디 렉 터 리 저장 basepath=/opt/fastdfs_storage
\ # tracker 서버 의 IP 주소 및 포트 번호 trackerserver=192.168.111.11:22122
\ # storage 서버 의 포트 번호 storageserver_port=23000
\ # 파일 url 에 group 이름 url 이 있 는 지 여부have_group_name = true
기억 경로
store_path0=/opt/fastdfs_storage_data \ # 설정 그룹의 개수, 사실 이번 에는 group1group 만 사 용 했 습 니 다.count = 3
group 설정count = 3, 다음 파일 끝 에 이 3 개의 group setting 을 추가 해 야 합 니 다: [group 1] groupname=group1storage_server_port=23000store_path_count=1store_path0=/opt/fastdfs_storage_data
[group2]group_name=group2storage_server_port=23000store_path_count=1store_path0=/opt/fastdfs_storage_data
[group3]group_name=group3storage_server_port=23000store_path_count=1store_path0=/opt/fastdfs_storage_data
다음은 M00 에서 저장 디 렉 터 리 까지 의 기호 연결 이 필요 합 니 다: ln - s / opt / fastdfsstorage_data/data /opt/fastdfs_storage_data/data/00
마지막 으로 nginx: / usr / local / nginx / sbin / nginx 시작
브 라 우 저 에서 도 nginx 홈 페이지 를 볼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기