[중요] File Storage 설명서(구, 사용자 가이드) 문서 지원 종료 (Deprecated) 안내


  • 네이버 클라우드 플랫폼 서비스 정책상 장기적으로 File Storage는 서비스 및 유지보수 지원을 중지할 계획입니다.

    • 현재 이용중인 서비스에는 문제가 없도록 유지할 계획이지만, 부가 기능 및 연동 상품 이용 개선에 대해서는 제약이 있을 수 있습니다.
  • 편리한 기능 제공과, 상품간 원활한 인터페이스 및 연동을 위해서 Object Storage로 전환하는 것을 고객분들께 권고드립니다.

    • 단기적으로 Object Storage로 전환이 어려우시더라도 중장기적으로 Object Storage로의 전환에 대해 긍정적으로 검토 부탁드립니다.
    • Object Storage로 전환하실 때 필요하신 데이터 이관 등은 저희가 최대한 지원해드리도록 하겠습니다.

File Storage에서 Object Storage로의 마이그레이션에 대해서는 고객지원으로 문의하여 주시기 바랍니다.

파일 스토리지 CLI를 이용한 Linux 서버 백업 가이드

사용하기 전에

서버의 데이터를 인터넷 상의 가용성 및 안정성이 높은 클라우드 스토리지인 File Storage로 백업합니다. 여기서는 File Storage CLI(Command Line Interface)를 이용해서 주기적으로 서버의 데이터를 백업하는 작업을 자동화하는 방법을 소개합니다.

백업 단계

백업 절차는 다음의 순서로 진행합니다.

  1. FS CLI 설치 : FS CLI를 다운로드하고 CLI 환경을 설정합니다.
  2. 컨테이너 생성 : 콘솔에서 File Storage에 접속하신 후 백업에 사용할 컨테이너를 생성합니다.
  3. 백업 데이터 업로드 : CLI를 이용해서 백업 데이터를 파일 스토리지로 업로드합니다.
  4. 스케줄러 작업 등록 : 백업 데이터를 업로드하는 절차를 스케줄러 작업으로 등록합니다.

File Storage CLI 설치하기

JDK 설치 및 JAVA_HOME 환경 설정 확인 방법

# JAVA_HOME/bin/java -version

JDK 설치 및 JAVA_HOME 환경 설정이 되어 있는 경우

JDK 설치 방법(선택)

  1. 수동 설치를 위한 다운로드 경로

    • 위치: http://java.oracle.com > Java SE Downloads에서 다운로드한 후, 패키지 종류에 맞게 설치를 진행하시기 바랍니다.

  2. 자동 설치를 위한 방법

    1. CentOS에서 yum을 이용해서 jdk를 설치하는 경우

      [JDK 7 버전]

      # yum list java*jdk-devel
      # yum install java-1.7.0-openjdk-devel
      
    2. Ubuntu에서 jdk를 설치하는 경우

      [Oracle JDK 7 버전]

      # sudo apt-get install oracle-java7-installer
      -> jdk가 설치된 경로: /usr/lib/jvm/java-7-oracle
      

      [Open JDK 7 버전]

      # sudo apt-get install openjdk-7-jdk###
      -> jdk가 설치된 경로: /usr/lib/jvm/java-7-openjdk-amd64
      

JAVA_HOME 설정

# export JAVA_HOME=[jdk가 설치된 경로]
# vi /etc/profile
  JAVA_HOME=[jdk가 설치된 경로]

JAVA_HOME 환경 설정 여부 확인 방법

# $JAVA_HOME/bin/java -version

CLI 다운로드

