CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·일본산당 ·방탄소년당 ·MaClien ·자전거당 ·안드로메당 ·개발한당 ·이륜차당 ·AI당 ·냐옹이당 ·소시당 ·오른당 ·소셜게임한당 ·와인마신당 ·위스키당 ·바다건너당 ·PC튜닝한당 ·클다방 ·스팀한당 ·패스오브엑자일당 ·노젓는당 ·나스당 ·어학당 ·걸그룹당 ·육아당 ·IoT당 ·날아간당 ·키보드당 ·리눅서당 ·찰칵찍당 ·달린당 ·가상화폐당 ·골프당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 NAS에 대해 알아보자! (2) - NAS에 데이터를 저장하는 방식 (1) 19

24
2019-10-12 14:09:31 수정일 : 2019-10-13 10:43:02 219.♡.148.80
Camille

이번 강좌에서는 데이터를 어떻게 저장할지에 대해서 알아보도록 하겠습니다.


두가지 알려드릴 것이 있습니다. 


*1. 먼저 저는 현직 영어강사로서, 좀 핑계스럽지만 네트웍이나 서버를 전공한 사람도 아니고 (왜 하게 되었는지는 담 기회에 간단히 써 보겠습니다), 또 과거 10여년 간은 그냥 필요한 만큼만 써왔지 최신 트렌드나 기술을 따라가며 계속 지식을 쌓아왔다든가, 또는 예전에 학습했던 것을 온전히 제대로 기억을 하고 있다든가 하지 않습니다. (그렇다고 무슨 유료 출강이나 책을 출간하는 것도 아니어서 제가 일일히 다시 레퍼런스를 찾아보며 글을 쓰지는 않고 그냥 기억나는대로만 쓰려고 합니다.) 또한 본 강좌는 어디까지나 NAS 초보자 분들이 아시면 도움이 되실 만한 부분을 최대한 이해하기 쉽기 다루려고 하기 때문에, 본 강좌는 의도치 않게 오류가 있을 수 있습니다. 그런 부분을 발견하신 분이 댓글로 정정하시거나 추가적인 정보를 남겨 주시는 것은 언제든지 환영하고 감사드립니다. *


*2. 이 강좌를 쓰는데는 약 2시간 전후를 투자할 생각입니다. 그래서 글이 중간에 그냥 갑자기 끝날 수도 있습니다. 나머지는 시간 나는데로 이어가겠습니다. 양해 부탁드립니다. m_O_m*


*아울러 다음 강좌가 기대되시는 분은 공감도 좀... ㅎㅎ*


*그리고 사실 전 영어를 더 잘 가르치.....^^*


당장 NAS 사셨는데 세팅도 제대로 안되신 분들은 네트워크 부터 급하시겠지만, 실제 구입단계로 돌아간다면 NAS가 필요한지, 필요하다면 1Bay/2Bay/4Bay 또는 그 이상 중 무엇을 할 것인지, 또 같은 Bay (HDD나 SSD를 장착할 수 있는 슬롯) 수라 하더라도 더 좋은 성능이 필요한지 아닌지를 알아야 하는데, 그러려면 먼저 어떤 데이터를 어떻게 저장할 지 부터 결정해야 하기 때문에 본 강좌를 먼저 쓰게 됐습니다. 데이터를 어떻게 저장할지는 결국 내가 저장할 데이터가 어떤 성질의 것이냐와 연결이 되는데, 반대로 보면 방식에 대한 이해가 있으면 본인의 데이터의 성질을 인식하고 결정할 수도 있으므로, 먼저 방식에 대해서 간단히 알아보도록 하겠습니다.



먼저 이해해야될 2개의 용어 : 파티션 vs. 볼륨


요즘은 이 두 개가 흔히 혼용 되어서 많이 쓰이는데, 둘은 비슷해 보여도 다른 개념입니다. 이 둘 부터 구분해 봐야 합니다.


1. 파티션 : 저장장치 (거의 HDD/SSD)의 공간을 필요에 따라 분할하는 개념


예를 들어 10TB 짜리 HDD를 하나 샀다고 가정합시다. 이걸 통쨰로 하나의 드라이브로 쓸 수도 있지만, 필요에 따라 둘로 나누어 쓸 수 도 있습니다. 물론 "그냥 하나의 드라이브에 폴더 두 개를 만들고 나누어 쓰면 되지 않는가?" 라는 질문이 생길 수 있는데 (그리고 실제 요즘은 대개 그렇게 씁니다. 그래서 파티션과 볼륨의 경계가 모호해 져서 혼용되어졌구요.),  옛날에는 성능이나 기타 자료 처리의 문제로 분할하는 것이 이득인 경우가 많았습니다. 2000년대 초반만 해도 PC의 모든 부분은 느렸고, 이런 느린 것을 조금이라도 빠르게 쓰는 방법들 중 하나는 물리적으로는 한 개의 HDD지만 그 안에서 논리적으로 OS가 동작하는 구역과 일반 데이터가 저장하는 구역을 구분하여 분할해서 사용하는 것이었습니다.


