본문 바로가기
컴퓨터공학

보조기억장치(2)

by hckim21c11 2022. 10. 2.

전송 시간은 데이터를 전송하는 데 걸리는 시간이다. 디스크 액세스 시간은 데이터의 저장 패턴에 따라 달라진다. 컴퓨터의 다른 장치와 마찬가지로 자기 디스크를 사용하는 기억장치도 여러 개의 기억장치를 병렬로 연결하여 사용하면 성능을 향상할 수 있다. RAID란 가격이 저렴하고 크기가 작은 여러 개의 하드디스크를 묶어 하나의 기억장치처럼 사용할 수 있게 하는 방식이다. 보통 하드 디스크에서 RAID로 하드 디스크를 구성하면 운영체제에서는 여러 개의 하드 디스크를 하나의 하드 디스크로 인식한다. 따라서 하드 디스크에서 발생하는 근본적 문제를 여러 대의 하드 디스크가 분산 처리함으로써 성능을 향상할 수 있다. 높은 입출력과 전송률을 얻기 위해 다수의 헤드와 구동 장치를 사용하는 데 필요한 장치의 수가 늘어나면 오류가 발생할 확률도 커진다. 이러한 신뢰도 문제를 해결하기 위해 RAID의 여분의 디스크들은 디스크 오류 발생 시 데이터 복구를 위한 패리티 정보를 저장하는 데 사용된다. 데이터들은 배열을 이루고 있는 하드 디스크에 분산 저장된다. RAID 방식은 0레벨에서 6레벨까지 7종류의 레벨로 구성된다. 각 레벨은 계층적인 구조를 갖지 않는다. RAID 레벨 0은 성능 향상을 위해 여분을 포함하지 않는다. 성능과 용량을 더 중요시하고 높은 신뢰성을 요구하기보다 저렴한 가격을 더 중요시하는 시스템에 사용된다는 RAID 레벨 0에서 데이터 블록들을 여러 개의 디스크로 이루어진 디스크 배열에 분산 저장한다. RAID 레벨 0은 디스크에서 데이터 액세스 요구들이 하나의 디스크에 집중되지 않고 분산되며, 검색과 데이터 전송이 병렬로 이루어져 성능이 향상되는 장점이 있지만, 신뢰도가 낮아 많은 결함을 가질 가능성이 있다. RAID 레벨 0이 데이터들을 디스크에 단순히 분산 저장시키는 것이 아니라 데이터를 사용할 수 있는 디스크에 스트립 한다. 이 스트립은 물리적 블록이나 섹터 또는 다른 단위가 될 수 있다. 이 스트립은 모든 디스크에 라운드 로빈 방식으로 분산 저장된다. 컴퓨터 시스템에서 초당 수천 개의 입출력 요구들이 발생한다. 이런 경우 디스크 배열이 입출력 요구를 여러 디스크에 균등하게 분배함으로써 높은 입출력 처리율을 제공할 수 있다. 성능은 스트립의 크기에 의해서도 영향을 받는다. 만약 스트립의 크기가 상대적으로 커서 하나의 입출력 요구가 단 한 번의 디스크 액세스에 의해 처리된다면 대기 중인 여러 개의 입출력 요구들이 병렬로 처리될 수 있고 따라서 각 입출력 요구의 대기 시간은 줄어든다. RAID 레벨 1이 RAID 레벨 2 ~ RAID 레벨 6까지와 다른 점은 여분을 추가하는 방법에 있다. 다른 RAID 레벨에서는 여분을 도입하기 위해 패리티 계산이 사용되는 반면 RAID 레벨 1에서는 단순히 모든 데이터를 복사함으로써 여분을 구현하고 있다. RAID 레벨 0과 같이 스트립이 사용된다. 논리적 디스크의 스트립들은 물리적 디스크에 사상되며 각각의 물리적 디스크들은 동일한 데이터를 갖는 반사 디스크를 가진다. RAID 레벨 1은 두 개의 디스크에 동일한 데이터가 들어있기 때문에 읽기 동작이 요구되면 두 개의 디스크 중에서 탐색 시간과 회전 시간이 빠른 디스크에서 데이터를 액세스할 수 있다. 사기 동작은 두 개의 디스크에 동시에 진행되어야 하지만 병렬로 처리가 가능하다. 따라서 쓰기 동작은 두 개의 디스크 중 탐색 시간과 회전 지연이 더 긴 디스크에 영향을 받는다. RAID 레벨 2 ~ RAID 레벨 6은 사기 동작에서 패리티 비트를 사용한다. 따라서 데이터가 갱신되면 패리티 비트도 다시 계산하여 갱신해야 한다. 또한 RAID 레벨 1은 오류에 대해 강인하기 때문에 신뢰성이 높다. 이것은 두 개의 디스크 중 한쪽에서 오류가 발생하면 다른 디스크에서 읽기가 가능하기 때문이다. RAID 레벨 1의 단점은 동일한 물리적 디스크 공간을 두 배로 사용해야 하므로 시스템을 구성하는 비용이 많이 든다. 따라서 RAID 레벨 1은 시스템 소프트웨어와 데이터 및 중요한 파일을 저장하는 디스크로 사용된다. RAID 레벨 1은 실시간으로 모든 데이터에 대한 복구가 가능하기 때문에 디스크에 오류가 발생하더라도 중요한 데이터는 즉시 사용할 수 있다. 시스템이 읽기 동작만 요구한다면 RAID 레벨 1은 RAID 레벨 0에 비해 2배의 성능 향상을 이룰 수 있다. 하지만 시스템이 쓰기 동작만 요구한다면 RAID 레벨 0에 비해 높은 성능을 얻기 어렵다. 만약 시스템의 요구를 읽기 동작과 쓰기 동작으로 구분할 수 있다면 시스템의 성능을 더 높일 수 있다. RAID 레벨 2와 RAID 레벨 3은 병렬 액세스 기술을 사용한다. 병렬 액세스에서는 입출력 요구가 있을 때 모든 디스크가 입출력 요구에 동시에 참여하게 된다. 각각의 디스크들은 동기화 되어 있기 때문에 모든 헤드는 항상 디스크의 동일한 부분에 위치한다. RAID 레벨 2와 RAID 레벨 3에서도 RAID 레벨 0과 마찬가지로 데이터 스트라이핑 기술이 사용된다. 하지만 RAID 레벨 0과 RAID 레벨 1에 비해 스트립은 매우 작은 단위를 가진다. RAID 레벨 2에서 오류 정정 부호는 각 데이터 디스크에 대응되는 비트에 대해 계산된다. 부호의 비트들은 여러 개의 패리티 디스크들의 대응되는 비트 위치에 저장된다. 일반적으로 해밍코드를 사용하기 때문에 단일 비트 오류에 대해서 검출과 수정이 가능하고 두 비트의 오류에 대해서 검출만 가능하다. RAID 레벨 2는 RAID 레벨 1에 비해 적은 수의 디스크를 사용하기는 하지만 여전히 큰 비용이 들어간다. 추가로 필요한 디스크의 수는 데이터가 저장되는 디스크의 log 값에 비례한다. 읽기 동작이 요구될 때 모든 디스크는 동시에 엑세스된다. 이렇게 해서 얻어진 데이터와 오류 정정 부호가 배열 제어기로 전송되고 단일 비트 에러가 발생하면 제어기는 이것을 즉시 검출하고 수정한다. 오류가 자주 발생하는 환경에서 RAID 레벨 2를 사용하는 것이 효과적이다.

'컴퓨터공학' 카테고리의 다른 글

보조기억장치(4)  (0) 2022.10.02
보조기억장치(3)  (0) 2022.10.02
보조기억장치  (0) 2022.10.02
주기억장치(4)  (0) 2022.10.02
주기억장치(3)  (0) 2022.10.02

댓글