10-4.[os] RAID

RAID의 개요

  • 개인 데이터의 크기가 급격히 증가(디카, 폰카)
  • 데이터를 저장장치에 보관할 때는 자주 백업을 해야 함

RAID

  • Redundant Array of Independent Disks (레이드)
  • 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템
  • 메모리가 아닌 값싼 디스크를 이용함
  • 동일한 규격의 디스크를 여러개 모아 구성함
  • 장애 발생 시 복구용으로 사용

  • 하나의 원본 디스크와 같은 크기의 백업 디스크에 같은 내용을 동시에 저장 하고, 하나의 디스크가 고장 났을 때 다른 디스크를 사용하여 데이터를 복구

  • 미러링(mirroring): 디스크에 거울처럼 똑같은 내용을 저장한다
  • 여러 디스크에 데이터를 동시에 저장하여 데이터의 입출력 속도를 높이는 방식
  • 예) A, B, C, D 4개의 데이터 저장
    • 디스크 1개일 때: 작업 4번
    • 디스크 4개일 때: 각가의 디스크에 1개씩 4개의 데이터 동시 저장
  • 스트라이핑(striping): 데이터를 여러 조각으로 나누어 보냄

RAID 0

  • 순수한 스트라이핑
  • 데이터 전송속도가 빠름
  • 장애 발생 시 데이터 복구 기능 없음

RAID 10

  • 미러링 + 스트라이핑 동시 지원
  • RAID 1+0

RAID 1

  • 같은 데이터 2군데에 저장
  • 저장하려는 데이터만큼의 디스크 용량 추가

RAID 2, 3, 4, 5

  • 더 적은 용량으로도 데이터 복구 가능
  • 하드 가격이 싸지면서 잘 안 쓰게됨

RAID 0 (스트라이핑)

  • 병렬로 연결된 여러 개의 디스크에 데이터를 동시에 입출력 할 수 있도록 구성
  • 스트라이핑: 데이터를 여러갈래로 찢어 저장
  • 여러 개의 데이터를 여러 디스크에 동시에 저장하거나 가져옴

image.png

  • 이론적으로는 디스크 1개 일반 시스템보다 4배 빠름
  • 장애 발생시 복구 기능 없음
  • 입출력이 빨라 기업용 제품, 개인용 컴, 노트북 고급기종에 많이 씀

RAID 1 (미러링)

  • 하나의 데이터를 2개의 디스크에 나누어 저장
  • 장애 시 백업 디스크로 활용

image.png

  • 같은 크기의 디스크 최소 2개 이상 필요함
  • 짝수 개의 디스크로 구성됨
  • 장애 발생 시 데이터 복구 가능
  • 비용 증가
  • 같은 내용 2번 저장해서 속도 느려짐
  • 데이터 입출력이 없는 시점에 백업이 이루어지도록 조정하는 게 좋음

RAID 2

  • 디스크에 대해 오류 교정 코드(ECC)를 추가
  • 오류가 발생하면 코드를 이용하여 디스크 복구
  • 검출, 교정, 복구

image.png

오류 검출 코드:

  • 오류가 발생했는지 확인할 수 있는 코드
  • 예) 패리티 비트

오류 교정 코드:

  • 오류가 발생했는지 확인하는 동시에 오류를 교정할수 있는코드
  • 예) 허밍 코드
  • 일반적인 하드디스크: 오류 검출코드가 없음

  • 메모리: 패리티(오류 검출 코드), 교정은 불가

  • RAID 2: 허밍코드(오류 교정 코드), 검출 + 교정

  • 하드디스크 저장단위: 블록
  • RAID 2의 저장단위: 비트
  • 비트를 분리해서 여러개의 디스크에 나누어 저장

  • n개의 디스크에 대해 오류 교정 코드를 저장하기 위한 n-1 개의 추가 디스크 필요

  • RAID 1보다는 작은 저장공간을 요구하지만 오류 교정 코드를 계산하는 데 많은 시간을 소비
  • 비트 단위로 데이터를 나누어 저장

RAID 3

  • 오류 검출 코드인 패리티 비트를 사용하여 데이터를 복구
  • 교정 x

image.png

  • 짝수 패리티 비트는 1 의 총수를 짝수로 만듦
  • 홀수 패리티 비트는 1 의 총수를 홀수로 만듦
  • 디스크 4개 있고 별도의 디스크 하나에 짝수 패리티 비트 보관
  • 세번째 디스크에 장애가 생겨서 복구해야함
  • 디스크 1의 개수(2개) + 짝수 패리티 비트(1) = 3 -> 짝수로 맞추기 위해 3번째 디스크는 1일 것
  • 총합이 짝수이면 짝수 패리티 비트 -> 0
  • 총합이 홀수이면 짝수 패리티 비트로 1을 더해줘야하기 때문에 -> 1

  • 데이터를 읽거나 쓸 때 패리티 비트를 구성하기 위해 모든 디스크가 동시에 동작해야 함

