본문 바로가기
💻 개발/인프라

IT 인프라 (3)

by 컴쏘 2023. 5. 28.

Storage 기초 익히기

스토리지란 무엇이며 왜 필요할까?

스토리지 : 컴퓨터에서 데이터를 비휘발성으로 저장할 수 있는 저장 장치

이전까지는 데이터를 저장하는 하드웨어의 견고함, 성능, 그리고 용량에 집중하였다면, 최근에는 데이터 레이크, 데이터 가상화 기술 등 다양한 데이터 스토리지 기술이 조명받고 있음

최근 인공지능이나 IOT 등 다양한 IT 기술들이 등장 → 데이터의 양이 상당히 많아짐다양한 데이터 스토리지 기술들이 조명 받음

스토리지의 성능과 가용성을 높여주는 RAID 기술

RAID 구성을 도와주는 Array Controller

RAID는 하드웨어적으로도, 소프트웨어적으로도 지원이 가능

  • RAID는 여러 개의 저장장치를 묶어서 마치 하나의 Disk 처럼 사용할 수 있게 도와주는 기술
    • Disk를 여러 개 묶어서 사용함으로써 안정성과 속도, 가용성을 증대시킴
  • 일반적으로 서버급에서는 하드웨어 방식인 Controller를 통해 RAID 구성을 지원

RAID 기술을 지원해주는 것 → Array Controller(RAID Controller, RAID Card)

  • 일반적으로 기업용 서버에는 Array Controller가 내장되어있고 이것을 통해 물리 하드 디스크 드라이브를 관리할 수 있음

고가용성과 고성능을 이뤄주는 RAID

RAID : 저장 장치 여러 개를 묶어 하나의 Disk 처럼 사용하는 기술

  • RAID 기술이 어떻게 신뢰성을 높여주고 성능을 향상시켜주는가?

  • RAID 0 : Striping 기술을 이용하여 data segment들을 여러 disk device로 분산 기록하는 기술을 이용하여 저장하는 방법
    • Data가 저장되는 방식
      • 일반적으로 파일을 서버에 올렸을 때, 우리 입장에서는 하나의 data로만 보이겠지만, 서버 내부적으로는 data를 작은 조각으로 쪼개서 저장하게 됨 → data segment
    • Striping : 논리적으로 연속된 data segment를 여러 disk 드라이브에 분산 저장하는 것을 의미 → data를 여러 disk에 조각내서 분산 저장시키는 방법
      • disk fault가 일어나면? → 조각들 중 하나만 fault가 일어나도 전체가 fault가 일어남 → 실무에서는 잘 사용이 안됨
    • 용량 : 300GB 2개를 묶을 경우는 600GB가 됨
  • RAID 1 : 같은 data segment를 복수의 디스크에 실시간으로 복제시키는 미러링(Mirroring) 기술을 이용하여, 각 멤버 디스크에 같은 데이터를 중복으로 저장하는 방법
    • 하나의 조각에만 fault가 일어나도 다른 곳에 보관되어있기 때문에 괜찮음 → 가용성이 높음
    • 용량 : RAID 0에 비해서 용량이 절반으로 줄어든다. → 데이터를 복제해서 저장할 공간데이터의 크기만큼 필요하기 때문

  • RAID 5 : 패리티(Parity) 라는 데이터 복구를 위한 기술을 이용하여, 원본 데이터에 추가 데이터를 만들고 이를 Striping 방식으로 저장하는 방식
    • Data 별로 Parity를 1개씩 생성하여 disk 1개가 망가져도 복구가 가능하도록 구성하는 방식으로, RAID 0보다는 가용성을 보장하고, RAID 1보다는 가용성을 늘려서 사용할 수 있는 방식
    • 용량 : 1개의 Disk의 용량 만큼만 Parity 저장공간으로 주면 된다. ex. 300GB 저장 공간이 4개가 있다면 그 중 1개만 Parity 저장공간이면 됨
    • Parity : 내부적으로 복잡한 연산을 진행 → Disk가 빨리 망가질 확률이 높음실제로 하드 드라이브를 많이 사용할 때는 RAID 5 사용을 지양
  • RAID 6 : data별로 2개의 parity를 구성 (Parity 저장공간이 하나 더 필요함) → 2개의 disk가 망가지더라도 나머지 data 및 parity를 조합하여 data 조각을 복구시킬 수 있는 방식
    • 안정적이다. → disk 2개가 망가지더라도 data 손실로 이어지지 않음
    • RAID 5와 비슷한 가용용량을 갖추기 위해서는 disk가 1개 더 필요함