예를 들어 지금은 의미없어 거의 사장된 기술인 조각모음이 있습니다. HDD의 데이터는 여기저기 흩뿌려져 기록되어 소위 파편화된다고 하는데, 그러면 읽을 때 사람은 한 개의 파일을 읽으라고 명령을 해도 실제 HDD의 디스크를 읽는 헤드는 여기저기를 돌아 다녀야 했습니다. 그래서 이렇게 느려지는 현상을 막고자 주기적으로 조각모음을 실행해 파편화 된 데이터들을 서로 맞는 자리로 이동시켜 주었는데, 사실 이건 OS영역에선 치명적이었지만 그냥 일반 데이터 영역에선 큰 쓸모가 없었기 때문에 처음부터 드라이브를 하나로 써버리면 매번 전 드라이브를 다 조각모음을 해야하니 시간/전력 낭비였죠. 그래서 최소한 처음부터 OS/데이터 영역을 나누는 것은 필수였고, 이렇게 나눌 때 쓰이는 작업이 파티셔닝 작업이라 합니다. (1999년... 제 여동생의 PC 부팅이 거의 4분여 걸려서 저보고 업글 해 달라고 징징 댔는데... 조각 모음후 1분도 안 걸리는 모세의 기적이 일어났다는 전설적인 일이... ;;;) 물론 다른 용도로도 파티션 작업은 많이 쓰입니다.


나눈다는 개념이 중요하긴 하지만, 더 중요한 것은 HDD나 SSD를 쓰려면 일단 파티션 설정을 해야 한다는 것입니다. 이 HDD나 SSD를 1개의 파티션으로 쓸 것이냐, 또는 2개 이상의 파티션으로 나누어 쓸 것이냐? 가 원래 먼저 알아야 할 부분입니다. (더 공부하고 싶으신 분은 주파티션, MBR, 동적디스크 등의 키워드로 검색하셔서 공부하시면 되겠습니다.)


2. 볼륨 : 저장장치를 하나의 단위로 묶는 개념


볼륨의 정확한 정의는 쪼금 다른데, NAS 공부를 위해서는 그냥 이렇게 이해하는게 편합니다. 저장장치를 하나의 단위로 묶어서 설정했기 떄문에, 1개의 볼륨으로 묶인 것은 OS에서 1개의 장치로 인식하거나 설정할 수 있고, 한개의 드라이브 레터 (C:\ D:\ E:\ 같은)를 부여할 수 있습니다.위의 파티션과 연결하면 이렇게 됩니다.  예를 들어 하나의 HDD에 하나의 파티션만 설정해서 쓴다면 한개의 볼륨으로 설정해서 컴퓨터에 한개의 장치로 인식시켜 하나의 드라이브 레터를 부여할 수 있습니다. (대개 C:\) 하나의 HDD에 두개의 파티션을 설정하면, 두개의 볼륨으로 따로 설정할 수 있고 컴퓨터에는 두개의 분리된 장치로 인식시켜서 드라이브 레터를 각기 따로 부여할 수 있습니다. (대개 C:\와 D:\가 되겠죠. 물론 E:\나 다른 것으로 할 수도 있습니다.) 3개로 분할하면 3개로... n개면 n개로.. 이렇게 됩니다.


또한 파티션 처럼 나누는 개념이 아니라 장치를 묶거나 장치를 인식시켜 드라이브 레터를 부여하는데 쓰이는 개념이어서, ODD에도 쓰입니다. 즉 CD/DVD/Blu-Ray는 우리가 임의적으로  파티션을 나누는 작업을 하지는 못하지만, 그 Reading을 하는 장치에 하나의 볼륨을 설정하여 드라이브 레터를 부여할 수는 있습니다.


여기서 한가지 의문이 드는 건, "묶는다"라고 했는데, 그럼 "HDD는 1개지만 2개나 3개의 파티션을 나눈 것을 다시 1개의  볼륨으로 묶어서 1개의 장치로 인식시키는 것"도 가능한가? 인데, 논리적으로는 가능한데 실제로는 안됩니다. 그럴바엔 그냥 1개의 파티션을 설정하면 되는 것이기 때문에 그런 설정을 할 필요도 없고, 대개 os에서 기능적으로 안됩니다. 다만 이 의문은 중요한 의문으로, 다음 내용에 연결 됩니다.



이제부터 본격적으로 NAS에 쓰일 저장장치의 설정의 개념을 잡아 보도록 하겠습니다.


