File Storage
File Storage
개요
이 페이지는 Local File 또는 NAS(Network-Attached Storage) File 을 Samsung Cloud Platform(이하 SCP) File Storage로 Migration할 때 참고할 수 있는 가이드입니다. 용도 별 Data Migration 도구(Tools)를 먼저 소개하고 Migration 예제를 명령어까지 상세하게 안내합니다.
Migration 도구
Protocol 과 Source 환경에 따라 아래와 같은 Tool을 활용하실 수 있습니다. 각 Linux, Windows OS의 Built-in Tool로서 별도 설치 없이 사용이 가능합니다.
| Data Type | Protocol | Tool | 설명 |
|---|---|---|---|
| File | NFS | Rsync | Linux 서버 환경의 File Migration 시 사용 |
| File | CIFS | RoboCopy | Windows서버 환경의 File Migration 시 사용 |
사전작업
VPC Endpoint
Bastion Host에서 SCP v2의 File Storage에 접속할 수 있도록 VPC Endpoint를 생성합니다. Bastion Host는 SCP v2 환경에 만들 수도 있으며 그럴 경우 SCP v2환경이 아닌 SCP 환경에 VPC Endpoint 생성이 필요합니다.
VPC Endpoint 생성 이후에 연결된 File Storage의 상세 정보에서 vpc endpoint 연결 작업을 수행합니다.
방화벽/Security Group
Bastion Host에서 SCP v2의 VPC Endpoint에 대한 접속 경로 통신이 가능하게 합니다.
| 출발지 | 목적지 | 포트/서비스 | 유형 | 설명 |
|---|---|---|---|---|
| Bastion Host | SCP v2 File Storage VPC endpoint | TCP, UDP 공통 / 111, 300, 302, 304, 2049, 635, 4045, 4046, 4049 | One-way | File Storage 접속 |
- SCP에서 SCP v2 환경으로 통신을 구성하기 위해서는 아래 항목에 모두 적용이 잘 되어 있어야 합니다.
- Bastion Host security group
- SCP DC/TGW의 Firewall & Routing
- 물리 방화벽(DC Manager)
- SCP v2 DC/TGW의 Firewall & Routing
File Storage Mount 작업
Bastion Host에서 SCP와 SCP v2의 File Storage를 Mount 합니다.
Linux VM에서 File Storage 연결하기
Linux VM에 연결할 File Storage를 만들 때는 일반적으로 NFS 프로토콜로 File Storage를 생성합니다. VM에서 File Storage에 접속하기 위해서는 권한 부여가 필요합니다. File Storage의 상세 정보에서 연결자원 옆의 연필 아이콘을 클릭하여 접속하려고 하는 VM을 선택하고 확인을 클릭합니다.
상기 설정 없이 VM에서 File Storage를 연결할 경우 아래 Error가 발생합니다.
- mount.nfs: access denied by server while mounting <Mount 명>
VM에서 아래 명령을 사용하여 FIle Storage를 연결합니다. mount 명령어에서 사용할 mount명은 File Storage의 상세 정보에서 확인 가능합니다.
Mount 명령
$ mkdir /data
$ mount -t nfs -o vers=3,noresvport 198.19.64.232:/shae_e7e17de9_120d_494a_90e6_ec9217c4ad60 /data
mount 명령이 수행되지 않을 경우 아래 패키지 또는 서비스가 설치/실행되어 있는 지를 확인합니다.
패키지 설치 (Redhat 계열)
$ yum install nfs-utils
패키지 설치 (Debian 계열)
$ apt-get install nfs-common
NFS 관련 데몬 활성화 및 가동
$ systemctl enable rpcbind.service
$ systemctl start rpcbind.service
VM 재기동 시에도 File Storage를 자동 연결하기 위해서는 /etc/fstab 파일에 아래 내용을 추가합니다 fstab파일
$ vi /etc/fstab
198.19.64.232:/shae_e7e17de9_120d_494a_90e6_ec9217c4ad60 /data nfs defaults,vers=3,_netdev,noresvport 0 0
Windows VM에서 File Storage 연결하기
Windows VM에 연결할 File Storage를 만들 때는 일반적으로 CIFS 프로토콜로 File Storage를 생성합니다. VM에서 File Storage에 접속하기 위해서는 권한 부여가 필요합니다.
- File Storage의 상세 정보에서 연결자원 옆의 연필 아이콘을 클릭하여 접속하려고 하는 VM을 선택하고 확인을 클릭합니다.
Windows VM에서 File Storage에 접속할 때에는 ID/Password가 필요합니다.
- ID는 File Storage의 상세 정보 화면에서 프로토콜 항목에서 확인 가능합니다: CIFS(ID:xxxx)
- Password는 File Storage 생성시 입력하게 되어 있습니다. Files Storage 연결할 때에는 탐색기에서 내 PC의 오른 쪽 마우스 메뉴에서 Map network drive(네트워크 드라이브 연결)를 클릭합니다.
- 연결할 File Storage 볼륨의 상세 정보를 참고해 드라이브와 폴더를 입력한 후 마침을 클릭하세요: 폴더에는 Mount명을 입력합니다. 서버 재가동 시 자동으로 연결되도록 설정하려면 로그인할 때 다시 연결(Reconnect at sign-in)을 선택하세요.
- ID/Password 입력화면에 ID와 Pasword를 입력하면 File Storage가 연결됩니다.
마이그레이션 절차
1. Rsync
Rsync 는 Remote Sync의 줄임말로 NFS(Linux, Unix) 환경의 대표적인 File Migration Tool 입니다. Linux의 기본 Package로 제공되며 명령어를 수행하여 원격 또는 로컬간에 파일이나 디렉토리를 동기화(또는 복사)할 수 있습니다. 다양한 옵션이 제공되며 이를 활용하여 각 환경에 맞는 Migration을 수행 할 수 있습니다.
수행 방법
#rsync [options] [source] [destination]
주요 옵션
- v : 진행 상황을 상세
- a : 아카이브 모드
- z : 데이터 압축 전송
- h : human-readable 읽을 수 있는 형식으로 출력번호 표시
--delete : Target 디렉토리에 data 가 있을 경우 삭제
(delete 옵션은 source 와 target 의 동기화 시 사용되는 옵션으로 target 디렉토리에 data 가 있을 경우 삭제되므로 반드시 확인 후 사용하시기 바랍니다.)
사용 예제
Ex1> Local File to SCP File Storage Migration
- SCP File Storage 생성 후 해당 서버에 Mount
- rsync 명령어 사용하여 Migration (/mig_src -> /mig_tgt)
#rsync -avzh –delete /mig_src/ /mig_tgt » /log/rsync.log
Ex2> AWS EFS to SCP File Storage Migration
- AWS VPN Service를 활용하여 SCP과 Network 연결
TCP Port 2049에 대한 방화벽 오픈
: SCP Security Group Outbound
: AWS 보안그룹 Inbound - SCP서버에서 AWS EFS(Source)와 SCP File Storage(Target) 모두 Mount
- rsync 명령어 사용하여 Migration (/efs -> /scp_nas)
#rsync –avzh –delete /efs/ /scp_nas » /log/rsync.log
2. RoboCopy
Windows OS Built-In Tool이며 Local File 또는 Network File System에 대한 Migration 기능을 지원합니다. Windows에서 가장 손쉽게 사용 가능한 안정성 있는 Tool 로서 명령 프롬프트에서 명령어로 실행 가능합니다. 다양한 옵션이 제공되어 여러 조건에 맞는 Migration을 진행 할 수 있습니다.
수행 방법
#robocopy [source] [destination] [options]
주요 옵션
/MIR : 디렉터리 트리를 미러링
/W:n : 다시 시도 간 대기 시간
/R:n : 실패한 복사본에 대한 다시 시도 횟수
/TEE : 로그 파일과 콘솔 창에 출력
/ETA : 복사하는 파일의 예상 도착 시간을 표시
/LOG+:file : 상태를 로그 파일에 출력(기존 로그에 추가)
/MT[:n] : n개의 스레드가 있는 다중 스레드를 복사(기본값 8, n은 1 이상 128 이하)
추가 상세 옵션은 “robocopy /?” 명령어로 확인 가능합니다.
사용 예제
- Ex1> Local to Local
- C드라이브의 mig_src 디렉토리를 D드라이브의 mig_tgt 디렉토리로 Migration
>robocopy c:\mig_src d:\mig_tgt /mir /w:3 /r:3 /eta /log+:c:\log.txt
- Ex2> Local to Network Filesystem Migration
- mig_src 디렉토리를 CIFS1서버의 mig_tgt 디렉토리로 Migration
>robocopy c:\mig_src \CIFS1\mig_tgt /mir /w:3 /r:3 /log+:c:\log.txt
- Ex3> NAS FileSystem Migration
- 사용중인 NAS FileSystem data 를 새로운 NAS FileSystem으로 Migration
As-Is FileSystem CIFS Share 경로 및 To-Be FileSystem CIFS Share 경로 확인
네트워크 드라이브로 마운트 할 경우 Letter명을 사용하여 지정 가능 ex) Z: ,Y:
>robocopy Z:(Source) Y:(Target) /mir /w:3 /r:3 /eta /mt:64 /log+:c:\log.txt

