brunch

You can make anything
by writing

C.S.Lewis

by Sunny the New Jun 29. 2023

스토리지란 무엇인가요?

[연재] 스토리지 A to Z

안녕하세요.

이번에는 제가 예전에 연재 기획으로 썼던 스토리지에 대한 내용을 조금 각색하여 하나씩 올려 보려고 합니다.



서론

스토리지 엔지니어라는 직업을 경험하면 보통 스토리지만 알고 있을 거라고 생각하시겠지만,

스토리지는 단독으로 쓰이는 경우가 없이 어딘가에 연결되는 제품이다 보니 서버부터 네트워크, 운영체제, 솔루션, 심지어 클라우드까지 다양한 경험을 직접적으로 하기 마련입니다. 언제나 스토리지 외적인 미션이 존재하고, 그걸 해결해 내는 것이 매력이랄까요.


그래서 보통 특정 브랜드 (하드웨어나 소프트웨어)에 특화되어 있는 엔지니어분들과는 조금 다르게 얇고 넓게 지식을 쌓아 가는 편입니다.

장점이라면, 새로운 하드웨어나 소프트웨어를 접하더라도 습득 난이도가 높지 않습니다. 단어만 생소할 뿐이지, 사용 방식은 제가 가르쳤던 기초 교육을 잘 이해했다면 추론할 수 있는 경우가 많습니다.


그래서 결국 신입 엔지니어를 교육할 때는 스토리지뿐만 아니라 IT 인프라의 전반적인 교육을 하게 됩니다. 실무대학 같은 느낌으로..


여하튼, 지금은 서비스를 만드는 프로덕트 오너의 길을 걷고 있지만 제가 몸담았던 업무의 기초지식을 다른 사람과 공유하는 것이 꽤 재밌는 일이었던 지라, 이 글을 보시는 분들도 가볍게 이해하고 업무에 조금은 도움이 되는 시간이 되었으면 합니다.


 



나스가 뭐예요?


수년 전에 어느 제조기업에 NAS를 납품하러 방문하였을 때, 한참 설치를 하다가 담당자분께 이런 질문을 받은 적이 있습니다.

“근데, 나스가 뭐예요? 서버랑 다른 거예요?”

제품이 필요하여 도입하시기는 하였지만, 이 장비가 어떤 용도의 제품인지를 모르시기에 저에게 물어보신 거였지요. 전산담당자이셨기 때문에 (다들 아시다시피, 전산담당자라는 직책은 전문성을 띤 직업이라 이런 질문을 쉽게 던지시기 어렵습니다.) 그런 질문이 쉽지는 않으셨을 텐데, 다행히 저도 그때 물어봐 주신 덕분에 이후 많은 교육에서 이런 부분들에 대해 최대한 쉽게 알려드리려고 노력하고 있습니다. 또한 그때에 NAS와 DAS, SAN 같은 장비들에 설명해 드리면서, 기업 담당자분들에게 좀 더 쉽고 유익하게 알려줄 수 있는 채널이 있었으면 좋겠다는 생각을 했었습니다.


물론, 지금은 예전과는 달리 많은 분들이 스토리지에 대해 저보다 더 많은 지식을 보유하고 있으시다는 사실을 알고는 있지만, 이번 기획에는 전산 인프라가 없으시거나 스토리지에 대해 궁금하신 분들을 중심으로 쉽게 설명을 해보고자 합니다.



스토리지의 사전적 의미와 종류


1. 스토리지의 사전적 의미

그렇다면, 스토리지란 과연 무엇일까요? 저 같은 경우는, 정의가 필요할 때 먼저 구글에서 위키피디아를 먼저 검색합니다. 위키피디아에서 정의한 내용을 먼저 보면,


『기억 장치(記憶裝置)는 컴퓨터에서 자료를 일시적으로, 또는 영구히 보존하는 장치를 말한다. 비슷한 말로 저장 장치라고도 하는데 이때는 대체로 비휘발성의 기억 장치를 의미한다. 컴퓨터의 기억 장치는 주기억 장치와 보조 기억장치로 나눌 수 있다. 메모리(memory)는 종종 '기억 장치'라는 용어와 혼용되기도 하지만, 대체로는 주기억장치를 말하며 특히 램을 가리키는 경우가 많다.』