먼저, 데이터가 저장되면 두가지 중요한 점을 고려해야 합니다. 바로 "가용성"과 "안정성"입니다. 비슷해 보이는데 다른 개념입니다.


1. 가용성 : 내가 가진 자료가, HDD가 고장나더라도 상시 쓸 수 있는 상태여야 한다는 뜻입니다. 1개의 HDD이고 다른 상시 사용 가능한 백업이 없다면 가용성은 보장이 되지 않습니다.


2. 안정성 : 내가 가진 자료가, HDD가 고장나더라도 손실이 되지 않는 다는 뜻입니다.. 가용성과는 달리, HDD를 고쳐서 데이터가 살아나는 것이 100% 확실하다면, 안정성은 보장이 된 것입니다. (물론 실제 HDD가 고장났는데 100% 복구 보장이 되지는 않습니다. 예를 든 것 뿐입니다.) 즉 HDD가 1개라도 경우에 따라 안정성은 보장 될 수 도 있습니다.


예를 들어 내가 1개의 HDD에 저장한 데이터를 다른 집 1개의 HDD에 예비로 똑같이 복사를 해두었다고 해도, 일단 그것을 가지러 갔다와야 한다면 그 시간 동안은 데이터를 쓸 수 없기 때문에 가용성이 보장되지 않는 것입니다. 하지만 안정성은 보장이 된 것입니다. 하지만 그 HDD가 네트워크에 물려 있고 공유되어 있다면 가용성과 안정성이 다 보장이 된 것입니다. 물론 운나쁘게 그 HDD가 동시점에 같이 고장이 난다면, 가용성은 보장이 안된 것이고, 안정성은 돈들여서 복구업체에 기대봐야 하는 것입니다. 그래서 가용성과 안정성은 서로 맞물려 있으면서, 동시에 "완벽한 가용성과 완벽한 안정성은 존재하지 않습니다." 다만 적정수준에 타협을 본다면, 사실상 본인의 수준에서 감내할수 있는 0.0~1% 확률에 수렴하는 안정성이나 가용성을 확보할 수 있으므로, 큰 문제가 되지는 않습니다.


결국 가용성과 안정성이라는 것을 확보하기 위해서는, 어쨋든 HDD가 2개 이상이 필요하다는 점을 알았습니다. 그래서 공유기에 HDD 붙이는 수준이거나 외장 HDD에 네트워크만 물려주는 수준의 기기가 아닌 본격적인 NAS들은 무조건 2Bay부터 시작을 합니다. 이제부터 이렇게 다수의 HDD를 구성하는 법에 대해서 알아보겠습니다. 



RAID (Redundant Array of Inexpensive Disk)


흔히 다수의 HDD를 구성하는데 쓰이는 방식을 일컫는 용어입니다. 원래의 제안과 지금은 쪼~금 다른데 (유사규격들이 있어서..), 기본은 같습니다. 간단히 중간에 Inexpensive, 즉 "싼" 이라는 단어를 보면 알 수 있습니다. 이게 80년 후반에 처음 제안된 개념인데, 그땐  HDD가 대개 100메가 아래 단위 시절입니다. RAID를 이해하기 위해서 위의 설명된 파티션과 볼륨을 이해해야 하는데, 일단 고용량 HDD는 지금도 그렇지만 그 땐 무지막지 비쌌습니다. 그래서 상대적으로 가격이 싼 HDD를 사서 쓰는데,  대개 1개의 파티션에 1개의 볼륨을 설정하게 됩니다. 문제는 그럼 많은 데이터가 있다면 원치 않게 데이터를 분산 저장 (즉 HDD의 수에 따라 드라이브 레터가 n개로 계속 늘어남) 하게 되어서, 불편을 초래하게 됩니다. 그래서 나온 최초에 제시된 아이디어가


"싼거 여러개 묶어서 1개의 볼륨으로 설정해서 한개의 드라이브 레터만 붙이면 쓰기 편하지 않아?"


였습니다. 그럼 편리성이 엄청나게 증가하는 장정이 생기죠. 그런데 이건 애초부터


"근데, 그렇게 다수의 하드를 하나의 볼륨으로 묶었다가, 그 중 하나의 HDD가 고장나면 나머지 HDD의 자료를 읽을 수 없게 되잖아?"


라는 아주 근본적인 문제점이 생기게 되었죠. (파티션/볼륨은 파일시스템과 밀접한 연관이 있는데, 볼륨을 구성하는 일부가 망가지면 파일 시스템이 붕괴되므로 전체의 파일들을 다 못쓰게 됩니다.) 바로 이부분에 대한 해결책까지 한꺼번에 제시가 된 것이 바로 RAID고, 여기서 Redundant 가 그 의미로 쓰인 것입니다. 영어로 redundant는 여분의, 불필요한 의미이지만, 서버나 컴퓨팅에선 "여분의 것을 미리 준비해서 main의 기기가 고장나도 sub로 바로 대체되어 가용성이 확보되는"것을 의미합니다. 이건 서버의 Redundant Power도 그렇습니다.