네이버 클라우드 플랫폼 웹사이트의 설명서(구, 사용자 가이드) > STORAGE > File Storage CLI > 파일 스토리지 CLI를 이용한 Linux 서버 백업 가이드에서 네이버 클라우드 플랫폼 파일 스토리지 CLI (Linux용)를 다운로드합니다. (https://docs.ncloud.com/download/CLI-0.9-linux-20180828183827.tar.gz)

다운로드한 파일을 명령어를 실행할 서버에서 압축 해제

① 다운로드한 파일을 압축을 해제합니다.

② CLI 관련 파일이 존재하는지 확인합니다.

  • 관련 파일: ncfscmd, ./lib/cli.jar
  • linux에서 ncfscmd 파일 실행 권한을 부여해야 합니다(# chmod 755 ncfscmd.sh).

)

OAuth 환경 설정

① 포털 > 마이페이지 > API 인증키 관리에 본인이 부여받은 Access Key와 Secret Key를 이용해서 OAuth 환경을 설정합니다.

  • jdk(버전1.6 이상)는 미리 설치가 되어 있어야 합니다.

② 발급받은 Access Key와 Secret Key를 이용해서 환경 설정을 합니다.

  • 환경 설정 명령어
    ./ncfscmd.sh configure [Access Key] [Secret Key]
    

③ 파일 생성 여부를 확인합니다.

  • 결과: Configration saved to ‘[/user/home/].nfscfg

컨테이너 생성하기

콘솔의 File Storage에서 컨테이너를 생성합니다.

  • 다른 사용자가 이미 생성한 컨테이너명은 동일한 이름으로 생성이 되지 않습니다.
  • 컨테이너 생성 후에 File Storage CLI 명령어로 해당 컨테이너에 명령어 수행이 가능합니다.

백업 데이터 업로드하기

파일 업로드

ncfscmd.sh put [localFile] ncfs://[container]
ncfscmd.sh put [localFile] ncfs://[container]/[folder]
  • 결과: [파일명] -> ncfs://[컨테이너명]/[파일명][전송량] of [파일크기] done execution time [전송시간]s

    • 업로드 가능한 단일 파일의 최대 사이즈는 1TB.

목록 조회

  • ncfscmd.sh ls ncfs://[container]
  • 결과: [최종수정일시] [파일크기 or DIR] ncfs://[컨테이너명]/[파일 or 폴더]

    • CLI 도움말 ./ncfscmd.sh help를 입력하세요.
    • 백업할 파일들이 여러 개인 경우 압축해서 하나의 파일을 생성하고 미리 생성한 컨테이너에 ncfscmd.sh put 명령을 이용해서(예제1) 같은 방식으로 업로드합니다. 업로드된 파일은 ncfscmd.sh ls ncfs://[컨테이너명] 명령으로(예제2) ‘컨테이너별’로 확인할 수 있습니다.
      • 업로드하려는 컨테이너 또는 디렉터리에 이미 동일한 파일명이 있는 경우에는 put 명령을 실행하더라도 파일을 덮어씌우지 않고 실행을 취소합니다. 따라서 주기적으로 백업하실 때에는 파일명을 반드시 변경해서 업로드하셔야 합니다. 매번 다른 파일명으로 백업용 파일을 만드는 스크립트를 작성해서 사용하시기를 권장드립니다.
      • 컨테이너 생성 후 파일 업로드 및 목록 조회를 수행할 경우, ERROR: Container permission denied, Please check container라는 메시지가 확인된다면, OAuth 환경 설정 > 인증키 환경 설정을 재확인해보시기 바랍니다.

스케줄러 작업 등록하기

백업 명령 또는 스크립트파일을 crontab에 등록

백업을 위한 CLI 업로드 명령이나 스크립트 파일을 crontab에 등록합니다. 예를 들어서 매일 5시에 백업을 실행해서 ex-cnt 라는 컨테이너에 업로드를 진행한다고 하면 다음과 같이 등록합니다.

# crontab -e
0 5 * * * [/파일위치/]ncfscmd.sh put backupfile-yyyy-mm-dd-OO.tar.gz ncfs://ex-cnt

작업 실행 로그 등을 통해서 스케줄 작업의 정상 수행 여부를 꼭 확인하도록 합니다.

  • 업로드하려는 컨테이너 또는 디렉터리에 이미 동일한 파일명이 있는 경우에는 put 명령을 실행하더라도 파일을 덮어씌우지 않고 실행을 취소합니다. 따라서 주기적인 백업을 하실 때에는 파일명을 반드시 변경해서 업로드하셔야 합니다. 매번 다른 파일명으로 백업용 파일을 만드는 스크립트를 작성해서 사용하시기를 권장드립니다.

CLI 추가 명령 실행 예제(Linux)

폴더 생성, 삭제, 파일 업로드, 다운로드, container 목록 조회 기능을 사용합니다.

  • 명령어 구조
# ncfscmd.sh [명령어] [parameter] [parameter]
  • 도움말 보기
# ncfscmd.sh help

폴더생성

ncfscmd.sh mkdir ncfs://[container]/[folder]
  • 결과: folder [컨테이너/폴더명] be created

폴더&파일 삭제

ncfscmd.sh del ncfs://[container]/[folder]
  • 제약: 폴더 안에 파일이 존재하는 경우 삭제 불가
ncfscmd.sh del ncfs://[container]/[file]
  • 결과: ncfs://[컨테이너명]/[폴더 or 파일] deleted

파일 업로드

ncfscmd.sh put [localFile] ncfs://[container]
ncfscmd.sh put [localFile] ncfs://[container]/[folder]
  • 결과: [파일명] -> ncfs://[컨테이너명]/[파일명][전송량] of [파일크기] done execution time [전송시간]s
  • (참고) 업로드 가능한 단일 파일의 최대 크기는 1TB입니다.

파일 다운로드

ncfscmd.sh get ncfs://[container]/[filename] [로컬 저장 경로]
  • 결과: ncfs://[컨테이너명]/[파일명] -> [파일명][전송량] of [파일크기] done execution time [전송시간]s

목록 조회

ncfscmd.sh ls ncfs://[container]
  • 결과: [최종수정일시] [파일크기 or DIR] ncfs://[컨테이너명]/[파일 or 폴더]

전송중 중단 또는 취소된 파일의 삭제

  • 네트워크 문제로 중단되었거나 취소한 전송 파일의 경우. 네이버 클라우드 플랫폼의 관리 콘솔에서 보면 여전히 업로드 중인 상태로 보이고 동일 파일의 재전송이 불가능합니다. 이때는 전송 상태로 남아있는 파일을 abort 명령으로 삭제하고 진행합니다.

    ncfscmd.sh abort ncfs://[container]/[file]
    
  • 결과: folder [컨테이너/파일명] aborting completed

[예제] FSCLI를 이용해서 MySQL DB를 File Storage로 백업하기

리눅스에서 MySQL DB를 File Storage에 주기적으로 백업한다고 가정했을 때 백업 시나리오입니다.

My SQL DB 백업용 파일 생성

테이블별 백업

/MYSQLHOME/bin/mysqldump -u[계정] -p[패스워드] -R -Q --opt [DB명] [테이블명] > [백업 파일명]

데이터베이스별 백업

/MYSQLHOME/bin/mysqldump -u[계정] -p[패스워드] -R -Q --opt [DB명] > [백업 파일명]

전체 데이터 백업

/MYSQLHOME/bin/mysqldump -u[계정] -p[패스워드] -R -Q --opt --all-databases > [백업 파일명]
  • MySQL 백업 옵션
    • R: 프로시저, 펑션들을 포함하여 백업
    • Q: 테이블 칼럼에 '를 넣는 옵션

백업 파일을 File Storage CLI를 이용해서 File storage에 저장

File Storage CLI를 사용하기 위해서 환경설정을 합니다.

ncfscmd.sh configure [accessKey] [secretKey]
  • accessKey와 secretkey는 네이버 클라우드 플랫폼 포탈에서 ‘마이페이지 > API 인증키 관리’에 있는 값을 사용합니다.

환경 설정 후 File Storage CLI를 이용해서 백업 파일을 업로드합니다.

ncfscmd.sh [백업 파일] ncfs://[컨테이너명]/[폴더명]

※ 동일 파일명에 대해서 overwrite 기능이 없기 때문에, 파일 업로드 시 날짜별로 폴더이름을 만들어서 업로드합니다.
(예제) ncfscmd.sh [백업 파일] ncfs://test/20130129

규칙적으로 백업이 필요한 경우 상위 단계를 shell-script로 작성하고 crontab에서 일일배치로 실행하도록 등록합니다.

연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...