RAID 기술을 결합하여 사용하면 가용성도 올리고, 가용 용량도 늘릴 수 있음

  • RAID 10 : RAID 1의 고가용성RAID 0의 성능을 결합한 기술 → 매우 뛰어난 데이터 보호 기능 제공
    • 이렇게 서로 각기 다른 RAID로 구성된 Disk에서는 하나가 fault 나더라도 다른 하나에서 보완 가능 → 상당히 안정적인 구조 → 상당히 안정적인 구조

그 외 자주 사용되는 기술과 용어들 - Hot Spare, Rebuilding

  • Hot Spare : 기존에 구성된 RAID에 Disk 하나를 더 부여해서 만약 RAID로 구성된 Disk가 fault 날 경우, Spare Disk가 망가진 Disk를 대체할 수 있도록 도와주는 여분 Disk → 우리가 Disk fault를 늦게 확인해서 망가진 것을 신규 Disk로 빠르게 갈아주지 못한 경우 Hot Spare가 상당히 큰 역할을 해줌
  • Rebuilding
    • 신규 Disk를 인식했다고 RAID가 바로 온전히 복구가 되는가? → NO
      • 신규 Disk를 RAID의 멤버 Disk로 편입을 시키면서 RAID 구성에 맞게끔 새로운 멤버 Disk에 Data를 다시 부어주는 작업이 필요 → 이러한 일련의 작업이 Rebuilding 이다.
    • 확실한 Disk 교체를 확인하기 위해서는 반드시 IPMI 같은 것을 확인해서 rebuilding 상태가 현재 몇 퍼센트인지 확인
      • IPMI (Intelligent Platform Management Interface) : 표준화된 메세지 기반의 HW 관리 Interface

그 외 자주 사용되는 기술과 용어들 - JBOD

  • JBOD : Just a Bunch of Disks(Drive)의 약어
    • 단순히 물리적인 Disk 여러개를 모아서 하나의 큰 하드 디스크처럼 보이도록 하는 기술
    • RAID 처럼 data를 분산 저장하지 않으며, 디스크 순서대로 data를 차곡차곡 저장
      • 확장성이 좋은 방식

어떤 구성 ?

데이터를 저장하는 다양한 방식

전통적인 스토리지 DAS, NAS, SAN

기존 인프라 환경에서 많이 사용되던 Storage로는 DAS, NAS, SAN Storage 등이 있음

  • 해당 Storage들은 성능적 우위를 따지기 보다는, 사용 목적 및 환경에 따라 선택하여 사용
    • DAS : 서버의 저장 공간이 부족했을 때, 가장 먼저 고려해볼 수 있는 Storage
      • 저장 장치가 직접 서버에 1:1로 연결되어서 사용되는 방식
      • 전용 cable로 연결되다보니 성능도 나쁘지 않고 장착하는데 그리 어렵지 않음
        • 문제는 direct로 연결하는 방식은 Storage를 Scale out 하는데 한계가 있음
        • 해당 Storage에는 직접 연결된 이 서버만 접근할 수 있다는 점에서 여러 서버들이 공통된 Storage를 바라보아야 할 때는 사용하기 어려움
    • NAS : 서버와 Storage가 LAN 네트워크를 통해 연결된 방식, DAS 대비 Storage 확장도 더욱 유연하게 할 수 있음
      • 다수의 서버들이 하나의 공통된 Storage를 바라보는 경우 사용하기 적합
    • SAN : Fibre channel 기반 스위치를 통해 서버와 Storage를 고속으로 통신할 수 있게 도와주는 Storage
      • 여러 Storage를 하나로 묶어서 관리하기 때문에 대규모 확장 등 여러 가지 면에서 장점을 가지게 됨
        • 다만, 장점이 많은 만큼 큰 단점도 있음 → 비용 문제
        • 매우 고가의 Storage임

