[ETC] STORAGE, RAID
1 STORAGE
저장하는 장소, 즉 저장소를 뜻하는데 1차와 2차로 나뉘어져 있습니다.
1차 스토리지 | 비교 | 2차 스토리지 | |
액세스 속도 | > | ||
데이터 저장량 | < | ||
스토리지 종류 | 램, 롬, L1/L2캐시메모리 | 하드디스크, 디스켓, 집드라이브, RAID시스템, 홀로그래픽저장장치 |
1-2외장하드와 스토리지(Stroage)의 차이점
같은 저장소이지만 스토리지는 하드에 네트워크장치가 달려 여러 컴퓨터가 저장소를 공유하게 할 수 있다는 점에서 다릅니다.
1-3 STORAGE의 종류
- DAS(DIRECT ATTACHED STORAGE) : 직접연결스토리지
시스템에 직접 부착되어 운용되는 저장장치
>> 스토리지가 서버에 직접연결되어 네트워크상의 다른 서버는 저장된 데이터를 액세스할 수 없습니다. 독립적인 데이터액세스에 적합합니다.
- SAN(STORAGE AREA NETWORK) : 스토리지 전용 집중네트워크
서로 다른 종류의 데이터저장장치를 관련 데이터서버와 함께 연결해 별도의 네트워크를 구성해 저장데이터관리
>> 스토리지가 저장장치전용 네트워크를 이용하여 서버에 연결한다. 서버들 사이에 파일공유가 불가능합니다. 성능 및 운영관리에 유리하고 여러 서버가 단일 스토리지를 공유하며 각각의 독립된 할당을 받을 수 있습니다.
- NAS(NETWORK ATTACHED STORAGE) : 네트워크연결스토리지
파일시스템을 물리적으로 분산하여 통합관리하는 저장장치
>> 스토리지가 네트워크를 통하여 서버에 연결된다. 네트워크내의 컴퓨터가 동일공간 및 파일을 공유할 수 있고 구축이 용이하며 상대적으로 저렴하다
- IDE(Integrated Drive Electronics)
가장 오래된 규격이고 데이터를 병렬로 전송한다는 뜻에서 PATA(Parallel Advanced Tachnology Attachment)인터페이스라고 부르기도 한다. 버전별로 데이터 전송속도가 다르며 최신 규격인 UDMA6모드에서는 초당 133.3MB의 데이터를 전송한다.
- SATA(Serial Advanced Technology Attachment)
하드디스크 드라이브의 속도와 연결방식등을 개선하기 위해 개발되었다. SATA 1규격에서는 초당 150MB, SATA 2는 초당 300MB의 전송속도를 낸다. SATA2에서는 USB처럼 허브를 이용해 하나의 포트에 여러 개의 하드디스크를 연결할 수 있고 PC를 끄지 않고 장치를 연결하는 핫플러그 등의 기능이 추가되었다.
- SCSI(Small Computer System Interface)
서버나 워크스테이션 등에 쓰이는 고속 인터페이스다. 무엇보다 안정성이 높은 것이 최대 장점이지만 가격이 매우 비싸고 이 규격을 쓰려면 별도의 확장 카드를 달아야 한다. 최신 규격인 울트라 320은 최대 320MB/초의 속도를 낸다. 최근 이를 대체하는 SAS인터페이스가 등장하면서 쓰는곳이 조금씩 줄고 있다.
- SAS(Serial Attached SCSI)
SCSI규격을 한 단계 발전시킨 것으로 이 규격 역시 서버 등의 대형컴퓨터에 주로 쓰인다. 커넥터와 선은 SATA와 같은 것을 이용하지만 컨트롤러가 달라 SAS규격의 하드디스크가 SATA제품보다 훨씬 비싸다. SATA규격 하드디스크드라이브를 SAS장치에 꽂아서 쓸 수는 있지만 반대로 SAS하드디스크를 일반 SATA인터페이스에 연결하지는 못한다.
2 RAID
2-1 RAID란
여러개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술이다.
2-2 RAID방법
2-2-가 하드웨어적인 방법
별도의 어댑터 카드나 메인보드 속 내장 칩을 통해 RAID를 구성하는 경우를 말한다.
이 경우 운영체제에 이 디스크가 하나의 디스크처럼 보이게 한다.
2-2-나 소프트웨어적인 방법
주로 운영체제안에서 구현되며 사용자에게 디스크를 하나의 디스크처럼 보이게 한다.
운영체제는 여러 개의 디스크로 인식한다. 하드웨어적 구성에 비해 성능향상폭이 작고 안정성도 떨어진다.
2-3 RAID 레벨
레이드 구성에 있어서 우선 여러개의 하드디스크를 준비해야 한다. 여기서 디스크란 물리적 디스크, 즉 실제로 메인보드에 연결되는 하드웨어를 의미한다. 따라서 하나의 디스크를 논리적으로 나눈 '파티션'을 대상으로는 레이드를 구성할 수 없다.
- RAID 0 (스트라이프)
- 최소 드라이브 개수 : 2
- 최대 용량 : 디스크의 수 x 디스크의 용량
- 설명 : 데이터를 블럭으로 쪼개서 저장하는데 각 블럭은 다른 디스크로 나뉘어 저장된다.
'스트라이프 세트'라고도 한다. 즉, 여러 개의 디스크를 한 줄로 엮어 하나의 드라이브를 만드는 것이다.
- 장점 : 매우 빠르다. 데이터는 여러 개의 "모터(spindles)"로 스토리지에서 읽고 쓴다. 즉, I/O로드가 분산되는 것을 의미하기 때문에 매우 빠르다.
ex1) 4개의 HDD를 RAID 0으로 묶은 저장소가 있다고 한다. 이 때, A,B,C,D라는 데이터를 입력하면 HDD 1에 A, 2에 B, 3에 C, 4에 D를 입력하고, 불러들일 때도 각 1,2,3,4에 저장된 순으로 A,B,C,D를 불러들이기 때문에 I/O 로드가 1/4가 되어 속도가 4배가 된다. 이런식으로 하면 이론적으로 디스크를 추가하는 족족 성능은 향상되기 때문에 많이 추가하면 엄청난 성능을 낼 수 있다.
ex2) 500GB하드 두 개를 레이드0로 묶으면 1TB짜리 드라이브 하나가 생성된다. 디스크가 몇 개라도 관계 없다. 묶는 대로 용량은 증가한다. 주의해야 할 사항으로는 용량이 다른 하드디스크를 사용할 경우, 용량이 작은 디스크의 용량으로 하향되어 묶여진다. 예를 들면, 500GB와 1TB 하드를 RAID0으로 묶을 경우 1.5TB가 되는게 아니라 1TB가 된다.
- 단점 : 매우 위험하다. 드라이브가 하나라도 고장 나면 RAID0에는 어떤 안전장치도 없기 때문에 전체 디스크 배열이 고장날 수 있다. 그리고 디스크를 추가할수록 위험이 증가한다.
- RAID 1 (디스크 미러링)
- 최소 드라이브 개수 : 2
- 최대 용량 : 디스크의 용량
- 설명 : 스토리지에 저장되는 모든 데이터는 N개의 물리적인디스크에 각각 저장되고 모든 데이터는 중복된다. 서버 또는 연구목적 PC에서 혹시 모를 데이터손실에 대비하기위해 사용한다.
- 장점 : 드라이브 하나가 고장나면 똑같은 내용의 다른 드라이브가 하나 더 있기때문에 매우 안전하다. RAID1은 읽기성능이 단일드라이브에서의 성능과 같거나 훨씬 좋다.
- 단점 : 각 드라이브는 미러링되기 때문에 전체 용량의 절반밖에 사용하지 못한다. 드라이브 두 개에 동일한 데이터를 써야 하기 때문에 쓰기성능이 나쁘다.
- RAID 2(안 쓰인다)
- 설명 : 오류정정부호(ECC)를 기록하는 전용의 하드디스크를 이용해서 안정성을 확보한다. RAID2는 비트단위에 Hamming code를 적용한다. 때문에 하나의 멤버 디스크가 고장나도 ECC를 이용하여 정상적으로 작동할 수 있지만 추가적인 연산이 필요하여 입출력 속도가 매우 떨어진다.
- 사용하지 않는 이유 : 모든 I/O에서 ECC계산이 필요하므로 입출력병목현상이 발생하며, ECC기록용으로 쓰이는 디스크의 수명이 다른 디스크들에 비해 짧아지는 문제가 있어 현재는 사용하지 않는다.
* 패리티
Data의 오류검출 확인에 사용되는 개념. 정보블록과 연결된 중복정보. 패리티는 오류 후 데이터를 재구축하는데 사용되는 계산된 값이다.
- RAID3
- 최소 드라이브 개수 : 3
- 최대 용량 : (디스크의 수 - 1) x 각 디스크의 용량
- 설명 : 데이터는 바이트 단위로 쪼개져서 모든 디스크에 균등하게 나뉘어 저장되고 패리티 정보는 별도의 전용 디스크에 저장된다.
- 장점 : 한 개의 드라이브가 고장 나는 것을 허용하며 순차적 쓰기성능과 순차적 읽기성능이 우수하다.
- 단점 : 잘 사용되지 않고 문제를 해결하는 것이 어려울 수 있다. 패리티 디스크가 Fail되면 복구가 불가능하기 때문이다. 하드웨어 RAID가 되어야 실제로 쓸만하다. RAID3은 보통 매우 효율적이지만 임의 쓰기성능이 나쁘고 임의 읽기성능은 꽤 좋다.
- RAID 4
*RAID3과 RAID4의 차이점
RAID3은 Byte단위로 데이터를 저장하는 반면 RAID4는 Block단위로 저장한다.
Block단위로 저장을 할 경우 작은 파일의 경우는 한번의 작업으로 데이터를 읽을 수 있기 때문
에 성능향상의 장점이 있다. 또한 레벨 3은 동기화를 거쳐야 하기 때문에 3보다는 레벨 4를 많
이 사용한다.
- RAID 5
- 최소 드라이브 개수 : 3
- 최대 용량 : (디스크의 수 - 1) x 디스크의 용량
- 설명 : RAID 4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다.
- 장점 : 지원하는 회사가 많고 한 개의 드라이브가 고장 나는 것을 허용한다. RAID3과 4의 단점을 보완한 형태이며 고급 Raid Controller에서 현재 많이 쓰이고 있는 형태이다. 이는 별도의 ECC드라이브를 두지 않고 각 드라이브에 분산되어 ECC드라이브에 대한 병목현상을 막아주며 ECC를 위한 알고리즘때문에 성능면에서는 여전히 Raid 0보다 떨어지지만 성능, 안정성, 용량의 세 부분을 고려한 형태이다.
- 단점 : 디스크 재구성(rebuild)이 매우 느리고 쓰기 성능은 패리티 정보를 끊임없이 갱신해야 하기 때문에 우수하다고 할 수는 없다.
- RAID 6(각 디스크에 패리티 정보가 두 번 독립적으로 분산된다)
- 최소 드라이브 개수 : 3
- 최대 용량 : (디스크의 수 - 2) x 디스크의 용량
- 설명 : RAID4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다.
- 장점 : 두 개의 드라이브까지 고장 나는 것을 허용하고 읽기 성능이 우수하고 매우 중요한 경우에 적합하다.
- 단점 : 쓰기 성능은 패리티를 여러 번 갱신해야 하기 때문에 RAID 5보다 매우 나쁘다.
디스크를 재구성하는 동안에 성능이 매우 나빠질 수 있다.
* 추가 RAID01과 RAID10 비교
RAID01(스트라이프하고 미러링)
RAID10(미러링하고 스트라이핑)
1. 안정성의 차이
RAID0+1의 경우 만약 HDD1이 고장 났을 때 HDD 1,2,3이 사용할 수 없게 된다.
하지만 RAID10의 경우에는 HDD1이 고장나도 HDD2만 사용 못할 뿐이다.
2. 복구에 걸리는 시간의 차이
RAID 0+1의 경우에는 만약 HDD1이 고장 났을 때, HDD 4,5,6의 내용을 HDD 1,2,3에 통째로 붙여 넣어야 하기 때문에 REBUILD시간이 오래걸린다. 하지만 RAID 10의 경우에는 HDD1이 고장나도 HDD2의 내용만 붙여넣으면 되기 때문에 REBUILD시간이 RAID 0+1에 비해 덜 소요된다.
[참고.1] RAID 각 레벨별 설명, 장점, 단점