컴퓨터 학원을 다니고 있거나, 현재 공부 중이신 분들을 제외하고는 바로 이해가 가지 않을 수 있지만, "비휘발성의 기억 장치"라는 단어가 저장장치(스토리지)의 핵심 용어입니다. 비휘발성. 즉, 데이터 또는 파일들을 “스토리지”라 불리는 장치에 기록되면, 특정한 오류를 범하지 않는 이상 지워지지 않는다는 의미입니다.


P.S 스토리지가 비휘발성 기억장치라고 하면, RAM은 “휘발성” 기억장치입니다. 즉, RAM은 CPU가 연산할 정보들이나 이동을 해야 할 데이터들의 정보들을 임시로 저장하고 있지만, 할 일이 끝나면 비우거나(flushing), 재부팅하면 깨끗하게 비워지기도 하죠.



2. 스토리지의 종류

스토리지에는 정말 여러 가지의 종류가 있습니다. 사전적으로는 조그마한 메모리 스틱 (흔히 USB메모리라고 하죠)이나 CD, 디스켓부터 FC SAN Storage까지, 몇 백 원짜리부터 몇 억 원을 호가하는 장비들까지. 한마디로 우리가 파일 하나라도 저장할 수 있는 제품이라면 모두 스토리지라고 합니다.


그럼, 이런 모든 종류들 중에 기업이 보통 “스토리지”라고 지칭할 때는 어떤 것들을 떠올려야 할까요? 상사 분들이 여러분에게 “괜찮은 스토리지 좀 알아봐.”라고 한다면 어떤 것을 찾아야 할까요? 회사에서 사용하는 “스토리지”란 단어는 보통 다음 두 가지 종류의 스토리지를 뜻합니다.


블록 스토리지 (Block Level Storage)
통상적으로 업계에서 “FC 스토리지” 또는 “샌(SAN) 스토리지”라고 부르기도 합니다. 이는, 블록 스토리지가 연결되는 방식이 FC (파이버 채널 / Fibre Channel) 환경 이기 때문에 통상적으로 FC SAN 스토리지로 많이 불리게 되었습니다. 하지만, 최근 들어 LAN 환경으로 통신하는 아이피 샌 (IP SAN) 방식도 많이 쓰이기 때문에, 최근에는 “블록 스토리지”라고 하면, “FC SAN 스토리지” 와 “IP SAN 스토리지” 이 두 스토리지를 지칭합니다.
 
블록 스토리지의 특징을 한 문장으로 표현하자면, “빠른 속도와 안전성을 위해 설계된 종속성을 가진 스토리지” 입니다. 데이터 입출력에 있어서 FC 방식이나 IP SAN 방식은 파일 스토리지 방식보다 좀 더 직접적인 연결이기 때문에 그 어떤 스토리지보다 빠르고 안정성이 있죠.

또한, “서버”라는 숙주(?)가 연결되어 있어야 데이터를 읽고 쓸 수 있는 “종속성” 스토리지입니다. 숙주가 없이는 데이터를 보관만 하고 있지 읽고 쓸 수가 없습니다. 그래서, 블록 스토리지의 데이터를 관리하는 주체(주인)는 연결된 “서버”가 됩니다.


파일 스토리지 (File Level Storage)

파일 스토리지는 보통 “나스(NAS) 스토리지”라고 많이 불립니다. 이는, 스토리지 내에서 직접 파일을 읽고 쓸 수 있고, 그 파일들을 다른 곳으로 공유해 주기까지 합니다. 자체적으로 기능이 많죠. 다른 컴퓨터(PC)들과 소통하는 방법은 보통 LAN 방식, 즉 우리가 흔히 “통신망”이라고 불리는 네트워크 규약을 통해서 통신을 합니다.


 파일 스토리지의 특징을 한 문장으로 표현하자면, “스토리지에 저장된 데이터를 여러 클라이언트들에게 동시에 공유할 수 있는 독립적 다기능 스토리지” 입니다. 위의 블록 레벨과 차이점을 보이는 한 가지가 있는데, “독립적”이라는 문구입니다. 왜 독립적일까요?



스토리지 종류에 따른 차이점


1. 사용자 관점에서 본 블록 스토리지와 파일 스토리지의 차이점

클라이언트 (사용자)의 입장에서 “접근방식”을 통해 다른 점을 확인해 보겠습니다.