그래서 제시된 RAID는 이런 개념들을 해결하여 제시된 것이고, 동시에 기왕에 여러개의 시스템을 쓰니 다른 장점도 구현해보는 것입니다. RAID레벨에는 여러가지가 있습니다만, 가정이나 중소규모 회사를 꾸리기 위해서 알아야 할 정도만 다루겠습니다.


1. JBOD (Just Bunch of DisK) (OS 인식용량은 총 디스크 용량의 합산가 동일)


정확히는 RAID 규격이 아닙니다. 그냥 맨 처음 나온 내용대로 싼 디스크 여러개 붙여다 하나의 볼륨으로 쓴 것 뿐입니다. 편리성은 좋아지지만 안정성/가용성은 물론 성능적 이점도 없습니다. 그래서 초기엔 좀 쓰였지만 90년대 중반 이후 HDD가 기가바이트 시대에 접어들면서 급속히 사라졌습니다. 그냥 붙이기만 하는 거랴 디스크 끼리 용량이 같을 필요도 없습니다.


2. RAID 0 (Striping) (OS 인식용량은 동일 용량일 때 용량 * n개)


여기서부터는 (정확히는 모든 RAID 레벨은) 원칙적으로 같은 용량의 디스크를 써야 합니다. 만약 용량이 다르면, 가진 갯수의 디스크 중 작은 용량의 기준으로만 설정이 가능합니다. RAID 0는 간단히 데이터가 들어가면 그것을 디스크에 n개로 나누어서 보관하는 것입니다. (실제로는 거의 2개로만 쓰입니다.) 즉 데이터의 양이 4 라면, 2+2 나누어서 2개의 HDD에 각각 2만큼씩 저장하는 것입니다.


이것의 장점은 지금 처럼 디스크 대역폭 (데이터가 오가는 속도)이 높지 않았던 시절, 큰 데이터를 나누어 보관하고 동시에 쓰거나 불러오면 더 빠르게 쓰고 읽을 수 있는 장점 때문에 부각 되었습니다. 하지만 치명적인 단점은 당연히 하나가 고장나면 나머지 하나는 그냥 쓰레기 처리 되야 한다는 점이었습니다. 그래서 상시 백업 체제가 갖추어지지 않은 경우에는 쓰이지 않는게 원칙이었고, 그나마 SATA2 이후에는 (HDD기준 7200rpm은 최대 200MB/s 데이터 전송속도를 보이는데, SATA2가 이미 300MB/s이고, SATA3는 600MB/s - 이 이상의 대역폭은 어차피 HDD가 아니고 SSD나 Memory 영역이므로 논외임)입니니다. 사실상 쓰이지 않습니다.


3. RIAD 1 (Mirroring) (OS 인식용량은 동일 용량일 때 (용량 * n개) / 2)


이것은 하드를 미러링, 말 그대로 거울 보듯이 그대로 베끼는 작업을 하는 것입니다. CPU를 제외한 HDD 자체만 놓고 보면 성능상의 이점이나 단점은 없고, 대신 안정성이 확보됩니다. 만약 2개의 HDD를 쓰면 실제 컴퓨터에 인식되는 용량은 1개의 용량만 인식이 되고, 주 디스크에 데이터가 쓰여지거나 지워질 떄 똑같이 부 디스크에도 데이터가 써지거나 지워집니다. 만약 주/부 디스크중 하나가 고장이 나면 교체해서 바로 복원을 합니다. 오로지 안정성 확보를 목적으로 구성을 합니다.


RAID 2~4까지 건너뜁니다. (거의 쓰이지 않아 별 의미 없습니다.)


4. RAID 5 (OS 인식용량은 동일 용량일 때 (용량 * n개) - 1)


이거 영어로 뭐라 불렀는데 용어가 기억이 안납니다. (그냥 대개 다들 "레이드 파이브"라고 합니다.) 이건 최소 3개의 디스크가 필요합니다. 어떤 방식이냐면, 2번의 예 처럼 데이터의 양이 가 들어오면, (양을 기준으로) 2+2로 나누어 저장을 2개의 HDD에 저장을 합니다. 그럼 나머지 하나에는 무엇을 하냐면 소위 패리티 값 (parity)를 기록합니다. 이걸 쉽게 이해하는 방법은 이렇습니다. (실제는 이렇지는 않고 일반인이 이해하기 쉬운 방법입니다.)


