동아리에서 "라즈베리파이 NAS 제작 소모임"에 참여하게 된 김에 SAN과 NAS의 차이에 대해서 정리 해보려 한다. 사실 인턴할 때도 디스크 분할할 때 몇 번 언급됐었는데, 시간이 촉박해서 이해만 하고 넘긴거 같아서 블로그로 정리하게 되었다.

Storage

스토리지 시스템은 단일 디스크로 처리할 수 없는 용량을 저장하기 위해 디스크를 묶어서 논리적으로 사용하는 기술이다.
그리고, 스토리지 구성은 서버와 저장장치를 연결하는 방법이다.


DAS(Direct Atached Storage)

NAS와 SAN 비교 전에 전통적인 스토리지 시스템 구성 방식인 DAS에 대해 먼저 알아보겠다. 이는 스토리지 시스템을 서버에 직접 부착하는 방식으로 연결되어 있는 클라이언트를 이용해야만 스토리지 시스템에 저장되어 있는 데이터에 액세스 가능하다.

오랜 기간 유지된 기술이고, 소규모 구현과 관리가 용이하며 소규모 스토리지 시스템을 구성할 때 비용이 경제적이다.
다만, 호스트에 장애가 발생하면 저장장치 접근이 제한될 수 있으며, 스토리지 시스템이 단일 서버에 속해있기 때문에 기본적으로 공유가 어렵고 여러 서버로 구성된 분산 환경에서는 관리가 어렵다.


NAS(Network Atached Storage)

NAS는 스토리지가 다른 호스트 없이 직접 네트워크에 연결되는 방식으로, 스토리지 시스템을 네트워크에 연결해 공유한다.
이를 통해 여러 대의 클라이언트(컴퓨터)가 네트워크를 통해 여러 스토리지 시스템에 액세스할 수 있다.

여러 대의 클라이언트가 네트워크를 통해 여러 스토리지 시스템에 액세스하는 방식으로, 이기종 플랫폼의 스토리지 풀을 중앙 공유화 할 수 있고 확장성이 우수하며 고가용성, 파일 시스템 관리 향상 등의 장점이 있다.
반면에 단점은 일반 네트워크를 통해 데이터에 액세스하기 때문에 네트워크 프로토콜 이용에 따른 프로세서 과부하, 스토리지 I/O 트래픽에 따른 LAN 대역폭 소모 증가 등의 단점이 있다.

서버와 저장장치가 이더넷 등의 LAN 네트워크로 연결된다. TCP/IP 네트워크에 연결된 파일 기반 데이터 스토리지이다. (이더넷은 TCP/IP의 Data Link 계층의 프로토콜)

파일 단위 전송이므로, 속도는 블록 기반인 SAN에 비해 느릴 수 있으나, 고속 LAN을 사용하면 성능 및 대기 시간 문제를 완화 가능하다.


NAS는 설정 및 배포가 간단하다. NAS 볼륨은 사용자에게 네트워크 마운트 볼륨으로 나타난다. 장치 자체는 컴퓨터 및 다른 TCP/IP 장치와 마찬가지로 네트워크 노드이며, NAS 파일 서비스는 이더넷 네트워크를 사용해 파일을 주고 받는다.

NAS는 운영체제에 공유 폴더로 나타나며, 네트워크 마운트 볼륨이란 이러한 NAS 볼륨을 서버에 연결하여 사용할 수 있도록 하는 것을 말한다. 간단히 말해서, NAS 볼륨을 네트워크를 통해 마운트하면, 마치 로컬 드라이브처럼 사용할 수 있게 된다.

  • 다양한 위치의 여러 사용자가 네트워크를 통해 접속하여 파일을 공유하고 저장된 파일의 정보들을 여러 서버에서 공유 가능하다. (액세스 용이)
  • 네트워크 환경이 불안정하면 트래픽 문제가 발생할 수 있고, Latency 증가로 인한 대규모 처리에서 성능 문제(대역폭 제한)가 발생할 수 있다.

SAN(Storage Area Network)

여러 스토리지들을 하나의 네트워크에 연결시킨 다음 이 네트워크를 스토리지 전용 네트워크로 구성하는 방식이다. 즉, 스토리지에 접근하기 위해서는 각 호스트들은 모두 SAN 전용 네트워크를 거쳐서 접근해야 한다. 별도의 SAN 전용 스위치가 필요하다.

NAS와 달리 SAN은 파일이 아닌 블록 단위의 I/O 입출력을 기본으로 한다. 각 블록들은 저장된 위치(특정 스토리지 시스템의 특정 디스크)에 대한 주소를 갖고 있어 호스트들의 요청에 따라 블록을 재구성해 하나의 데이터로 조합하여 호스트에 전달된다.

즉, 스토리지 전용 LAN을 별도로 구성한다고 볼 수 있다. 별도의 데이터 전달 통로를 통해 스토리지 시스템에 액세스하기 때문에 일반 네트워크 부하에 영향을 받지 않고 빠른 데이터 접근이 가능하다. (LAN에 의존하지 않고, 연결된 서버에 직접 데이터를 오프로드해 로컬 네트워크 부담 줄임)

여러 서버 또는 컴퓨터에 액세스할 수 있는 스토리지 디바이스 네트워크로, 스토리지 공간의 공유 풀을 제공한다. 네트워크의 각 컴퓨터는 컴퓨터에 직접 연결된 로컬 디스크처럼 SAN 스토리지에 액세스랄 수 있다.

근본적으로는 공유를 못한다(요즘은 발전중). 다만, 스토리지 공간을 여럿이 나눠 쓸 수는 있다.

  • 대용량의 데이터를 연결된 서버에 상관없이 원거리에 분산된 저장장치 사이에서 데이터를 주고받을 수 있다. => 빠른 속도와 확장성, 유연성, 편리성 뛰어남, 보안도 비교적 강함
  • 구초기 구축 시 많은 비용 투자 필요

SAN VS NAS

NAS는 이더넷을 통해 파일을 제공하는 단일 스토리지 장치로, 비교적 저렴하고 설정하기 쉽다.
반면 SAN은 설정 및 관리가 복잡하고 비용이 많이 드는 여러 장치로 구성된 네트워크이다.

정리

NAS => 공유 스토리지를 네트워크 마운트 볼륨으로 제공, NFS와 같은 프로토콜 사용한다.
SAN => 연결된 디스크는 로컬(직접 연결) 드라이브처럼 사용 가능하다.


용도

NAS

  • 파일 공유, 동시 접속이 필요한 업무, 비정형 데이터 사용에 적합(동영상 파일, 오디오 파일, 사진, 문서, 메일 본문 등), 다수의 클라이언트의 데이터 공유를 위해 사용

SAN

  • 볼륨을 공유하는 목적으로 블록 형태의 I/O가 필요한 업무, DB같은 구조화된 워크로드, 고용량 및 고성능이 요구되는 업무에 사용, 블록 기반 통합 스토리지를 위한 전용 고성능 네트워크

0개의 댓글

Powered by GraphCDN, the GraphQL CDN