RAID (Redundant Array of Independent Disks)
RAID는 수많은 데이터들을 안전하게 저장하거나 성능을 높이기 위해 여러 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 기술입니다.
RAID 구성 방식(종류)에 대해서 설명해 주세요.
RAID 0은 여러 보조기억장치에 데이터를 나누어 저장하는 구성 방식입니다. 데이터를 저장할 때 하드 디스크는 각 장치에 번갈아 가며 데이터를 저장합니다. 이때 줄무늬처럼 분산되어 저장된 데이터를 스트라이프라고 하며, 분산하여 저장하는 방식을 스트라이핑이라고 합니다.
데이터를 분산하여 저장하기 때문에 저장된 데이터를 읽고 쓰는 속도가 빨라집니다. 하나의 대용량 저장 장치를 사용하면 여러 번에 걸쳐 읽고 써야 하는 데이터를 동시에 읽고 쓸 수 있기 때문입니다. 예를 들어 4TB 저장 장치 한 개를 읽고 쓰는 속도보다 RAID 0으로 구성된 1TB 장치 4개의 속도가 이론상 4배가량 빠릅니다. 하지만, 저장된 정보가 안전하지 않다는 단점이 있습니다.
RAID 1은 완전한 복사본을 만드는 구성으로 미러링이라고도 부릅니다. 디스크에 문제가 발생해도 복구가 가능합니다. 하지만 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어지는 단점이 있습니다. 또한 RAID 0에 비해 쓰기 속도가 느립니다.
RAID 4는 완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식입니다. RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있습니다. 하지만, 새로운 데이터가 저장될 때마다 패리티 저장 디스크에도 데이터를 써야 하므로 병목 현상이 발생할 수 있다는 단점이 있습니다.
RAID 5는 RAID 4의 병목 현상을 극복하기 위해 패리티 정보를 분산하여 저장합니다.
RAID 6는 서로 다른 두 개의 패리티를 두는 방식입니다. 오류를 검출하고 복구할 수 있는 수단이 두 개가 생기므로, RAID 4나 RAID 5보다 안전합니다. 하지만, 패리티가 두 개이므로 쓰기 속도는 RAID 5보다 느립니다. RAID 6는 데이터를 더욱 안전하게 보관하고 싶을 때 사용하는 방식입니다.
RAID를 직접 구성 해보신 적이 있나요?
RAID를 직접 구성한 적은 없습니다. 하지만, 프로젝트 백엔드를 구축하면서 AWS RDS를 사용했는데요, AWS RDS는 필요한 스토리지 용량에 따라 자동으로 데이터를 여러 Amazon EBS 볼륨에 스프라이핑하여 성능을 강화하는 것으로 알고 있습니다.
'백엔드 면접' 카테고리의 다른 글
| 엔티티 매니저에 대해 설명해 주세요. (0) | 2024.11.30 |
|---|---|
| JPA의 ddl-auto 옵션에 대해서 설명해 주세요. (0) | 2024.11.29 |
| Spring Data JPA에서 새로운 Entity인지 판단하는 방법은 무엇일까요? (0) | 2024.11.29 |
| @Value 어노테이션 사용 시 주의할 점을 설명해 주세요. (0) | 2024.11.28 |
| OSIV 옵션에 대해서 설명해주세요. (0) | 2024.11.27 |