위에 예를 들어 제가 2개의 HDD에 2의 양과 2의 양의 데이터를 기록한다고 했지요? 그럼 이건 "양"을 의미한 것이고, 그 양이 담은 정보를 컴퓨터가 숫자로 따지면 각각 "5"라는 수와 "7"이라는 수로 나누어 저장했다고 칩시다. 즉 "5"라는 수와 "7"이라는 수를 각각 2bit의 데이터로 하나씩 저장했다고 생각해보는 겁니다.


그럼 이 5와 7을 더하면 5+7=12라는 수가 됩니다. 그럼 나머지 하나의 디스크에 똑같이 2bit를 사용해서 "12"라는 데이터를 기록하게 됩니다. 그럼 이 원래는 없는 데이터인 "12"가 패리티 값입니다. (그냥 이해를 돕기 위한 것이고 정확히는 데이터 블럭 A1 블럭 A2 블럭 A패리티 입니다) 그럼 무엇이 가능하냐


디스크 1   디스크 2   디스크 3

   5                 7               12


이렇게 기록이 되면, 실제 컴퓨터가 5와 7로 나누어진 데이터를 불러올 떄, 둘 중 하나의 디스크가 망가져도 문제가 없습니다. 왜냐면 패리티 값인 12가 기록되어 있으므로 추론이 가능하기 때문이지요. 즉 원래라면 컴퓨터는 디스크 1과 디스크 2의 5와 7을 불러서 데이터를 사용해야 하는데, 만약 디스크 2가 고장이 났다고 판정되면, 디스크 3의 패리티 값 12를 읽어서 거기서 5를 빼서 7을 구한 다음 디스크 2값을 유추해 사용할 수 있습니다. 그럼 실제로는 대개 4개 이상에 사용되므로


디스크 1   디스크 2   디스크 3   디스크 4

   5                 7               4               16


이렇게 되어도 됩니다. 즉 언데든 1개의 디스크에 대해서는 고장이 나도 가용성이 확보가 되는 것이지요. 헌데 실제로는 위의 RAID 0의 스트라이핑의 개념이 들어있기 떄문에


디스크 1   디스크 2   디스크 3   디스크 4

Data A1  Data A2   Data A3   Data AP

Data B1  Data B2   Data BP   Data B3

Data C1  Data CP   Data C2   Data C3

Data DP  Data D1   Data D2   Data D3


이렇게 데이터와 패리티를 분산저장하기 때문에 나름 스트라이핑의 성능도 얻을 수 있는 잇점이 있습니다. 즉 총 디스크 갯수 --1개의 용량으로 성능과 가용성을 동시에 보장받는 (단 고장은 1개까지만 커버 가능한 것이 한계점) 방식입니다.


그래서 앞서 제가 자작 NAS를 꾸미자는 글을 올렸을 때, RAID 5가 되야한다고 전제한 것이 바로 1. 가격대비 대용량의 저장장치를 구현하되 2. 3~4개의디스크에서 가용성이 확보되는 것 을 전제로 한 것이었습니다.


헐.. 벌써 2시가 넘어서 제가 이만 나가볼 시간이 되었네요.. 나머지는 다음에 시간 날 떄 이어서 써보도록 하겠습니다.

Camille 님의 게시글 댓글
SIGNATURE
.
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [19]
흐림없는눈
IP 121.♡.155.161
10-12 2019-10-12 15:34:20
·
RAID 5 - striping with parity를 말씀하시려는 걸까요? :)
친절한 설명 잘 봤습니다~
Camille
IP 223.♡.164.242
10-12 2019-10-12 16:42:47
·
아 맞는거 같습니다. 감사합니다.
백기사
IP 211.♡.97.10
10-12 2019-10-12 19:45:26
·
친절하게 설명한 글 추천드립니다.
다만, 잘못된 부분이 있어 말씀드립니다.

"이렇게 데이터와 패리티를 분산저장하기 때문에 나름 스트라이핑의 성능도 얻을 수 있는 잇점이 있습니다. 즉 총 디스크 갯수 --1개의 용량으로 성능과 가용성을 동시에 보장받는 (단 고장은 1개까지만 커버 가능한 것이 한계점) 방식입니다."

RAID5는 가용성 확보를 위한 가장 경제적인 구성일 뿐 성능면에서는 가장 떨어지는 방식입니다.
저장하는 방식을 잘 설명하셨으니, 그 방식을 보면 실제 성능 하락이 어디서 일어나는지 아실 껍니다.
간단하게 요약하면 JBOD 대비 가용성 UP, 실성능 DOWN입니다,

끝으로 어려운 연재를 시작하셨는데, 응원합니다~!!
Camille
IP 219.♡.148.80
10-13 2019-10-13 10:00:26 / 수정일: 2019-10-13 11:17:02
·
추천 감사합니다.

