File Storage 기반 복제(Snapshot/D2D/DR) 사용 가이드
개요
Samsung Cloud Platform(이하 SCP)에서 제공하는 File Storage는 Virtual Server(이하 VM)와 Bare Metal Server(이하 BM)에서 사용 가능한 스토리지 서비스입니다.
이 문서에서는 File Storage와 관련된 기능에 대한 설명과 NFS 사용 가이드를 소개합니다.
- 스냅샷
- Disaster Recovery (DR)
- Disk to Disk Backup (D2D)
스냅샷
스냅샷은 논리적인 데이터 장애에 대비한 Point In Time 기반의 데이터 복제 솔루션입니다. 의도치 않게 사용자가 원하지 않은 파일 수정이 발생했을 때도, 복사나 복구를 통해 이전 시점으로 되돌릴 수 있습니다. 스냅샷은 생성 시 원본 데이터에 대한 성능 영향이 없으며, 생성 및 삭제 시에도 성능 영향이 없습니다. 1TB 크기의 스냅샷 생성도 수초 내에 완료됩니다.
스냅샷의 저장공간은 일반적으로 데이터 변경이 자주 일어날수록 공간을 많이 차지합니다.
스냅샷 생성
최초의 스냅샷은 생성되는 시점에 기본 볼륨이 가지고 있는 블록들에 대한 포인터 정보를 저장합니다. 이후 기본 볼륨에 대한 데이터 변경이 발생하면 원래 데이터에 대한 포인터 정보를 담고 해당 영역은 스냅샷 예약 영역에 포함됩니다. 이후 생성되는 스냅샷은 이전 스냅샷 이후 변경된 데이터 블록들만 포함합니다.
스냅샷 복구
SCP File Storage는 생성되어 있는 스냅샷을 통해 볼륨 전체에 대해 또는 파일 단위로 2가지 복구 방법을 제공합니다.
전체 복구
특정 시점의 스냅샷 데이터로 원본 파일 시스템이 복구가 진행되고, 복구가 완료되면 사용된 스냅샷 이후에 생성된 스냅샷들은 자동으로 삭제됩니다.
파일 단위 복구
- 특정 시점의 스냅샷에 접근하여 필요한 파일에 대해 복구를 진행하게 됩니다.
- 복구 행위가 진행 시점에 존재하는 스냅샷에 대해 영향을 미치지 않습니다.
- 사용자가 콘솔에서 파일 단위 복구 사용을 클릭한 후 OS에 접속하여 복구에 필요한 단계를 직접 수행합니다.
volume-path$ cd .snapshot
.snapshot$ cd snapshot1volume-path$ cd .snapshot
.snapshot$ cd snapshot1- 자원 관리 > Storage > File Storage 파일 목록에서 복구를 희망하는 볼륨 선택
- 스냅샷/복구목록 탭 선택
- 콘솔에서 복구하고자 하는 스냅샷을 선택하여 복구를 클릭하는 단계만으로 진행됩니다.
Disaster Recovery (DR)
일반적으로 DR은 Zone 또는 Region 간 복제를 지원하는 기능을 이야기합니다. SCP 파일 스토리지의 DR은 스냅샷을 기반으로 합니다. 서로 다른 두 리전 간의 파일 시스템을 동기화하여 장애 발생 시 긴급하게 다른 리전의 파일 시스템을 사용하기 위한 기능으로, 물리적으로 다른 스토리지 장비 간에 파일 시스템이 존재합니다. DR은 최초 스냅샷과 가장 최근 동기화된 스냅샷을 제외한 스냅샷은 삭제됩니다.
최초 DR 구성 시 스냅샷 생성
원본 파일 시스템으로부터 최초로 동기화되는 스냅샷은 원본 파일 시스템 크기만큼 생성되며, 따라서 동기화가 완료되기까지의 시간은 원본 파일 시스템의 크기에 따라 다릅니다.
최초 동기화가 완료된 시점 이후부터 생성되는 스냅샷은 마지막으로 동기화된 스냅샷과 비교하여 변경된 부분만 스냅샷으로 생성됩니다. 이를 증분 백업이라 부르며, 동기화 대상의 양이 전체 백업에 비해 작기 때문에 시간 소요가 적습니다.
Lag time이란?
가장 최근 스냅샷이 생성된 이후 동기화되지 못한 시간을 의미합니다. SCP File Storage DR 기능은 현재 5분/1시간/매일/매주/매달의 주기로 동기화 설정이 가능합니다.
예를 들어 5분이라는 주기로 설정하였다면, Lag time은 5분을 넘길 수 없습니다.
File Storage 백업
SCP File Storage 서비스 환경에서는 사용자의 원본 파일 시스템을 백업하여 데이터를 보호할 수 있습니다.
디스크 백업(D2D)
디스크 백업은 같은 ZONE 내에서 또는 ZONE에서 ZONE으로 백업을 수행합니다. 이 기능은 스냅샷 기능을 활용하여 동작하며, 백업 보관 개수는 스냅샷의 개수를 의미합니다.
콘솔에서의 명칭은 <디스크 백업>으로, 백업위치·백업볼륨명·백업주기(1시간, 매일, 매주, 매달)·백업 보관 개수(1~128)를 설정할 수 있으며, 생성 시 용도는 백업본으로 표시됩니다.
백업본은 바로 마운트하여 사용할 수 없으며, 아래와 같은 순서에 의해 사용 가능합니다.
- 동기화 정책에서 일시정지
- 파일단위 복구 수행
- 백업 볼륨에서 원본 볼륨으로 전체 복구는 SR로 진행
디스크 백업 복구
동일 ZONE 내 D2D 파일 스토리지 복구 절차
- 동기화 정책 일시정지
- 백업 볼륨의 Read/Write 설정
- Console > File Storage > 디스크 백업 동기화 일정 정지
- 파일 단위 복구 사용
- 파일 시스템 마운트 시 특정 시점 스냅샷 버전이 보이도록 파일 단위 복구 기능을 활성화 설정
- Console > File Storage > 백업 볼륨 > 파일단위 복구 사용
- 서버 접근제어 설정
- 마운트할 서버 선택
- Console > File Storage > 백업 볼륨 > 연결 자원 수정
- 마운트
- 마운트 정보 확인
- SCP User Guide > File Storage > How-to guides > 서버 연결하기 내용 참조
- 특정 스냅샷 시점의 파일단위 복구
- 백업된 스냅샷 버전 중 복구가 필요한 파일을 찾아서 파일단위 선택적인 복구 수행
- SCP User Guide > File Storage > How-to guides > 파일 단위 복구하기 내용 참조
다른 ZONE의 D2D 파일 스토리지 복구 절차
복구 절차는 위의 동일 ZONE 절차와 동일하며, 다음 사전 요건이 추가로 필요합니다.
NFS 사용법
NFS MOUNT 옵션
NFS MOUNT 옵션 중 주로 사용되는 옵션에 대한 설명입니다. 기본적으로 아무 옵션을 주지 않는다면 기본값이 적용되어 마운트되며, linux에서 mount 명령어로 마운트된 볼륨에 적용된 옵션값들을 확인할 수 있습니다.
옵션을 부여하는 방법은 mount 명령어 수행 시 -o 뒤에 사용하고자 하는 옵션을 명시하여 수행하며, 각각의 옵션은 ,로 구분합니다.
아래는 NFS 옵션에 대한 설명입니다.
| NFS 옵션 | 설명 |
|---|---|
| rsize | NFS 클라이언트가 한 번의 READ 요청에 수신할 수 있는 최대 데이터 바이트 크기 |
| wsize | NFS 클라이언트가 한 번의 WRITE 요청에 송신할 수 있는 최대 데이터 바이트 크기 |
| hard | NFS 요청 제한 시간이 초과된 후 NFS 클라이언트의 복구 동작을 설정하여 응답할 때까지 무기한 재시도되도록 함. 일반적으로 읽기/쓰기 디렉터리의 경우 hard로 설정 |
| timeo | NFS 클라이언트가 NFS 요청을 재시도하기 전에 응답을 기다리는 시간을 초 단위로 설정 |
| retrans | NFS 클라이언트가 추가 복구 작업을 시도하기 전에 요청을 재시도하는 횟수 |
| noresvport | 네트워크 연결이 다시 설정되면 NFS 클라이언트에서 새로운 TCP 포트를 사용하도록 하는 옵션 |
| _netdev | /etc/fstab에 NFS 볼륨 등록 시 해당 디바이스가 네트워크 장비임을 명시하여, 시스템 네트워크가 활성화되기 이전에 마운트를 시도하는 것을 방지 |
NFS 성능 최적화
Mount 옵션 중 nconnect에 대한 설명입니다. 클라이언트와 스토리지 장비 간 네트워크로 연결된 세션 수를 지정할 수 있습니다. 일반적으로 이 옵션을 사용하지 않고 마운트하면 단일 세션으로 1개의 연결을 사용합니다. nconnect 옵션은 1~16까지 지정 가능하지만, 성능상 유의미한 향상을 얻을 수 있는 값은 4 또는 8입니다.
하지만 nconnect는 최신 OS에서 지원하므로 가능 여부를 확인한 후 사용해야 합니다.
NFS v4
SCP 환경에서 File Storage를 사용하고자 하는 경우 현재로서는 NFSv3만 제공하며, NFSv4는 별도의 SR 신청이 필요합니다.
SR 신청 후 작업이 완료되면 사용자는 아래 mount 절차에 따라 서버 설정 작업을 수행합니다.
NFSv4 서버 설정
# vi /etc/idmapd.conf
Nobody-User = root
Nobody-Group = root# vi /etc/idmapd.conf
Nobody-User = root
Nobody-Group = root위와 같이 설정 후 저장합니다.
# nfsidmap -c# nfsidmap -c명령어 실행 후 mountpoint가 root:root로 변경되었는지, 그리고 파일이 정상적으로 Read/Write 되는지 확인합니다.






