• Home
  • About
    • Ara Jo photo

      Ara Jo

      Aspiring Backend Developer :)

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Book/Operating System/보충2 - RAID

29 Aug 2021

Reading time ~1 minute

RAID (Redundant Array of Inexpensive Disk)

RAID1.png
  • 값싼 디스크의 중복 배열법
  • 저렴한 디스크 여러 개를 붙여서 마치 하나의 디스크처럼 보이면서도 신뢰도와 성능을 모두 잡는 기술
  • 신뢰도 : 데이터가 사라질까봐 걱정하지 않아도 됨
  • 성능 : 한 개의 디스크에서 데이터를 읽는 것보다 훨씬 빠르게 처리가능
  • 신뢰도를 높이는 3가지 방법
    1. Mirroring : 중복해서 저장을 한다. 용량이 두 배로 들게 됨
    2. Parity Disk : parity disk 하나만 추가로 두어 복구, 한 디스크가 고장이 나면 나머지 디스크들과 parity disk를 XOR 연산을 통해 복구, 추가적인 메모리가 필요하지만 미러링기법에 비해 작은 용량 사용, 디스크 두 개가 나가면 복구 불가능

      RAID2.png
    3. 에러 코렉팅 코드 ECC : 미러링과 parity disk의 중간 방법, parity disk 보다 디스크를 추가로 더 둬서 해밍코드 방식으로 동작하게 함으로써 디스크 여러 개가 나가도 복구 가능

      비싸고 구현이 복잡하기 때문에 잘 사용하지 않음

RAID3.png
  • 성능을 높이는 2가지 방법
    • Striping 스트라이핑 : 연속된 데이터를 여러 개의 디스크에 라운드로빈 방식으로 기록하는 기술
      1. 비트 스트라이핑 : 하나의 디스크에 저장되어야 할 블록 하나를 여러 개의 디스크에 비트로 쪼개어 나누어 저장하는 방법, 데이터를 동시에 읽기 때문에 속도가 더 빠름
      RAID4.png
    1. 블럭 스트라이핑 : 블럭 단위로 striping하는 방법

      RAID5.png

    ⇒ 디스크는 한 번에 많이 읽는 것이 필요하기 때문에 비트보다는 블럭이 성능향상의 폭이 더 큼

Small Write Problem

  • 작은 양의 write가 계속될 때 parity를 매번 다시 계산해줘야 하므로 오버헤드가 커지는 문제
  • 블럭 스트라이핑 같은 기술에서 한 블럭만 갱신하는 경우 n번의 디스크 접근이 필요하기 때문에 성능 저하 발생

참고

  • https://jhnyang.tistory.com/157


csstudyoperating_systembook Share Tweet +1