그 부분은 패리티 연산에 의한 write 성능 하락을 말씀 하신 것 같은데, 전통적인 시각에선 맞는 말씀이십니다. 좀 더 RIAD 본연의 부분을 다루는 강좌라면 패리티 연산에 따른 성능 하락을 먼저 다뤘어야 하는데, 원래 시작이 된 글이 자작 NAS 다 보니 글이 좀 두서가 없는? 부분이 되었습니다. 자작 NAS에선 꼭 그렇지민은 않습니다. 어제 급히 나가느라 글을 제대로 마무지를 못했는데, 일단 두가지 점에서 말씀 드리자면

1. 패리티 연산등의 이유로 Write 속도는 떨어지지만, Read속도는 Stripe이기 떄문에 빨라집니다. 이는 특정 상황 (일단 자료를 저장하고 대량 공유를 하는 상황) 에서 가용성까지 확보를 하는 상황이면 유리한상황 (즉 성능의 향상)입니다.

2. 자작NAS를 하는 이유중 하나가 (아래 RedFOX님의 댓글에 쓸 내용에 연계해서 읽어 주세요) 이젠 소프트웨어 레이드로 OS를 잘 선택하면 단일 볼륨으로 1개의 드라이브의 속도보다 RAID 5의 Write 속도가 빠르기 때문입니다. 윈두우즈는 전통적으로 CPU Usage를 Data Storage 연산에 제한을 두기 떄문에 RAID 5 속도는 망했어요.. 수준입니다만, CPU/램빨 올리고 특정 소프트웨어를 쓴 해킨토시나 헤놀로지는 꼭 그렇지는 않습니다. 그래서 RAID 5는 가용성에 촛점을 둔 것이라고 썼음에 덧붙여 성능의 향상이 있다고 쓴 것은 마지막에 쓸 글인 "시놀 vs. 헤놀 - 왜 자작을 하는가?" 에 대한 설명을 위해 달아둔 내용입니다.

https://www.softraid.com/forum/showthread.php?tid=921

이에 대한 다양한 테스트 글이 어디 있었는데... 원래 찾으려는 글을 못찾고 대신 참고가 될 만한 글을 올려드립니다.

4TB 1개의 하드를 200MB/s속도가 나오는 것을 다 체크해서 6개를 해킨토시로 RAID5로 묶었더니 읽기는 850-900MB/s, 쓰기는 250-350MB/s 나와서 이상하다고 질문글이 올라온 것입니다. 일단 이 자체로도 단일 드라이브보다 빠른 상태입니다.

그리고 댓글을 보면 서포트 쪽에서 4개 까진 이상이 없는데 5~6에서 이상있는 걸로 보아 SATA 포트 이슈인것 같아. 이상하네.. 라는 글이 나옵니다. 즉 원래는 더 나옵니다. 소프트웨어 RAID 5로 4개만 제대로 묶어도 단일 드라이브 떄 보다 성능 향상이 있는게 요즘 컴퓨팅 파워이고, 자작NAS나 헤놀로지를 고집하는 사람들의 한 부류입니다.

혹시 제가 놓친 부분이 있거나 다른 부분을 말씀 하신 것이라면 알려주십시오. 감사합니다.

백기사
IP 211.♡.97.10
10-13 2019-10-13 20:27:21 / 수정일: 2019-10-13 20:31:59
·
* 제가 드리는 말씀은 RAID자체에 대한 내용입니다. NAS환경에서의 RAID라는 것 자체가 하나의 특정 상황입니다.
NAS환경 자체가 이미 일정 수준의 외장 레이드카드라 볼 수 있습니다. NAS CPU/RAM을 온전히 Storage Controller로 활용 어줍짢은 RAID카드보다 훌륭한 환경일 수 있습니다. 따라서, JBOD와 RAID를 비교하기 위한 환경으로 Internal Storage Controller기준 단일 Disk와 RAID환경 기준으로 말씀드리겠습니다. 또한 SSD환경이 아닌 일반적인 HDD(SATA/SAS)환경을 기준으로 합니다.

말씀대로 특정 조건의 상황에서는 RAID5의 Read는 빠를 수 있습니다. (대용량 파일을 Burst하게 순차적으로 읽는 경우) 그러나 항상 빠르지 않다는 것이 문제입니다.

실사용 기준으로 본다면, 아래 파폭님께서 말씀하셨다시피 별도 레이드카드 없이는 일반적인 상황에서는 느린 경우가 많습니다. 특정환경에서 읽기속도가 빠른다고 한들 거의 모든 상황에서 발생하는 쓰기속도 저하에서 전체적인 성능 하락이 옵니다. 데이터 사이즈가 작을 수록 엑세스 빈도가 높을수록 더욱 그러하구요.