먼저, 블록 스토리지가 자신의 컴퓨터에 연결되었을 때, 사용자는 아래와 같이 접근하여 데이터를 읽고 쓸 수 있습니다.                                    

[그림 1] 윈도우에서 블록 스토리지를 연결하여 사용하는 방법


컴퓨터를 직접 조립해 보시거나 운영체제를 설치해 보신 분들이라면 많이 보셨을 거라 생각합니다. 자신의 PC에 하드 하나 추가로 달면, 위와 같이 “디스크 관리”에서 포맷 후 “탐색기”에서 D드라이브나 E드라이브 등 추가된 드라이브 명으로 접근하여 데이터를 저장하고 읽고 쓸 수 있게 됩니다.


블록 스토리지는 직접 PC에 하드를 삽입하지는 않지만, 윈도우에서 제공하는 드라이버나 iSCSI 초기자 (IP SAN용 프로그램)을 통해 위와 같이 실제 디스크를 PC에 넣은 것 “처럼” 사용할 수 있게 됩니다.


그럼, 파일 스토리지 (이하 NAS라고 부르겠습니다.) 의 경우는 어떨까요?

먼저, 윈도우의 “네트워크”를 들어가 보면, 아래와 같이 컴퓨터 모양의 아이콘들이 나열되어 있습니다.

 

[그림 2] 탐색기의 네트워크 항목


특정 컴퓨터를 더블 클릭하여 들어가 보면, 아래와 같이 “공유” 아이콘으로 표시된 폴더들을 볼 수 있습니다.


[그림 3] 공유폴더 목록


원하는 공유 폴더로 들어가면 비로소 파일 읽고 쓰기를 할 수가 있습니다. 이것이 PC와 같은 클라이언트에서 NAS에 접근하는 일반적인 방식입니다.


이와 같이, 블록 스토리지는 디스크를 PC에 직접 연결한 것처럼 데이터를 저장하지만, NAS의 경우는 윈도우가 “다른 컴퓨터”에 접근하는 방식과 같이 접근해서 읽고 써야 합니다.



2. 블록 스토리지와 파일 스토리지의 구조적인 차이점

윈도우의 “저장소 추가”처럼 직접적인 방식으로 연결되는 “블록 스토리지”와, “네트워크 컴퓨터”와 같이 연결되는 NAS는 구조적인 차이도 있습니다.


보통 블록 스토리지의 경우는 “컨트롤러”라고 불리는 스토리지 전용 입출력 장치가 장비의 핵심을 담당하고 있습니다. 데이터를 입출력하는 시스템 외에는 추가적인 기능이 없고, 대신 입출력을 하기 위한 프로세스는 단순하기 때문에 그만큼 비교적 안정성과 빠른 속도를 지속적으로 유지할 수 있지요.


반면 NAS의 경우는 메인보드, CPU, 램, HDD나 SSD 연결 포트 등의 하드웨어로 구성되어 있습니다. 즉, PC와 동일한 구조를 가지고 있습니다. 여기에 덧붙여서 메인보드 위에 커스터마이징 되어 추가된 DOM 에는 임베디드 OS (커스터마이징 된 운영체제)까지 포함되어 있습니다. 즉, 데이터를 입출력하려면 블록 스토리지와는 다르게 NAS의 파일 시스템 <-> NAS의 스토리지 POOL <-> 네트워크 <-> 서버의 파일 시스템의 경로를 거치게 됩니다. 블록 스토리지보다 복잡한 전달체계를 가지고 있기 때문에, 속도는 블록 스토리지보다 상대적으로 성능이 낮습니다.


참고: 최근에는 RDMA(Remote direct memory access) 와 같이 전송 기술이 발전하면서 네트워크 간 전송 시 CPU를 거치지 않고 통신하는 방식도 지원합니다.



NAS의 장점


이렇게만 보면, 블록 스토리지가 NAS보다 훨씬 좋다라고 느끼시겠지요. 그럼 NAS의 장점은 무엇일까요?


NAS를 사용하는 이유 중의 가장 큰 키워드는 “공유” 입니다. 위에서 제가 블록 스토리지는 데이터 관리 주체가 “서버”라고 말했었죠? NAS는 독립적이라 관리 주체가 NAS “자신” 입니다. 즉, 데이터를 보내는 것도 저장하는 것도 NAS 자신이 수행하는 것이고, 블록 스토리지의 경우는 데이터를 보내고 저장하는 것을 “서버”가 수행합니다.

