티스토리 뷰
NAS 을 선택하려면 아직도 고려해야할 것이 더 있습니다. 언제쯤 끝이 날까 싶지만, 사실 이게 거의 마지막이라고 봐도 무방합니다. NAS 를 운영하기 위해서는 결국 NAS 로 사용할 기기가 필요한데, 제조사 등에 따라서 가격도 천차만별이겠지만, 가장 큰 비용 차이가 발생하는건 NAS 기기에 몇 개의 디스크(Disk)을 설치할 수 있느냐에 따라 비용 차이가 어마어마하게 달라집니다. 심지어 많은 디스크를 운영하기 위해 NAS 전문 제조사의 제품을 구입하지 않고 직접 서버(Server)를 조립하여 운영하는 경우도 많아집니다.
그렇다면, 서버에 많은 디스크를 장착할 수 있다는 것은 무엇을 의미할까요?
우리가 흔히 윈도우즈(Windows 10 등)에서 하드디스크(HDD)를 연결하면 C 드라이브, D 드라이브, ... 과 같이 각각 하나의 장치처럼 인식합니다. 보통 서버에서도 이런 식으로 단일 디스크를 하나씩 각각 운영하는 경우도 있습니다. 조금 특이하게 JBOD 라는 기술을 이용해 디스크를 직렬로 쭉 연결한 것 처럼 하여 하나의 디스크처럼 인식하여 사용할 수 있게 하는 기술도 존재합니다. 하지만, 대부분 2 개 이상의 디스크를 이용할 경우 RAID(Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks) 라는 기술을 이용합니다. 위키피디아에서도 간략하게나마 RAID 에 대한 설명을 하고 있습니다.
https://ko.wikipedia.org/wiki/RAID
해당 문서에 나와있는 표준 레이드 레벨 중 일반적인 NAS 에서 제공하는 기술은 보통 RAID 0, RAID 1, RAID 5, RAID 6, RAID 0+1 정도입니다. 기술적인 정보도 중요하겠지만, NAS 를 구입하려고 할 때 몇 개의 디스크를 탑재할 수 있는 장비가 필요한지는 필요한 RAID 레벨에 따라 고려하면 되기 때문에 먼저 결론부터 말씀드리겠습니다. 물론 이런 RAID 없이 그냥 디스크 한 개만 장착할 수 있는 장비로도 NAS 구성에는 아무런 문제가 없지만, RAID 기술의 대부분이 디스크 장애 발생에 대비한 것이 크기 때문에 RAID 는 반드시 고려하는 것이 좋습니다.
RAID 0 와 RAID 1 은 모두 두 개 이상의 디스크가 필요합니다. 그러므로 RAID 0 혹은 RAID 1 으로 구축하려면 디스크를 두 개 장착할 수 있는 장비를 구입하면 됩니다.
RAID 0 는 디스크의 성능을 최대한 높이기 위한 기술로 SSD 에서는 큰 의미가 없지만 NAS 구축 시에는 보통 HDD 을 이용하기 때문에 RAID 0 를 고려해야 할 수도 있습니다. 하지만, RAID 0 는 디스크가 1 개라도 장애가 발생하면 모든 데이터를 유실되기 때문에 절대 권해드리지 않습니다. 고가의 장비에서는 RAID 를 위한 별도의 장비(RAID Controller)를 설치하고 운영하는데, 이 경우 기본적으로 제공되는 소프트웨어 적인 RAID 보다 성능이 좋아진다기 보다는 안정성이 높아지는 것입니다. 그렇기 때문에 안정성을 위해 RAID Controller 을 장비하는 경우도 많지만, RAID 0 는 기본적으로 RAID 풀림(RAID 로 구성한 디스크 묶음이 어떠한 이유로 인해 정상 동작하지 않는 경우)으로 인해 디스크가 아예 사용 불능에 빠질 수 있습니다. 상당수의 경우 다시 RAID 0 로 다시 묶어주면 인식이 잘 되는 편이지만, 재수가 없으면 복구가 불가능하여 모든 데이터가 사라질 수 있습니다. 다만 디스크의 갯수만큼 총 저장량이 늘어나기 때문에 최대한의 용량을 확보해야 할 경우 사용할 수 있습니다.
RAID 1 은 모든 디스크를 모두 동일한 내용으로 복제(mirror)하는 방식입니다. 디스크를 여러 개 장착해도 모두 동일한 내용으로 복제가 되기 때문에 하나의 디스크만 남아있다면 데이터는 원본 그대로 유지할 수 있습니다. 그래서 보통 NAS 에 디스크를 두 개 장착할 수 있다면 RAID 0 가 아닌 RAID 1 을 추천합니다. 단점은 역시나 디스크 용량을 모두 사용할 수 없고 1 개의 용량만큼만 사용할 수 있다는 것입니다.
보통 많이 구입하는 Synology 의 2 Bay(디스크 장착하는 곳이 2개인 것을 의미) 제품들로 구입했다면 RAID 1을 추천합니다. 용량 대비 가격이 비싸지긴 하지만 하나의 HDD 에 10 테라바이트(TB) 이상의 제품도 존재하기 때문에 가정에서 이용하는데 큰 문제는 없을 것입니다.
RAID 5 와 RAID 6 는 각각 세 개와 네 개 이상의 디스크가 필요합니다. 이는 패리티 비트라고 하는 정보를 1 개(RAID 5) 혹은 2 개(RAID 6)로 분산하는 기술을 의미하고, 기술적인 방법은 동일합니다. 컴퓨터는 현재 모든 정보를 0 혹은 1 의 값(2진수)로 저장하는데, 이러한 성질을 이용해 패리티 비트라는 오류 검출 및 데이터 보정 정보를 추가로 저장할 수 있는 것입니다.
RAID 5 기준으로 설명하자면 세 개의 디스크를 각각 A, B, C 라고 하고 저장할 데이터를 101101 이라고 가정하겠습니다. 그럼 첫번째 데이터 1 이 A 에 저장되면 B 는 아직 저장된 것이 없기 때문에 아직 0 의 데이터를 저장하고 있는 상태입니다(컴퓨터는 값이 없을 경우 보통 0 으로 채워져있습니다). 그러면 C 는 A 의 1 와 B 의 0 을 이용하여 패리티 비트를 C 에 저장합니다. 보통 패리티 비트는 짝수로 저장하는데, 1 와 0 을 합하면 1 이므로 홀수입니다. 그래서 이를 짝수로 만들기 위해서는 C 가 1 을 가지고 있어야 짝수가 됩니다. 그래서 첫 데이터가 저장되면 A, B, C 에는 각각 1, 0, 1 의 값을 가지게 됩니다. 다음 데이터인 0 이 저장되면 B 에 0 이 저장되고 마찬가지로 1, 0, 1 의 데이터를 가지고 됩니다.
A | B | C |
1 | 0 | 1 |
세번째 데이터가 저장될 때에는 다시 A 부터 저장하지 않습니다. 패리티 비트의 위치를 순차적으로 다른 디스크로 이동시키는 것입니다. 그래서 이번에는 패리티 비트를 A 에 저장하게 됩니다. 그래서 B 에 1 이라는 데이터를 저장합니다. 그러면 C 에는 아직 값이 없기 때문에 0 이 저장이 되고 결과적으로 A 에 저장되는 패리티 비트는 1 이 됩니다. 1, 1, 0 이 되는 것이죠. 네번째 데이터는 C 에 1 이 저장이 되기 때문에 0, 1, 1 이 됩니다.
A | B | C |
1 | 0 | 1 |
0 | 1 | 1 |
이런 식으로 다섯번째와 여섯번째 데이터를 C 와 A 에 각각 0 와 1 을 저장하면 최종적으로 1, 1, 0 이 저장됨을 알 수 있습니다.
A | B | C |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
이렇게 저장되면 결과적으로 디스크 전체의 용량을 다 사용할 수 없고 1 개의 디스크 용량만큼은 패리티 비트 저장에 사용되어야 하기 때문에 낭비가 됩니다. 속도 역시 디스크를 하나만 이용했을 때 비해서도 조금 느려지게 됩니다. 하지만, 이 상태에서 B 디스크가 장애가 발생하여 사용이 불가능해졌다고 가정해보겠습니다.
A | X | C |
1 | X | 1 |
0 | X | 1 |
1 | X | 0 |
그럼 A 와 C 만 이용해서 원래의 데이터 내용을 알 수 있을까요? 네! 이것이 가능하기 때문에 RAID 5 을 쓰는 것이고, 사실 RAID 5 와 6 가 RAID 의 꽃이라고 불리는 이유입니다.
첫번째 데이터는 A 에서 1 을 읽어올 수 있습니다. 두번째 데이터는 B 가 장애가 발생하여 읽어올 수 없는 상태인데, A 와 C 을 합하면 짝수이기 때문에 B 는 짝수를 유지하기 위해 0 이었음을 알아낼 수 있습니다. 그래서 두번째 데이터는 0 입니다. 세번째 역시 B 가 장애이지만 A 와 C 을 이용해서 1 이라는 것을 알 수 있습니다. 이렇게 하나의 디스크를 패리티 비트로 이용하게 되면 디스크 장애시에도 데이터를 잃어버리지 않고 읽을 수 있다는 걸 알 수 있습니다. B 디스크를 수리하거나 새 디스크를 새로 구입하여 장착을 한 다음 디스크를 RAID 로 다시 묶으면 위와 같이 원래의 데이터를 계산할 수 있기 때문에 다시 원래처럼 복구가 가능해집니다. 즉, RAID 5 는 하나의 디스크 장애에 대응이 가능한 방식입니다.
RAID 6 는 여기에 하나의 패리티 비트를 추가적으로 저장하는 방식입니다. 그렇기 때문에 2 개의 디스크 용량만큼 패리티 비트가 저장되기 때문에 최소 4 개의 디스크가 필요하고 디스크 수가 늘어나도 용량은 2 개만큼 사용할 수 없습니다.
다만, RAID 5 와 RAID 6 사용 중 디스크가 장애가 발생하면 새로운 디스크로 교체해줘야 하는데, 그 때 새로운 디스크에 데이터를 새로 써넣는데 아주 오랜 시간이 소요됩니다. 그래서 RAID 5 의 경우 디스크에 새로 써넣는 도중 다른 디스크가 추가로 장애가 발생할 경우 모든 데이터가 유실될 수 있습니다. 이런 확률이 RAID 5 에서는 전문 서버 운영사에서 2년 내 약 10% 이내에서 발생한다고 보고되고 있고, RAID 6 에서는 1% 미만이라고 합니다. 그래서 회사에서 운영할 때에는 가급적 RAID 6 을 권합니다.
마지막으로 RAID 0+1 은 네 개 이상의 짝수 수량의 디스크가 필요합니다. 원리는 간단한데, 2 개 이상의 디스크를 RAID 0 로 구성한 뒤 이 구성을 그대로 RAID 1 형태로 복제(Mirror)하는 형태입니다.
이러한 RAID 을 구성할 때에는 각 디스크는 모든 디스크 중 가장 용량이 적은 디스크의 크기만을 사용할 수 있습니다. 남는 공간은 따로 파티션을 나누어서 사용도 가능하지만, 속도 동기화 문제 등이 존재하기 때문에 RAID 을 구성할 때에는 동일한 모델(스펙, 성능이 동일한)의 제품을 사용하는 것을 가장 추천합니다.
이렇듯, 가정에서 NAS 을 구성하더라도 데이터의 성질(언제든 다시 구할 수 있는 데이터냐 아니냐)에 따라 RAID 을 다른 방식으로 구성하는 것을 고려해야 합니다. 물리적으로 가장 저렴한 2 Bay NAS 을 구입하여 RAID 1 을 구성하는 것이 가장 간단하나, 데이터의 용량은 개인마다 다르기 때문에 4 Bay 이상의 제품을 구입하여 RAID 0+1 혹은 RAID 5 을 구성하는 것도 고려할 수 있습니다. 저는 개인적으로 RAID 5 로 구성하여 사용중인데, 아직까지 디스크 장애가 심하게 난 적은 없지만, 경우에 따라 디스크가 2 개가 연달아 장애가 발생할 수도 있기 때문에 SOHO 사무실 등에서는 RAID 6 도 적극 고려하길 바랍니다.
'Computer > System' 카테고리의 다른 글
서버 구성에서 Bastion Host란? (0) | 2024.08.07 |
---|---|
메인보드 내장 블루투스가 인식되지 않는 문제가 발생 (1) | 2022.10.13 |
우리집에 NAS 을 들여놓자! (3) 공유기 선택하기 (0) | 2020.02.09 |
우리집에 NAS 을 들여놓자! (2) 네트워크 배선 결정하기 (9) | 2020.02.07 |
우리집에 NAS 을 들여놓자! (1) 인터넷 업체 고르기 (0) | 2020.01.30 |
- Total
- Today
- Yesterday
- proxmox
- KDE
- RestTemplate
- Spring MVC
- boot
- 워드프레스
- paging
- manjaro
- messages.properties
- Phabricator
- 프로젝트 규모
- OracleJDK
- 외장 WAS
- java config
- git
- 클라우드플레어
- Redmine
- NoSQL
- 페이징
- 엘지
- couchbase
- 도입기
- Spring
- SI
- Nas
- 내장 WAS
- docker
- Spring Boot
- jooq
- 시니어 프로그래머
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |