# MTTF = 평균 가동 시간
## RAID (Redundant Array of Independent Disks)
많은 수의 디스크를 병렬화
데이터 중복화 가능 -> 저장의 신뢰성 향상
# 미러링 - RAID중복
- 모든 디스크마다 복사디스크를 마련함
- 논리적인 디스크 1개 = 물리적인 디스크 2개 (삭제포함 쓰기는 두 디스크 모두에서 이뤄짐)
- 만약, 두 디스크의 MTTF가 겹치는 경우는 거의 발생하지 않는다 -> 신뢰성이 굉장히 높음
- 비용이 많이 소요됨
# 분산(Striping)
- 여러 개의 디스크에 데이터를 분산 -> 병렬접근으로 전송속도 향상
- 디스크 배열을 하나의 논리적인 큰 디스크로 간주
1) 비트단위 분산
디스크 수가 8의 배수이므로 병렬처리르 통해 8배의 전송속도를 얻음.
2) 블록단위 분산
- 일반적인 데이터 분산 형태
- 한 파일의 블록들을여러 디스크에 분산
- 읽고 쓰는 양이 적을때는 디스크별로의 접근이 필요하므로 병렬처리 안한다.
- 하지만, 큰 파일을 여러 디스크에 걸쳐 접근하려면 병렬처리가 필요하다.
## RAID 계층
- 미러링은 신뢰성은 높지만 비용이 많이 들고, 분산은 높은 전송률로 제공하지만 신뢰성이 낮다. 따라서 고안된게 RAID계층
- 패리티비트로 구성해 비용을 줄이고, 다양한 구성 발생해 계층으로 나눠짐.
- 0~6까지의 일곱개의 계층이 있다.
- 0,1,5계층을 사용하다가 최근에는 6계층까지도 사용한다.
* RAID 0 | - 블록단위로 분산 -> 성능 상승 - 미러링 없음 -> 신뢰성 하락 === > 분산 + 중복없음 = 가격 하락 |
* RAID 1 | - 블록단위 분산 - 미러링 -> 많은 디스크가 필요함 -> 신뢰성 상승 -> 고가 - 로그파일 저장에 많이 적용 - 패리티 작성이 없으므로 저비용, 효율상승 - 미러링+분산 : 계층1+0 혹은 계층10 - 분산없는 미러링 : 계층1 |
* 로그파일,저널파일 이란, DB에 갱신이 되는 내용들을 기록한 파일.
WAL (write-ahead log) 로그 선행 기입 : 모든 수정이 적용 이전에 로그파일에 기록된다.
# RAID에서의 패리티 비트 사용
디스크 두개를 XOR하면 패리티 비트 생성
패리티 비트가 있으면 디스크 복구 가능
RAID 2 | - 패리티 비트를 과하게 운영한다. - n개의 디스크에는 n-1개의 패리티 디스크가 필요한데, 이럴바에 하나 더 추가해서 미러링을 하는게 이득이다. -> 따라서 거의 사용x |
RAID 3 | - 비트단위 분산 - 패리티 디스크가 하나 있는데, 어느 디스크가 실패했는지 정확하게 알 수 있다. - 2개 이상의 디스크가 동시에 실패하는 경우는 거의 없다 - 그림(d)처럼 한개의 패리티 비트가 있으면 하나씩 망가졌을때 복구 가능 패리티 비트가 두개이면 두 개가 동시에 망가졌을때 두 개 복구 가능 |
RAID 4 | - 블록단위 분산 - 패리티 전용 디스크 운영 - 한 블록만을 기록할 경우 병렬성 운영되지 않음 - 한 개의 블록단위 쓰기들이 발생하면 디스크에 병목현상이 발생 (bottleneck) |
* RAID 5 | - 계층 4의 패리티문제 해결한 계층 - 블록 분산 - 패리티 분산 -> 동일한 디스크에 저장되지 않음 -> 디스크 실패에 따라 데이터와 패리티가 함께 손실되는 경우를 방지 - * 독립적인 블록쓰기가 가능하고, 병목현상 발생X - 디스크장애가 하나씩 발생했을때만 복구 가능 |
RAID 6 | - 블록분산 - 디스크 여러개에서 장애가 발생했을때도 복구 가능 - 과한 디스크 운영 - 데이터양이 많아지고 디스크 구성이 많아져서 최근에 사용되기 시작. |
# RAID 계층 선택
- 디스크 구입에 따른 비용 요구
- 입출력 연산 횟수
- 디스크 실패했을 때, 재구축 하는 동안의 성능 요구
< 정리 >
RAID 0 - 안전 고려하지 않고 높은 성능만을 요구하는 경우
RAID 1 - 재구축 성능이 중요한 경우 / 갱신이 빠른 경우
RAID 2 - 3이 대체
RAID 3 -
RAID 4 - 5가 대체
RAID 5 - 소량 데이터 접근이 중요한 경우 / 대량 데이터 접근도 훌륭 / 읽기가 대부분인 경우
RAID 6 - 높은 신뢰성이 중요한 경우
## Hardware RAID
# Non-Volatile RAM 사용
- 디스크 쓰기 전 NVRAM에 쓰기 기록
- 정전 발생 시 NVRAM에서 쓰기 데이터 가져옴
# Scrubbing
- 디스크 사용되지 않는 동안 디스크의 내용을 읽어서 문제가 있는 부분을 복구
# Hot Swapping
- 전원 차단 않은 상태에서 디스크 제거하고 새로운 것으로 교체
-> 데이터 복구 평균 시간을 줄인다.
'전공 과목 이수2👨💻 > 데이터베이스관리' 카테고리의 다른 글
Transaction 트랜잭션 (0) | 2021.12.06 |
---|---|
인덱스 정리 (0) | 2021.11.05 |
인덱스 (0) | 2021.10.13 |
파일 내 레코드 구조, 데이터 사전 저장장치 (0) | 2021.10.05 |
파일 구조 (0) | 2021.10.04 |
저장장치 (0) | 2021.09.15 |