데이터를 저장하는 다양한 방식

파일 storage

file Storage : 중첩된 계층 구조를 갖는 Storage format

가장 흔히 볼 수 있는 형태로, 데이터는 특정 디렉토리 안에 단일 정보로 저장

  • 파일 스토리지는 우리가 일상에서 흔히 볼 수 있는 스토리지 포맷으로, 로컬 PC 및 하드 드라이브, 공유 드라이브도 이에 해당
  • 데이터는 특정 디렉토리에 단일 정보로 저장
  • 일반적으로 DAS와 NAS에서 사용되는 저장 방식
  • 이해하기 쉽고 편리한 인터페이스를 제공
  • 파일의 경로가 길어질 수록 유연성과 효율성이 떨어짐

블록 storage

block Storage : 하나의 데이터를 고유의 식별자를 가진 블록 형식으로 쪼개서 저장

파일 스토리지 대비 가상머신이나 Application이 데이터에 효율적으로 접근할 수 있음

  • 블록 스토리지는 데이터를 여러개의 별도의 조각으로 쪼개어 분리시켜 저장하는 방식
  • 데이터를 불러올 시에는 스토리지 소프트웨어를 통해 분산된 블록을 다시 조합하여 사용자에게 전달
  • 파일 스토리지와 달리 데이터가 단일 경로에 종속되지 않음
  • 일반적으로 SAN에서 사용되는 저장 방식
  • 신속한 검색이 가능하고, 각 데이터는 독립된 블록에 저장되며 파티션으로 분리될 수 있기 때문에, 다양한 OS에서의 접근이 가능
  • 비용, 그리고 메타데이터 관리 기능에서 아쉬운 면이 존재
    • 메타데이터 : 데이터의 데이터로 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터

점점 늘어나는 데이터.. 위 스토리지 방식으로 저장해도 괜찮을까?

오브젝트 storage

클라우드 시대가 오면서 가장 많이 듣고 익숙한 Object Storage

우리가 사용하는 많은 디바이스는 매 순간 엄청난 양의 data를 생성 → 이 중 비정형 data의 비중이 매년마다 가파르게 증가 → Object Storage는 비정형 data 저장에 가장 적합한 Storage

  • Object Storage는 클라우드에서 자주 사용되는 저장 방식
    • 데이터를 객체(Object) 단위로 관리하고 조작
  • 객체는 실제 대상 데이터그 데이터의 메타 데이터의 조합을 의미
  • 메타데이터는 데이터를 사용하는데 있어 가장 중요한 역할을 함
  • Object는 Storage pool에 flat한 형태로 저장되기에 다른 계층적 Storage 대비 빠른 data 검색이 가능
  • 기존 Storage와 달리 Storage 전체 용량 제한이 없음
  • Cloud 내에서는 일반적으로 data가 여러 물리적 시설에 걸쳐 data의 replica가 저장되므로 높은 가용성을 보장
  • 위 장점들로 인해 백업 Storage, data 분석, data achiving 등 다양한 용도로 사용되고 있음

Software Defined Storage 란?

클라우드 기술로 넘어오면서 Storage에도 큰 변화 → 기존 DAS, NAS, SAN이 가지고 있던 HW에 대한 SW의 종속성을 제거하고 SDS가 등장

SDS (Software Defined Storage) 는 x86 서버에서 동작하도록 하는 기술

  • SDS가 등장하면서 표준 x86서버라면 어디서든 동작 가능
  • x86서버를 여러대 묶어 Storage를 구성 가능무중단 서비스를 유지하면서 Scale Out을 상당히 쉽고 간편하게 할 수 있게 됨

HCI에서의 storage 기술

HCI (Hyper-Converged Infrastructure) : 기존 Computing, Storage, Networking Hypervisor를 비롯한 Infra Stack을 통합하는 기술

  • 여러 x86 서버에 있는 리소스들을 하나로 통합된 논리 환경으로 묶어 사용할 수 있도록 함
  • HCI 환경에서의 Storage는 SDS 기술을 적용하여, 별도의 외장 Storage 없이도 운영이 가능