단순히 단일디스크에서는 100MB/s가 나왔는데 RAID5로 묶었더니 200MB/s가 나왔더라의 성능을 말씀드리는 것이 아닙니다. 단일디스크 대비 패리티 연산 딜레이과 Seek Time Latency로 인해 전체적인 엑세스 타임이 늘어남에 따라 전반적인 성능 하락이 이루어집니다.

정말 모든 환경에서 RAID5가 단일디스크 대비 빠르다면, 엔터프라이즈에서 서버 OS영역을 RAID5로 구성하겠죠.

Camille
IP 219.♡.148.80
10-14 2019-10-14 09:02:15
·
@백기사님

네. RAID의 특성만 놓고 보면 맞는 말씀입니다. 다만 이 강좌는 RAID를 가르치는게 아니라 "내가 NAS를 선택함에 있어서 or 자작을 함에 있어서 RAID에 대해 알아야 할 부분"을 다루는 것이고, 이전 글에서 댓글 어딘가에 달아뒀는데 시리즈 마지막에 "시놀 vs. 헤놀"로 끝맺는 부분이 "왜 자작 NAS를 하는 사람들이 있는가?"에 대한 부분이랑 맞물려 있다 보니, 아직 끝난 글이 아니라서 오해의 소지가 있네요.

그런데 말씀하신 OS영역을 가져오신 건 제가 쓰고자 하는 성능적 이점에 맞는 예시는 아닙니다. 이글은 NAS에 관한 글이고, 데이터 저장을 하고 남에게 공유하거나 활용을 위한 부분이니까, 그런 특정 활용 부분에서 RAID 5성능적 이점이 있을 수 있다면 가용성 이외에도 성능적 이점을 생각하고 자작을 하는 사람이 있다는 것을 쓰려는 것이 마지막 내용이다 보니 글이 중간에 잘려서 이렇습니다.

관심가져 주셔서 대단히 감사합니다.
삭제 되었습니다.
Camille
IP 219.♡.148.80
10-13 2019-10-13 10:28:05 / 수정일: 2019-10-13 10:31:02
·
아... 댓글 쓰다 다 날아갔.. ㅠㅠ

다시 써야 해서 그냥 줄여서 씁니다. (위의 백기사님 댓글과 연계해서 읽어 주세요) 나중에 어차피강좌로 다룰 내용이라.. 하드웨어 레이드가 빠른 건 완전 비싼 대기업용 아니면 예전 이야기입니다. 중가대 하드웨어 레이드는 소프트웨어에게 역전당한지 오래되서 거의 망했...ㅎㅎ 저도 3Ware 12포트 짜리 썼었는데.. 이미 10년도 전데 다 팔고 없앴습니다. 대략 인텔 기준 펜티엄 -> 코어 로 브랜딩이 넘어가는 시점부터 중가대 하드웨어 레이드와 소프트웨어 레이드의 Write 속도가 차이가 뒤집어 진 것 같습니다.

그리고 말씀대로 파일 시스템도 EXT4에서 btrfs로 넘어가고 있고, (시놀은 DSM 6부터 지원) 자작 NAS는 저렴이도 있지만 다양한 종류가 있어서 오히려 고성능으로 미친 성능을 뽑기도 합니다. 제가 처음 자작 NAS 제안하는 글에서 "기왕 비슷하면 좀 더 주고 고성능"을 따진 이유가, 저전력을 우선하지만 10W를 만족하면 그 안에선 좀 더 주고라도 쫌 더 나은 것을 구축하는 것이 당연히 낫기 때문인데, 그 중 주된 이유가 RAID 5를 구성을 선 전제했기 떄문에 패리티 연산 파워를 담보해야 하기 때문이었습니다.

그리고 어제 글을 쓰다 나가야 해서 다 못썼는데, 나머지 내용에서 RAID 6, RAID 10, 핫스페어 등을 다루고, 어떤 NAS를 선택하는 가에 대한 안내를 하려고 합니다. 이 때 말씀하신 뻑 사태와 복구 시간, 완전한 RAID 망실 위험, 백업의 중요성 등을 다룰 예정입니다.
플라타너스
IP 121.♡.32.222
10-13 2019-10-13 16:59:00
·
@Camille님 HW RAID컨트롤러는 아직도 빠릅니다. 10년도 넘은 3ware는 너무 오래된 이야기 아닐까요.
저렴하게 한다고 호스트RAID를 쓰길 원하면서 12G SAS를 대응할순 없으니까요.