image.png

  • 데이터를 여러 개의 디스크에 나누어 저장
  • 섹터 단위로 데이터를 나누어 저장
  • 디스크는 섹터 단위로 읽기 때문에 어떤 섹터에 오류가 있는지 없는지를 알 수 있 다

‘N-way 패리티 비트 방식'

  • 오류검출에 사용하는 패리티 비트를 여러 섹터끼리 묶어서 구성
  • 오류가 없는 섹터를 이용하여 오류가 있는 섹터의 데이터 복원
  • 데이터 디스크가 아닌 별도의 디스크에 보-관함으로써 장애 발생 시 오류를 복구
  • 추가되는 디스크의 양은 4개의 디스크당 1개 정도
  • 추가되는 디스크의 양은 적지만 N-way 패리티 비트를 구성하는 데 필요한 계산량이 많다

RAID 4

  • RAID 3과 같은 방식이지만 처리하는 데이터가 블록단위

image.png

  • 데이터를 하나의 디스크에 블록 단위로 저장
  • 패리티 비트를 블록과 연결하여 구성
  • 데이터가 저장되는 디스크와 패리티 비트가 저장되는 디스크(진한 초 록색)만 동작한다
  • 패리티 비트를 추가하기 위한 계산량이 많다
  • 4개의 디스크당 1개의 추가 디스크만 있으면 됨
  • 데이터 병목 현상있어서 안 씀
  • 모든 패리티 비트가 하나의 디스크에 저장되기 때문에 입출력이 일어날 때마다 패리티 비트 디스크 에 데이터가 저장되어 병목 현상이 발생
  • 패리티 비트가 저장된 디스크와 다른 디스크에서 동시에 장애가 발생할 경우 복구가 안 됨

RAID 5

  • RAID4에서 병목 현상 해결
  • 패리티 비트가 있는 디스크가 고장 나면 복구가 어렵다는 문제도 해결
  • 패리티 비트를 여러 디스크에 분산
  • 패리티 비트를 해당 데이터가 없는 디스크에 보관

image.png

  • 예) 데이터 A 의 패리티 비트를 데이터 A가 없는 5번 디스크에 보관
  • 한 디스크에 장애가 발생하면 다른 디스크에 있는 패리티 비트를 이용하여 데이터를 복구
  • 한 디스크에 장애가 발생했을 때는 복구가 가능하지만 디스크 2개에 동시에 장애가 발생했을 때는 복구가 불가능
  • 디스크 2개에 동시에 장애가 발생하면 패리티 비트가 사라지기 때문

RAID 6

  • RAID 5와 같은 방식이지만 패리티 비트가 2개
  • 디스크 2개의 장애를복구할수 있다
  • 계산량이 더 많다
  • 4개의 디스크당 2개의 추가 디스크가 필요하다

image.png


RAID 10

  • 하드디스크의 가격이 내려감 -> 추가되는 디스크의 수보다 빠른 입출력과 복구에 중점을 둠

  • 빠른 입출력이 장점인 RAID 0 (스트라이프) + 복구 기능을 가진 RAID 1 (미러링) = RAID 10

  • RAID 10 = RAID 1+0

image.png

  • RAID 0+1: RAID 0 (스트라이프) 먼저하고 RAID 1 (미러링)을 함
  • RAID 10: RAID 1 (미러링) 먼저하고 RAID 0 (스트라이프)를 함
  • 디스크를 RAID 0으로 먼저 묶으면 RAID 0+1 이 되고 RAID 1로 먼저 묶으면 RAID 10이 됨
  • 복구의 효율성 문제로 RAID 10을 더 많이 씀

공통

  • 병렬로 데이터를 처리하여 입출력 속도를 높일 수 있음(스트라이프)
  • 장애 발생 시 미러링된 디스크로 복구가 가능

차이점

  • RAID 0+1: 장애가 발생 시 복구하기 위해 모든 디스크를 중단
  • RAID 10: 일부 디스크만 중단하여 복구

-예) 데이터 A복구

  • RAID 0+1
  • 데이터 A 가 RAID 1로 묶인 반대편 RAID 0 구역에 있음
  • RAID 0은 복구의 기능이 없으므로 RAID 1의 입장에서는 RAID 0으로 묶인 디스크들이 하나의 디스크로 인식됨

  • RAID 10

  • 2개의 디스크가 RAID 1로 묶여 있기 때문에 반대편에 있는 디스크를 멈추지 않아도 복구가 가능

  • RAID 10이 더 많이 사용되는데, RAID 10을 사용하려면 최소 4개의 디스크가 필요


RAID 50과 RAID 60

  • 같은 RAID를 0으로 묶어 성능을 높이는 방식

  • 5 패리티비트 1개

  • 6 패리티비트 2개
  • 0 스트라이프

  • 5랑 6은 추가되는 디스크의 수가 적지만 입출력 시 계산량이 증가

Did you find this article valuable?

Support Christy Choi by becoming a sponsor. Any amount is appreciated!