1 minute read

RAID

- 프로세서와 디스크의 갭

    프로세의 속도는 빨라지지만 디스크의 속도는 기계적 장치들의 동작이 속도를 높이는데 한계가 있어 못 따라감

- RAID

    디스크를 배열 구조로 연결하고 하나의 유니트로 패키지하여 용량, 신뢰도, 액세스 속도를 향상시킨 대용량 디스크시스템

    블록들을 여러 디스크들로부터 동시에 읽거나 쓸 수 있기 때문에 병렬 전송이 가능해짐

    - 출현 배경

        하나의 큰 디스크보다 작은 디스크를 연결시키는 것이 더 경제적임

        - 디스크 인터리빙

            데이터 블록들을 여러 개의 디스크들에 분산 저장하는 기술

            라운드-로빈 방식으로 저장

            - 문제점

                하나의 디스크만 결함이 발생해도 파일 전체를 사용할 수 없게되어 MTTF(장치에 결함이 발생하는 평균 시간 간격)이 낮음

            - 검사 디스크

                오류 검출 및 복구를 위하여 추가되는 디스크

                복구 과정에 걸리는 평균시간을 MTTR 이라 부름

                프로그램 실행 중 결함 디스크가 여분의 다른 디스크로 대체되는 것은 내부 회로에 의해 자동으로 일어남

    - RAID 의 종류
        - RAID-1

            디스크에 데이터를 저장할 때 다른 디스크에도 같은 내용을 동시에 저장하는 기법인 디스크 미러링 방식 사용

            높은 신뢰도를 가짐

            - 단점

                사용 가능 용량이 절반으로 줄어들기 때문에 가격이 높음

        - RAID-2

            디스크에 데이터를 비트-단위로 인터리빙 시킨 것

            검사 디시크를 추가하고 해밍 코드를 사용하여 비트 오류 검출, 정정이 가능

            검사 디스크에 의한 오버헤드는 전체 디스크들의 수가 증가할수록 감소함

            - 단점

                검사 디스크의 수가 데이터 디스크 수의 log2 값에 비례하므로 가격이 높음

        - RAID-3

            비트-단위 인터리빙을 이용하여 데이터를 분산저장함

            한 개의 패리티 디스크를 추가하여 데이터 디스크들의 동일한 위치에 있는 비트들에 대한 패리티 비트가 패리티 디스크의 동일한 위치에 저장됨

            데이터가 분산 저장되기 때문에 병렬 데이터 전송이 가능하여 액세스 속도 높아짐

            - 단점

                동작 때마다 패리티 비트들을 갱신해야 하므로 쓰기 시간 많이 걸림

                전체 디스크 배열이 액세스 요구를 한 번에 한 개씩만 처리할 수 있음

        - RAID-4

            블록-단위 인터리빙을 이용하여 데이터를 분산저장함

            한 개의 패리티 디스크를 추가하여 다른 디스크들에 저장된 데이터 블록에 대한 패리티 블록 저장함

            블록단위로 저장되어있기 때문에 각 액세스 요구 독립적으로 처리 가능

            새로운 패리티는 원래 데이터 및 새로운 데이터 사이에 XOR 연산으로 구함

            데이터 블록 쓸 때마다 패리티 디스크가 반드시 두 번씩 액세스가 일어나야 되기 때문에 병목현상 발생함

        - RAID-5

            패리티 블록들을 모든 디스크들에 분산 저장함

            병목 현상 완화와 쓰기 동작을 병렬로 수행할 수 있음

        - 무엇이 좋은 성능

            RAID-1과 RAID-5가 입출력 요구의 블록 크기에 관계없이 좋은 성능

            - 문제점

                RAID-1 은 쓰기 동작이 두개의 디스크에 동시에 일어나기 때문에 RAID-5보다 쓰기 성능 절반으로 줄어듦

                작은 쓰기의 경우 매 쓰기 마다 네 번의 액세스가 요구되기 때문에 성능이 현저히 떨어짐