2021. 4. 7. 09:00ㆍIT/Storage
IT 업계에서 일하다 보면 저장장치는 필수이자 시스템에서 뗄 수 없는 중요한 요소인 것을 알 수 있다. 필자의 어린 시절도 그렇고 "샌 나스 다스가 뭐지?" 하면서 인터넷에서 찾아본 게 엊그제 같다. 사실 해당 부문의 차이점은 체험하지 않으면 정확히 알기 힘들다. 때문에 이 글에서는 좀 더 구체적이고 아키텍처 위주의 설명으로 지식의 공유를 하고자 글을 작성한다.
저장장치를 영어로 하면 Storage. 즉 스토리지라고 부른다. 개인용 하드디스크, 외장하드, USB에서 기업에서 사용하는 대용량 저장장치까지 데이터를 저장하여 읽고(Read) 쓸(Write) 수 있는 있는 모든 장치가 스토리지이다.
그 저장장치를 CPU가 인식할 수 있도록 우린 별도의 인터페이스를 통해 저장장치와 CPU 사이의 연결을 해 줘야 한다. 컴퓨터 조립을 해보았다면 그 과정을 겪어 봤을 것이다. 다만 개인용 컴퓨터에서 접속하는 방식과 기업용 컴퓨터에서 디스크를 접속하는 방식이 다르다는 것을 이해해야 한다.
우리가 사용하는 노트북 또는 PC는 최근에는 모두 SATA 아니면 NVMe 방식을 사용한다. 이는 ATA Command Set/NVMe Command Set을 통해 디스크에게 명령어를 내릴 수 있으며 기업용 보다는 명령어 구조가 단순하며 안정성이 떨어진다. (NVMe Command Set은 SCSI 기반으로 제작되었으므로 제외)
낮은 속도의 처리 능력을 보완하기 위해 고속 직렬 방식으로 개인용이나 기업용 모두 케이블이 바뀌었고 기업용은 SCSI Command Set을 사용하여 더 많은 기능과 안정성을 가지고 디스크를 제어한다. 물론 디스크가 해당 커맨드를 이해할 수 있어야 하므로 기업용 SCSI 기반의 SAS 디스크는 개인용 PC 연결해도 작동되지 않는다. 디스크 안에 칩이 다른 게 달려있다고 생각하면 된다.
이렇게 컴퓨터에 디스크를 바로 인식해서 사용할 수 있는 구성 환경을 우리는 Direct Attached Storage라고 부른다. 하드디스크, USB, 외장하드 등 바로 시스템에 직결되어 사용되는 장치가 바로 DAS인 것이다. 연결되는 인터페이스는 USB 포트일 수도 있고 메인보드의 SATA 혹은 NVMe, Thunderbolt 뭐가 되든 상관이 없다. 그냥 저장장치를 바로 연결하면 DAS인 거다. 그런 컴퓨터 OS에서는 해당 장치를 포맷해서 나만의 디스크로 사용할 수 있게 되는 환경이 된다.
DAS는 사용에 있어 일부 한계가 있다. 바로 스토리지 자원을 다른 OS가 탑재된 시스템에서 사용이 불가능하다는 것이다. 또 이미 DAS를 사용하고 있으면서 다른 DAS를 추가로 확장해서 쓰기가 불편하다.
그래서 엔지니어들은 다수의 스토리지를 다수의 컴퓨터 OS가 용량을 사용할 수 있도록 Storage Area Network(SAN)을 개발하였다. 스토리지와 컴퓨터 간 스위치를 통해 통신을 분배할 수 있도록 처리하고 그곳에 DAS로 사용하던 장비들을 여러 개 붙여 각 스토리지의 공간을 나눠서 할당받을 수 있게 만든 것이다. 이때 저장장치와 컴퓨터 사이의 원격 간 FC 프로토콜로 처리하며 보통 고속의 성능을 위해 광케이블로 연결한다. 서버는 반드시 HBA(Host Bus Adapter)라는 카드를 장착하여 외부 저장장치를 인식할 수 있는 카드가 필요하다. 마치 랜카드와 같이 스토리지 전용 네트워크 카드인 것이다. FC/SCSI 프로토콜의 특징은 DISK통신을 위한 전용 체제로 Lossless 방식의 전송과 Block 단위의 데이터 액세스 명령체계, 오류 정정 디스크 컨트롤, 하드웨어에서 처리 가능한 계층 및 IO 스케쥴링등의 큰 장점들이 있다.
SAN을 사용하다는 것은 이점들 즉, 스토리지의 자원인 처리 속도와 용량의 공유 이다. 이 두 개를 골고루 분산해서 줄 수 있다는 것이다. (데이터를 공유해주는 것이 아니라 공간을 파티션 형태로 나눠서 각자 사용할 독립적인 공간을 제공)
스위치를 통해서 각각의 컴퓨터와 스토리지는 언제든지 추가나 제거가 가능하고 증설 업그레이드가 용이해지는 것이다.
자원이 공유되므로 매우 유연한 인프라 환경이 구축되며 기업용 인프라 중 SAN 환경은 대부분 위와 같이 표준화되어있다고 보면 된다. SAN은 DAS 기반의 구조를 가지고 있어서 저장장치의 데이터를 Block 단위로 불러오며 전용의 SCSI 커맨드로 처리하게 되어있다. 때문에 자신의 데이터를 다른 컴퓨터가 액세스 할 수 없고 모든 컴퓨터는 할당받은 공간을 파일 시스템으로 포맷해서 사용해야만 한다. 하지만 DAS가 가지고 있는 프로토콜의 안정성과 전용 스토리지로 써의 고성능의 디스크 환경을 그대로 제공한다.
요구에 따라 성능과 자원의 분배가 목적이 아닌 데이터의 공유가 목적인 스토리지도 존재한다. 그것이 바로 Network Attached Storage이다. 이미 시중에 개인 NAS도 팔고 있고 간접적이라도 회사에서 경험하고 있는 사람들도 있을 것이다. NAS에는 Network 단어가 먼저 들어가듯이 SAN 기반의 FC/SCSI관련 환경이 아니라 LAN 카드와 Network 스위치 기반으로 작동하며 SAN에서 사용하던 디스크 통신용 FC Protocol이 아닌 네트워크용 범용 프로토콜인 TCP/IP형태로 처리된다. 기존에 IP로 통신하는 장비가 있다면 누구든 바로 사용할 수 있으므로 추가 비용 투자가 적다.
컴퓨터와 스토리지가 자신의 고유 IP를 받은 상태에서 권한만 부여해 그 권한에 합당한 파일을 스토리지가 제공해 준다. 장비 간 통신은 TCP/IP, 스토리지와 OS 사이에서 데이터를 요청할 때 Windows는 SMB(CIFS), Linux의 경우 NFS 방식의 커맨드 셋으로 데이터를 파일 단위로 액세스한다.
네트워크는 태생 자체가 범용, Loss Packet, Broadcast, 7단계의 계층 방식으로 전송하기 때문에 물리적 회선 자체가 속도가 빨라도 Overhead가 상당히 존재하여 성능이 SAN에 비해 떨어진다. 특히 사용자 CPU 부하를 많이 발생시키며 또한 네트워크의 보안 취약을 그대로 이어받기 때문에 랜섬웨어로 데이터를 통째로 날리게 되거나 침입자가 발생하기도 한다. 이 부분은 설계하면서 적절히 대안을 고려해야 할 사항이 될 것이다.
이와 같이 IT 인프라에서 디스크를 활용하는 구성 방안 대표적인 세 가지 방식이 존재하므로 용어 정리에 도움이 될 수 있도록 작성하였다. 요즘엔 Object 스토리지도 새로 개발되어 Cloud에서 사용하는 Bucket ID를 통해 Object 단위로 액세스 하는 방안도 존재하지만 이 페이지는 일단 물리 인프라 환경에 대해 기초를 다듬을 수 있는 글로 목표를 두고 작성하였다. 해당 내용이 공부하는데 도움되기를 빈다.
● 결론
1. SAN - DAS를 확장하여 사용할 수 있는 환경. 디스크 전용 통신 프로토콜로
속도가 빠르고 안정적이지만 디스크 통신용 전용 장비를
따로 구비해야 해서 비용이 든다. OS 영역이나 주요 업무에 투입.
2. NAS - 파일을 공유하므로 다 같이 작업이 필요한 환경에서 기존 네트워크 인프라를
활용하여 많이 구축된다. 다만 네트워크의 단점을 그대로 가져가므로 성능이 떨어진다.
3. SAN, NAS는 경쟁 상대가 아니다 요구사항에 따른 알맞은 구성을 하면 된다.
'IT > Storage' 카테고리의 다른 글
[Storage] 오브젝트(Object) 스토리지? (0) | 2023.04.14 |
---|---|
스케일 아웃 스토리지 (Scale-Out Data Storage) (2) | 2022.09.23 |
AI 워크로드를 위한 NAS (0) | 2022.09.02 |
빅 데이터와 AI (0) | 2022.09.02 |
[Storage] RAID (Redundant Array of Independent Disks) (1) | 2021.04.01 |