Camille
IP 219.♡.148.80
10-13 2019-10-13 20:15:31 / 수정일: 2019-10-13 20:19:19
·
@플라타너스님
가격을 따지지 않고 말하면 당연히 HW 컨트롤러가 빠르지요. 3Ware를 예를 든 건 그 시기에 중저가 HW 컨트롤러들이 가성비를 잃어가기 시점이라 제시한 것이구요. 그 이후로 많은 회사들이 도태되고 현재는 중저가 컨트롤러는 겨우 명맥 유지 정도만 할 정도로 일반 유저가 구매할 만한 제품이 없는 것으로 알고 있습니다. 자작 NAS 하는 사람들도 HW 컨트롤러 구매는 거의 논외가 된지 오래됐구요. 어차피 강좌 맨마지막에 시놀로지급 NAS 시장과 왜 헤놀로지나 자작NAS를 하는 사람들이 있는가에서 다를 내용인데, HW 컨트롤러가 안쓰이는 이유는 가성비가 안나오고, 가성비를 맞추려 들면 소프트웨어가 보다 못합니다. 그러니 아이러니 하게도 시놀로지 (홈/중소 규모 오피스용) NAS에는 쓰고 싶어도 쓸 수 있는HW 컨트롤러가 없습니다. 본체 원가 가격이 30만원 수준의 제품에 그 이상 가격의 콘트롤러를 넣을 수는 없으니까요. (그럼 벌써 기업용 시장으로 바뀝니다.) 그래서 결국 소프트웨어가 HW가 보다 느리지 않거나 오히려 빠르다는 이야기는 어디까지나 가성비를 따졌을 때 이야기입니다.

이 강좌에서 다루고자 하는 분야는 시놀로지 2~6베이급 or 맥스 50만원 수준에 맞출 수 있는 (OS 제외) 자작 NAS에 한정하는 것입니다. 이 부분에서 쓸만한 HW 컨트롤러가 있는데 제가 놓치고 있는 것이 있다면 알려주시면 감사하겠습니다. (요즘은 시간이 없어서 잘 찾아보진 않아서, 의외로 어딘가엔 싸고 좋은 제품이 있을 수도 있으니까요.)
삭제 되었습니다.
Camille
IP 219.♡.148.80
10-17 2019-10-17 15:16:27 / 수정일: 2019-10-17 15:17:07
·
@님
아 하나가지고 싶죠. ㅋ 하지만 말씀대로 OS제약이 심한데다 AS 문제도 있고.. 결국 신품으로 자작하거나 중저가대에선 소트웨어어밖에 답이 안나오는게 현실이죠.. ㅎㅎ

사실 SAS 체인 하나 구성 하고 싶은데...

교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.
교재를 만들어야 합니다.


전 바쁩니다. ㅠㅠ
wjanny
IP 1.♡.40.70
10-12 2019-10-12 22:03:34
·
잘 보고갑니다!
Camille
IP 219.♡.148.80
10-13 2019-10-13 10:46:15
·
감사합니다.
하늘목장
IP 223.♡.130.149
10-13 2019-10-13 03:45:29
·
글 잘 쓰시네요 ㅎㅎ
저려미 백업 대안으로

주변에 대학생있으면 해당 메일 계정으로 구글 드라이브 백업도 괜찮습니다

업로드 속도 느리긴한번 해두면 드라이브1개로 raid 1 + 접근 까지 되지요...설마 구글이 망하겠습니까...
Camille
IP 219.♡.148.80
10-13 2019-10-13 10:45:55
·
감사합니다. 이 글빨로? 영어 교재 제작을 막 마무리.. 이제 제 이름을 단 영어교재가 나옵니다. ㅋ

안그래도 말씀하신 부분은 상당히 유용한 부분이고, 레이드 강좌 끝나고 백업을 다룰 떄 쓰려고 합니다.
태황무임중
IP 122.♡.20.21
10-14 2019-10-14 13:23:23
·
본문에서도, 토론가운데서도 많은 배움 얻고 갑니다.
번거롭고 시간도 걸릴텐데, 좋은 글 남겨주셔서 감사합니다.
짹짹쨱님
IP 211.♡.56.110
10-16 2019-10-16 10:45:36
·
유익하네요!
으잉을줄이면읭
IP 222.♡.149.88
10-22 2019-10-22 01:23:20
·
가끔 레이드의 목적을 잊는 분들이 계신데 레이드는 절대 백업이 아닙니다
레이드는 말그대로 서버 다운시간을 줄이는 용도지 데이터 백업 용도가 아닙니다
Camille
IP 219.♡.148.80
10-22 2019-10-22 10:30:51
·
맞습니다. 다만 1은 가용성적인 측면도 있고 안정성인 측면도 동시에 있다고 생각합니다. (물론 백업의 본질적인 용도에는 밎지 않습니다. 그래서 이 다음글에 미러링을 해도 백업은 별도로 필요할 수 있다고 따로 설명을 달아 놨습니다.) RAID5는 더더욱이나 가용성만 확보하는 것이지 안정성은 전혀 확보하는 것이 아니라 아예 언급을 안했구요.
goxgo
IP 222.♡.70.53
10-22 2019-10-22 13:52:55
·
엄청난 팁이네요
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.