HCI 환경에서의 Storage 구성 (vs 3 Tier Architecture)

기존 3 Tier Architecture의 문제점

  • 서버가 늘어나는 만큼 storage controller가 함께 확장되지 못함
    • work load가 많아지면 서버의 대수는 계속해서 늘어남 → Storage Controller는 서버와 함께 확장되지 않음 → Storage 구간에서 병목 발생

반면, HCI에서는 SDS 기술을 활용하여 각 Host 서버에 내장된 개별 Drive들을 논리적으로 하나의 Storage로 묶어서 Storage pool을 만듦 → 기존 Storage인 SAN과 같은 외장 Storage를 만드는 것

  • Storage 뿐만 아니라 전체적인 Infra Scale Out이 상당히 간편해지고 Storage 병목현상을 방지할 수 있음
  • 내장 Storage를 활용하면 기존 대비 비용도 많이 줄일 수 있음
  • 같이 딸려오는 HCI UI를 통해 Storage 환경을 SE가 직접 쉽게 조작할 수 있음
  • 이렇게 저장되는 data는 De-Duplication 기능을 통해 중복 제거도 진행
  • 데이터 중복제거 (De-Duplication)

대용량 데이터를 저장해야하는 상황에서 많이 사용됨 → HCI 환경에서도 중복제거 기능을 활용하여 Storage 저장 공간을 아낄 수 있으며, 백업 시간 단축도 가능

  • 대용량 데이터에서 중복되는 data를 분석해서 수정된 부분만 저장하는 기술

네이버 클라우드 플랫폼 스토리지 상품

서버를 위한 Block Storage

block storage는 서버에 할당하여 사용하는 storage

서버를 처음 생성할 때, OS type을 선택 → 이때 OS를 올리기 위한 기본 Storage 하나가 서버와 함꼐 생성

서버에 storage 1개만 가능? → NO

  • 서버 1대에는 최대 15개의 Storage 부착 가능 → 서버 1대가 갖는 최대 Storage 개수는 16개

Object Storage 와 Archive Storage

어떤 종류의 data도 저장할 수 있는 Object Storage와 Archiving 을 위한 Archive Storage는 각각의 존재만으로도 의미가 있지만, 함께 할 시엔 훨씬 더 효과적이고 비용 효율적인 환상의 짝꿍

자주 사용하는 data : Hot data

자주 사용하지 않는 data : Cold data

용도별로 Storage를 나눠서 이용하는 이유 : 비용적 문제(가장 큰 문제) → 상황에 맞게 끔 데이터를 저장하여 비용을 절감

  • Object Storage
    • Hot data 저장
  • Archive Storage
    • Cold data 저장

우리가 일반적으로 사용하는 data는 처음~5일까지는 Hot data 이후에는 Cold data로 변함

따라서, Life Cycle Management를 통해 Object → Archive Storage로 이동하거나 data를 삭제하는 기능 제공 (네이버 클라우드에서)

NAS

클라우드 환경에서 다수의 서버들이 공통의 Storage를 바라보아야 할 땐?

NAS(네트워크 연결 스토리지)에서 내장 스냅샷 기능을 이용해 data 손실 위험을 벗어날 수 있음

Backup

backup : 운영하는 서비스 data를 가장 안전하게 보관해주는 방법

백업을 하지 않으면 삭제한 data를 복구할 수 있는 방법은 없음


본 글은 "누구나 쉽게 이해하는 IT 인프라 정복하기! #3편"을 공부하고 정리한 글입니다. 
[영상링크] : https://www.youtube.com/watch?v=g9-GWE4wYpI

'💻 개발 > 인프라' 카테고리의 다른 글

ubuntu EC2에 docker 설치하기  (0) 2023.06.03
클라우드 서비스(AWS 서버 구축)  (0) 2023.06.01
모던 서버 기술 관련 배경 지식 이해  (0) 2023.06.01
IT 인프라(2)  (0) 2023.05.27
IT 인프라 (1)  (0) 2023.05.27