이전에도 RAID에 대해서 정리했지만 너무 오래돼서 잘 기억이 나지 않아 다시 정리해보는 시간을 가졌다.
RAID 란 무엇이고 왜 사용하고 어떤 종류가 있는지 다시 정리해봤다.
RAID 란
RAID 는 Redundant Array of Independant Disk의 약자로
독립된 여러개의 디스크를 중복해서 묶는다 라고 해석해볼 수 있다.
음,, 그러니까 RAID는 여러 개의 디스크들을 묶어서 사용하는 것이구나라고 생각할 수 있다.
그럼 여러 개의 디스크를 왜 묶어서 사용하지?
디스크 "1개"만 사용한다고 해보자. 1개의 디스크를 사용한다고 했을 때 만약 문제가 생겨 디스크를 사용하지 못하게 된다면 디스크에 저장된 데이터를 모두 사용하지 못하게 된다. 그리고 디스크에 크기가 큰 파일을 저장하려고 하면 엄청나게 많은 시간이 걸리게 된다.
따라서, RAID를 통해 여러개의 디스크를 묶어 하나의 디스크로 사용한다면 데이터의 유실을 방지하고 안전하게 데이터를 보관하고 사용할 수 있도록 그리고 데이터를 읽고 쓰는 속도를 향상시킬 수 있다.
그럼 RAID가 무엇이고 왜 사용하나요? 라고 묻는다면 어떻게 대답하면 좋을까?
"RAID 는 여러 개의 디스크를 묶어 하나의 디스크처럼 사용하는 것을 말합니다. RAID 를 사용하는 이유는 디스크에 문제가 생겼을 때 데이터가 유실되는 것을 방지하고 안전하게 데이터를 보관하고 사용할 수 있도록 합니다. 그리고 데이터의 입출력 속도를 빠르게 해주기 때문에 RAID 를 사용합니다."
라고 대답해야지!
RAID 는 하드웨어 RAID 와 소프트웨어 RAID 로 크게 두 가지 종류로 나눌 수 있다?
RAID 를 크게 분류해보면 하드웨어 RAID 와 소프트웨어 RAID 로 구분할 수 있다.
두 가지 종류에 대해 간단하게 말하면 하드웨어는 RAID 는 말 그대로 RAID 가 구성된 제품을 말하고 소프트웨어 RAID 는 OS 에 내장되어 있는 소프트웨어를 통해 RAID 를 구성하는 것을 말한다.
두 가지 RAID 에 대해 조금 더 자세히 찾아보았다.
하드웨어 RAID 는 하드웨어 장비를 만드는 업체에서 여러 개의 디스크를 가지고 RAID 를 구성해 제품을 만들어 공급하게 된다. 사용자 입장에서는 RAID 가 구성되어 있고 여러 검증을 거쳐 출시된 제품이기도 하고 여러 기능들이 추가되어 있어 보다 편하고 안정적으로 사용할 수 있지만 비싼 가격이 부담될 수 있다.
반면에 소프트웨어 RAID 는 OS 에 내장되어 있는 소프트웨어를 통해 RAID 를 구성하게 된다. 그렇기 때문에 가격이 싸고 자유로운 구성이 가능하다는 장점이 있지만 CPU 자원을 사용하기 때문에 하드웨어 RAID 보다는 성능이 떨어진다. 따라서, RAID 0, 1 방식을 추천한다고 한다.
그럼 어떻게 여러 개의 디스크를 묶어 하나의 디스크로 사용할 수 있을까?
여러개의 디스크를 하나의 디스크로 구성하는 방식은 여러가지가 있다.
RAID 를 조금이라도 접해봤다면 알 수 있다고 생각한다.
일반적으로 RAID 방식에는 Linear RAID, RAID 0, RAID 1, RAID 5, RAID 6, RAID 1+0 가 있다.
각각의 RAID 방식은 특징을 가지고 있어 운영 환경에 맞게 사용된다.
Linear RAID
Linear RAID 는 여러 개의 디스크를 이어 붙여 사용한다. 예를 들어, 디스크가 3개가 있을 때 첫 번째 디스크를 사용하다가 디스크 용량이 가득 차게 되면 다음 디스크에 저장하는 방식이다. 따라서 여러 개의 디스크를 순차적으로 사용하는 방식이라고 생각하면 된다.
[정리]
여러 개의 디스크를 순차적으로 사용하는 RAID 방식
RAID 0 - stripe
RAID 0 방식은 stripe 방식이라고 한다. stripe 는 데이터를 여러 개의 디스크에 나누어 저장한다는 말이다.
예를 들어, "안녕하세요!" 라는 문자를 2개의 디스크에 저장한다고 하면 하나의 디스크에는 "세요녕", 다른 디스크에는 "하!안" 이렇게 글씨가 저장된다.
"안녕하세요!" → 디스크1 ("세요녕") + 디스크2 ("하!안")
따라서 RAID 0 방식은 데이터를 나누어서 저장하기 때문에 데이터를 저장할 때 속도가 빨라진다. 6바이트를 하나의 디스크에 저장하는 것보다 쪼개서 3바이트씩 2개의 디스크에 저장하는게 더 빠르게 저장할 수 있다. 하지만 2개의 디스크 중에서 하나의 디스크를 사용하지 못하게 된다면 저장된 데이터를 사용할 수 없게 된다. 따라서, 데이터의 신뢰성이 떨어지게 된다. 그리고 하나의 디스크는 10TB 용량을 가지고 다른 디스크는 100TB 용량을 가진다면 가장 작은 디스크의 용량인 10TB 크기만 사용할 수 있기 때문에 효율성이 떨어진다. 그래서 같은 크기를 가진 같은 종류의 디스크를 사용해야 한다.
[정리]
여러 개의 디스크에 데이터를 나누어 저장하는 stripe 방식 사용한다. → 데이터 입출력 속도가 빠름
하나의 디스크에 문제가 생기면 저장된 데이터를 사용할 수 없다. → 데이터의 신뢰성이 떨어짐 → 중요하지 않은 데이터를 저장하기 좋음
가장 작은 디스크의 용량에 맞추어 사용할 수 있다. → 같은 용량과 같은 제조사의 디스크를 사용해야 함
데이터를 나누어 저장할 디스크가 필요 → 최소 2개의 디스크 필요
RAID 1 - mirroring
RAID 1 방식은 mirroring 방식이라고 한다. mirroring 방식은 말 그대로 데이터를 똑같이 복제해 2개의 디스크에 저장한다는 말이다.
예를 들어, "안녕하세요!" 라는 문자를 2개의 디스크에 저장한다고 하면 하나의 디스크에 "안녕하세요!", 다른 디스크에도 "안녕하세요!" 라고 저장된다.
"안녕하세요!" → 디스크1 ("안녕하세요!") + 디스크2 ("안녕하세요!")
따라서 RAID 1 방식은 데이터를 그대로 복제해 다른 디스크에 저장하기 때문에 디스크를 저장하는 속도는 달라지지 않지만 디스크 공간을 2배로 차지하기 때문에 비효율적으로 공간을 차지하게 된다. 하지만 RAID 0 방식과는 반대로 하나의 디스크에 문제가 생기면 다른 디스크에 데이터가 똑같이 저장되어 있기 때문에 데이터 신뢰성이 높아진다.
[정리]
디스크를 저장하는 속도가 달라지지 않는다. → 데이터 입출력 속도 변함 없음
데이터를 똑같이 복제해 저장한다. → 데이터의 신뢰성이 높아짐 → 중요한 데이터를 저장하기 좋음
디스크 용량이 2배로 든다. → 디스크 공간이 비효율적임
데이터를 복제해 저장할 디스크가 필요 → 최소 2개의 디스크 필요
Parity
다음으로 정리할 RAID 5, RAID 6 에 대해서 설명하기 전에 parity 가 무엇인지 알아야 이해하기 쉬웠다.
패티리는 데이터와 연결된 값을 가지고 있는데 디스크에 문제가 생겼을 때 패리티 값을 통해 데이터를 복구한다고 한다.
어떻게 패리티 값이 주어지고 패리티 값을 통해 어떻게 데이터를 복구하는지에 대해서 아래 사이트에 잘 설명되어 있다.
RAID 5 - parity 1
RAID 5 방식은 stripe 방식으로 데이터를 나누어 저장하지만 하나의 디스크에 parity 를 추가해 저장하게 된다. 만약 하나의 디스크에 문제가 발생하게 되면 parity 를 통해 데이터를 복구할 수 있다.
예를 들어, "안녕하세요! 라는 문자를 3개의 디스크에 저장한다고 하면 하나의 디스크에 "안하세", 다른 디스크에 "녕!요" 를 저장하고 마지막 디스크에는 parity 를 저장하게 된다. 하나의 디스크에 문제가 생겨 사용하지 못 하게 된다면 parity 를 통해 데이터를 복구하게 된다.
"안녕하세요!" → 디스크1 ("안하세") + 디스크2 ("녕!요") + 디스크3 (parity = 짝수 또는 홀수)
따라서 RAID 5 방식은 stripe 방식을 통해 데이터를 나누어 저장하면서 parity 를 저장하기 때문에 하나의 디스크에 문제가 생긴다면 parity를 통해 복구할 수 있다. 그리고 parity 를 추가로 저장해야 하기 때문에 디스크가 하나 더 필요하다. 하지만 parity 가 하나 밖에 없기 때문에 동시에 2개의 디스크에 문제가 생기면 복구가 어려워진다.
[정리]
stripe 방식으로 데이터를 나누어 저장하면서 추가로 parity 를 저장한다. → 디스크에 문제가 생기면 parity 를 통해 데이터 복구
parity 를 저장할 하나의 디스크가 필요 → 최소 3개의 디스크 필요
RAID 6
RAID 6 방식은 RAID 5 방식을 개선해 parity가 하나 더 추가되어 2개의 parity 를 저장한다. 따라서 동시에 2개의 디스크에 문제가 생겨도 데이터를 복구할 수 있기 때문에 RAID 5 방식보다 더 안정적으로 사용할 수 있다. 하지만 2개의 parity 를 저장하기 때문에 RAID 5 방식보다 공간을 효율적으로 사용할 수 없다는 점도 있다.
[정리]
2개의 parity 를 가지고 있다. → 디스크에 문제가 생기면 parity 를 통해 데이터 복구 → 2개의 디스크에 문제가 생겨도 복구 가능
parity 를 저장할 두 개의 디스크가 필요 → 최소 4개의 디스크 필요
RAID 1+0 또는 RAID 10
RAID 1+0 방식은 RAID 6 방식보다 더 안정적이면서 RAID 5 방식의 장점을 극대화하기 위해 RAID 0 방식과 RAID 1 방식을 합쳤다.
stripe 방식을 통해 데이터를 나누어 저장하고 mirroring 방식을 통해 데이터를 복제해 저장한다.
예를 들어, "안녕하세요!" 라는 문자를 4개의 디스크에 저장한다고 하면 1번, 2번 디스크에 "세요!" 3번, 4번 디스크에 "안녕하" 를 나누어 저장하고 복제한다.
"안녕하세요!" → 디스크1 ("세요!") + 디스크2 ("세요!") + 디스크3 ("안녕하") + 디스크4 ("안녕하")
따라서 RAID 1+0 방식은 RAID 0 방식의 데이터 입출력 속도와 RAID 1 방식의 데이터 신뢰성을 동시에 챙기는 방식이라고 할 수 있다.
[정리]
RAID 0 stripe 방식과 RAID 1 mirroring 방식을 더했다. → 데이터 입출력 속도와 데이터 신뢰성 확보
stripe 방식을 위한 디스크와 mirroring 방식을 위한 디스크가 필요하다. → 최소 4개의 디스크 필요
마무리~
마지막으로 RAID 에 대해서 잊었던 부분들을 다시 찾아보고 정리하면서 이해하는 시간을 가졌는데 왜 정리하면 할수록 정리가 되는 게 아니라 더 복잡해지는 걸까... ㅎㅎ 우선 이번 정리를 통해 어떤 방식을 통해 RAID 가 구성되는 지에 대한 내용만 이해하는 정도였다. 더 자세히 이해하려면 보다 많은 시간이 필요할 것 같고 현재 내가 하는 업무에서는 이정도면 충분하지 않을까 하는 생각이 든다. 그리고 직접 RAID 구성을 해보지 않았기 때문에 직접 구성해본다면 좋을 것 같다.
- 참고 사이트 -
https://lascrea.tistory.com/138
https://jerrystyle.tistory.com/56
'리눅스 > Linux' 카테고리의 다른 글
리눅스 정규 표현식(Regular Expression) 정리 (2) (0) | 2022.04.09 |
---|---|
리눅스 정규 표현식(Regular Expression) 정리 (1) (0) | 2022.04.03 |
메모리 Buffer 와 Cache 이해하기 (0) | 2022.01.20 |
리눅스 시스템 재시작 로그 확인 (0) | 2021.11.18 |
리눅스 네트워크 확인 명령어 정리 (0) | 2021.09.12 |