만약, 같은 네트워크 내에 있는 다른 컴퓨터에 특정 파일을 공유하려면 어떤 절차를 거쳐야 할까요? 스토리지 회사들이 자주 쓰는 다이어그램을 통해 확인해 보죠.

[그림 4] 블록 스토리지의 데이터 흐름


블록 스토리지는 종속이라는 특성 때문에, 클라이언트에서 데이터를 읽거나 클라이언트에 있는 데이터를 스토리지에 저장하려면 [그림 4]와 같이 매개체인 “서버”가 있어야 합니다.


이와 같은 특징 때문에 블록 스토리지는 보통 “1:1 연결” 이라는 방식을 통해 스토리지의 한 볼륨당 1대의 클라이언트 (서버나 PC)에만 연결될 수 있습니다. 이로 인해 파일을 공유하려면 스토리지에 연결된 서버를 통해 데이터 입출력이 이루어져야 합니다.



[그림 5] NAS 스토리지의 데이터 흐름


NAS의 경우, 위와 같이 어디에도 종속되지 않고 서버나 PC와 동등한 독립적인 장치로 네트워크에서 파일 입출력을 할 수 있기 때문에, 파일의 공유가 필요한 네트워크 환경에서는 NAS가 블록 스토리지보다 훨씬 유용하게 사용될 수 있습니다. 즉, NAS는 “1:다(多)” 연결을 통해 스토리지의 데이터를 다수의 클라이언트가 동시에 사용할 수 있다는 장점이 있습니다.



스토리지의 최신 기술


스토리지는 서버 제품 대비 각 제조사의 능력을 좀 더 요구하는 편입니다. 하드웨어 또는 소프트웨어가의 기술을 온전히 클라이언트가 써야 하기 때문이죠. 운영체제의 자유도가 있는 x86 서버와는 조금은 다른 면이 있습니다. 이런 스토리지 업계들이 최근 많이 도입하는 대표 기능 두 개를 간단하게 소개해 보자 합니다.


올플래시 (ALL FLASH)

올 플래시는 말 그대로 저장매체가 모두 Flash media로 이루어진 기술입니다. Flash는 전자칩으로 구성된 디스크, SSD(또는 NVMe 등)를 지칭하는 말이기도 합니다. 즉, SSD로만 구성된 스토리지가 바로 올플래시 스토리지입니다.

하지만, 모든 장비에 (심지어 그냥 PC에도) SSD를 꽂을 수가 있으니 그런 장비들은 다 올플래시 인가? 하면, 그건 아닙니다. SSD는 특성상 전자적 오류로 인한 치명적 단점이 존재하기 때문에 (최악의 경우는 복구가 불가능하기도 합니다), 이를 수정해 주거나, 오래 사용할 수 있게 하기 위한 SSD만을 위한 프로그래밍이 별도로 탑재되어 있습니다. 올플래시 기술의 발전으로 인해 성능과 용량이 점점 더 발전해가고 있는 추세입니다.


SDS (Software Defined Storage)

소프트웨어 정의 스토리지, 사전적으로는 “소프트웨어만으로 컨트롤되는 스토리지”라고 할 수 있습니다. 이론적으로는, 이 개념은 굉장히 혁신적입니다. 브랜드에 종속되지 않고 SDS 소프트웨어의 컨트롤을 통해 각 하드웨어들을 통합 스토리지로서 사용할 수 있게 해 줄 수 있는 기술입니다.

하지만 실제로는 그렇게 구성하기가 어렵기 때문에 각 브랜드에서 SDS에 준하는 소프트웨어가 하드웨어와 함께 패키지로 출시되고 있기는 합니다. 가상화 기술이 발전하면서 SDS, SDN, SDDC 등의 기술도 함께 발전하고 있습니다.





지금까지 스토리지에 대해서 간단하게 알아보았습니다. 앞으로는 스토리지의 용도에 따른 선택, 구성, 장애처리까지 살펴볼 예정입니다.


다음 편에서 뵙겠습니다.

작가의 이전글 세계 백업의 날 기념 - 백업과 이중화
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari