500 likes | 824 Vues
제 7 장 고성능 입출력시스템 구조. 7.1 I/O 서브시스템 설계의 주요 사항들 7.2 I/O 시스템 구조의 사례 분석 7.3 RAID 7.4 디스크 캐쉬. 개 요. 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 컴퓨터의 응용분야 확대 : 온라인 트랜잭션 , 웹 I/O, 멀티미디어 데이터 처리 , 분산처리 응용 , 등 I/O 통신량 증가 대규모 병렬컴퓨터에서 I/O 서브시스템이 성능 병목 I/O 서브시스템의 중요성 증가.
E N D
제7장고성능 입출력시스템 구조 7.1 I/O 서브시스템 설계의 주요 사항들 7.2 I/O 시스템 구조의 사례 분석 7.3 RAID 7.4 디스크 캐쉬
개 요 • 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 • 컴퓨터의 응용분야 확대 : 온라인 트랜잭션, 웹 I/O, 멀티미디어 데이터 처리, 분산처리 응용, 등 I/O 통신량 증가 대규모 병렬컴퓨터에서 I/O 서브시스템이 성능 병목 • I/O 서브시스템의 중요성 증가 Parallel Computer Architecture
7.1 입출력서브시스템 설계의 주요 사항들 7.1.1 I/O 네트워크의 구성 • I/O 네트워크 : I/O 장치와 프로세서 및 주기억장치 사이의 데이터 이동을 위한 상호연결망 • 분산-기억장치 다중프로세서시스템의 구성 요소들 • 계산 노드(compute node) : 프로세서와 기억장치로 구성되며, 일반적인 프로그램 처리 • I/O 노드(I/O 노드) : 프로세서와 기억장치 및 I/O 장치 인터페이스로 구성되며, 계산 노드들로부터의 I/O 요구를 처리 • 계산 노드들과 I/O 노드들 간의 상호 연결 방식 필요 Parallel Computer Architecture
I/O 노드들의 접속 방법 • I/O 노드들을 상호연결망에 직접 접속 [장점] 하드웨어가 간단 [단점] 전체 상호연결망의 통신량 증가로 시스템 성능 저하 burst mode의 I/O 통신으로 인하여 일반적인 통신 지연 증가 • 전용 I/O 네트워크(dedicated I/O network)의 사용 [장점] 상호연결망의 통신량을 증가시키지 않음 [단점] 하드웨어 복잡, 비용 증가 • I/O 노드들을 상호연결망의 일부 지점에 접속 [장점] 위의 두 방법의 단점 보완 [요구사항] I/O 노드의 수 및 접속 지점 결정 필요 연결성(connectivity), 대역폭, 비용 간의 tradeoff로 결정 Parallel Computer Architecture
7.1.2 I/O 장치의 관리 • I/O 노드로 사용할 노드들의 위치에 따라, 각 I/O 노드가 관리할 I/O 장치의 종류와 수의 결정 필요 • I/O 관리 방식에 따른 시스템 구성 • 중앙집중식: 하나의 I/O 노드에게 모든 I/O 관리 기능을 집중시키는 방법 [장점] H/W 간단, [단점] I/O 노드가 성능 병목이 될 위험 • 완전 분산식: 모든 노드들에게 I/O 관리 기능을 완전히 분산시키는 방법 [장점] 성능 병목 방지, [단점] 비용 증가 • 전용 I/O 노드 사용: 몇몇 노드들만 전용 I/O 노드로 지정하는 방법 [장점] 시스템 구성 변경 용이, I/O 노드의 구성 다양화 가능, 계산 노드들의 속도가 개선됨 (I/O 기능을 수행하지 않으므로) Parallel Computer Architecture
I/O 장치 관리를 위한 시스템 구성 방법들 Parallel Computer Architecture
7.1.3 I/O 노드의 배치 • 병렬컴퓨터시스템 내에서 I/O 노드 배치(placement) 방식 • I/O 노드들만 별도의 클러스터(cluster)로 묶어두는 방법[장점] I/O 트래픽이 일반적인 프로세서간 통신에 미치는 영향이 적음[단점] I/O 노드로의 경로가 병목이 됨 • I/O 노드들을 네트워크 내의 적절한 위치들을 선정하여 분산 배치[장점] 경로 병목 현상 완화됨[단점] I/O 통신이 프로세서간 통신을 지연시킬 우려 있음 해결책 : 하이퍼큐브에서 해밍 코드를 이용한 I/O 배치 (그림 7-2) • I/O 노드들을 네트워크 내 임의의 위치에 배치[특징] I/O 노드의 위치가 성능에 별 영향을 주지 않는 경우에 사용가능 Parallel Computer Architecture
[예] 하이퍼큐브에서 최적 I/O 노드 배치 방법 • 8 개 노드들 중 두 개가 I/O 노드 • 모든 계산 노드들이 어느 한 I/O 노드와 직접 접속 • N 차원 하이퍼큐브에 대해서도 적용 가능 Parallel Computer Architecture
7.2 I/O 서브시스템 구조의 사례 분석 7.2.1 중형급 서버 • 단일-버스 다중프로세서시스템 : I/O 프로세서 이용 Parallel Computer Architecture
7.2.2 대형 메인프레임컴퓨터 • IBM 메인프레임의 I/O 구조 : CPU와 디스크들간에 다중 통로 구성 I/O 대역폭 및 디스크 이용 효율 향상 Parallel Computer Architecture
7.2.3 CRAY Y-MP 슈퍼컴퓨터 • 네 개의 IOP들 사용 • MIOP : 시스템 운영자 터미널 접속 • BIOP & DIOP : 고속 I/O 장치(디스크) 관리 • XIOP : 저속 I/O 장치 관리 (블록 멀티플랙싱 지원) Parallel Computer Architecture
7.2.4 IBM RP3 병렬컴퓨터 • 최대 512개의 프로세서로 구성되는 대규모 병렬컴퓨터 • 오메가 네트워크를 이용한 공유-기억장치 시스템 구조 • 다중-디스크 I/O 시스템으로 구성 : 8개의 프로세서들로 구성되는 클러스터 당 한 개씩의 ISP(I/O and Support Processor) 배치 클러스터 내 I/O 요구 처리 Parallel Computer Architecture
RP3 병렬컴퓨터의 I/O 서브시스템 구조 Parallel Computer Architecture
7.2.5 Intel iPSC • 하이퍼큐브 구조를 기반으로 한 병렬컴퓨터 • iPSC/2 및 iPSC/860 시스템의 I/O 구조 : 선택된 특정 노드(I/O node)들만디스크 액세스 기능을 담당 (I/O 노드 : SCSI 인터페이스 포함) Parallel Computer Architecture
하이퍼큐브-기반 병렬컴퓨터 (계속) • nCUBE 시스템: 하이퍼큐브-기반 병렬컴퓨터 • 별도의 I/O 네트워크를 통하여 I/O 노드 보드 접속 • I/O 통신 : I/O 노드들이 DMA 채널을 통하여 계산 노드들과 통신 Parallel Computer Architecture
nCUBE 시스템 (계속) • I/O 노드 : I/O 프로세서, SCSI 어뎁터 및 DMA 제어기 포함 [단점] 네트워크 추가 H/W 복잡 [장점] 계산 노드는 계산 작업만 전담 계산 노드간 통신이 I/O 트래픽에 영향을 받지 않음 시스템 확장 용이 : I/O 보드 추가로 가능 Parallel Computer Architecture
7.2.6 Intel Paragon • Paragon XP/S : Intel사의 4세대 분산-기억장치 다중프로세서시스템 • 매쉬 네트워크 이용 • 시스템 확장 : 행 혹은 열 단위로 노드 수 확장 • I/O 노드 • 매쉬 네트워크의 행 단위로 추가 • 고성능 인터페이스(HIPPI, SCSI 등) 제공 Parallel Computer Architecture
Intel Paragon XP/S의 I/O 구조 Parallel Computer Architecture
7.2.7 MasPar MP-1 • 계산 위주의 응용들(시뮬레이션, 영상처리 등)을 고속 처리하기 위한 병렬컴퓨터시스템 • SIMD형 분산-기억장치 다중프로세서시스템 • 클러스터 : 16개의 PE들이 2차원 4x4 매쉬 (X-net) 구조로 연결 • 프로세서 보드 : 64개의 PE 클러스터들로 구성 • 시스템 내 최대 클러스터 수 : 1024개 (16 프로세서 보드) 최대PE 수 = 16K 개 • 클러스터 간 네트워크 : 다단계 크로스바스위치 네트워크 (그림 6-31참조) Parallel Computer Architecture
MasPar MP-1시스템의 I/O 구조 • I/O 접속: 디스크 캐쉬에 해당하는 I/ORAM(SSD) 및 각종 I/O 인터페이스들을 포함하는 I/O 채널 이용 Parallel Computer Architecture
7.2.8 CM-5 • Thinking Machine사에 의해 개발된 병렬컴퓨터 • 패트 트리(Fat tree) 상호연결망을 통하여 SPARC 프로세서 노드들을 접속 • 노드들의 일부분은 계산 노드로, 일부분은 전용 I/O 노드로 사용 • I/O 노드들은 트리 구조의 한 파티션(partition)에 접속되며, PM(Partition Manager)에 의해 관리됨 • I/O 노드 : 프로세서, 버퍼 기억장치, CM-5 인터페이스 및 I/O 버스 인터페이스 포함 • 용도에 따라 디스크 노드, HIPPI-네트워크 노드, 테이프 노드라고 불림 Parallel Computer Architecture
CM-5 병렬컴퓨터의 I/O 구조 Parallel Computer Architecture
7.3 RAID • 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 • 프로세서의 속도 : MIPS = 2 year-1984 • 칩당 집적도 : 칩당 트랜지스터의 수 = 2 year-1964 • 디스크 저장 밀도 : 평방 인치 당 저장되는 비트의 수 MAD(Maximum Areal Density) = 10 (year-1971)/10 • 디스크 액세스 속도 : 매년 5~10% 향상 주기억장치 속도의 1/105 • 디스크 저장밀도의 증가에 따라 지난 10년간 디스크 탐색시간 : 1/10로 단축 • 회전 구동장치 속도: 7200, 10000, 15000, 20000 rpm으로 증가 회전 지연시간 단축 Parallel Computer Architecture
7.3.1 RAID 출현의 배경 • 디스크 배열(Disk array) • 여러 개의 디스크들을 하나의 그룹으로 구성하여 액세스의 병렬성을 높이면서도 사용자에게는 한 개의 논리적 디스크 유니트로 보이게 하는 기술 • 장점 • 디스크 입출력의 대역폭을 높일 수 있다 • 여러 개의 입출력 요구들을 병렬로 처리할 수 있다 • 디스크 인터리빙(disk interleaving; disk striping) • 연속적으로 배열되어 있는 디스크들에 각 데이터 블록을 비트, 바이트 혹은 블록(block) 단위로 분산 저장하는 방식 • 동시 액세스 및 병렬 전송 가능 데이터 전송 속도 향상 Parallel Computer Architecture
디스크 인터리빙을 이용한 분산저장 Parallel Computer Architecture
대형 디스크와 디스크 배열의 특성 비교 • 디스크 배열의 MTTP(Mean Time To Failure) • (단일 디스크의 MTTP) / (배열 내의 디스크들의 수) • MTTR(Mean Time To Repair) Parallel Computer Architecture
7.3.2 RAID의 종류 • Redundant Array of Inexpensive Disk • 많은 수의 값싼 디스크들을 디스크 배열 기술 방식에 기반한 배열 구조로 연결하고 하나의 유니트로 패키지화 함으로서 신뢰도와 전송 대역폭을 향상시키는 기술 • 저렴한 가격으로 더 큰 용량을 가진 디스크 시스템을 구성 가능 • 결함 허용 능력을 높이면서도 동시 액세스 가능한 RAID 조직 연구 Parallel Computer Architecture
RAID의 종류 D = 데이터가 저장되는 디스크들의 전체 수 (검사 디스크는 제외) G = 한 그룹내의 데이터 디스크들의 수 (검사 디스크는 제외) C = 한 그룹내의 검사 디스크들의 수 NG = D/G = 그룹들의 수 • RAID-1 : disk mirroring, G=1, C=1 • RAID-2 : bit interleaving, Hamming code, 2C–1 ≤ G+C • RAID-3 : parity, C=1 • RAID-4 : block interleaving , C=1 • RAID-5 : rotated parity, C=1 • RAID-6 : 2-dimensional parity, C=2 Parallel Computer Architecture
Non-Redundant (RAID Level 0) Mirrored (RAID Level 1) Memory-Style ECC (RAID Level 2) RAID의 종류 Parallel Computer Architecture
Bit-Interleaved Parity (RAID Level 3) Block-Interleaved Parity (RAID Level 4) Bit-Interleaved Distributed-Parity (RAID Level 5) P+Q Redundancy (RAID Level 6) RAID의 종류 Parallel Computer Architecture
RAID-1 • 디스크 반사(disk mirroring) 방식 • 각 디스크 그룹이 한 개의 데이터 디스크와 그 디스크의 내용이 중복 복사되어 있는 검사 디스크로 구성 (G=1, C=1) 50% 오버헤드 • Tandem사의 NONSTOP 컴퓨터 Parallel Computer Architecture
RAID-2 • 비트-단위 인터리빙 및 검사 디스크 사용 • 검사 디스크의 수는 해밍 코드의 원리에 따라 결정2C–1 ≥ G+C • G=8인 경우, C=4 50% 오버헤드 • G=16인 경우, C=5 31% 오버헤드 • 검사 디스크 수(C)는 log2G에 비례 Parallel Computer Architecture
RAID-2 (계속) • 해밍 코드법에 기반을 둔 디스크 배치도 (예: 데이터 비트 수 = 8) Parallel Computer Architecture
RAID-2 (계속) • 검사 비트의 계산 • C8 = • C4 = • C2 = • C1 = • 신드롬 단어(syndrome word) : 원래(저장 시) 데이터에 대한 검사 비트들과 다시 읽은 후의 데이터에 대한 검사 비트들 간의 exclusive-OR 결과값. • 신드롬 단어 =0 이면, 오류 없음 • 신드롬 단어 /=0 이라면, 그 값이 오류가 발생한 비트의 위치를 가리킴 오류 정정 Parallel Computer Architecture
RAID-3 • 패리티 디스크 사용 • 그룹 당 한 개의 패리티 디스크 사용 (C=1) • G=10인 경우, C=1 10% 오버헤드 • G=25인 경우, C=1 4% 오버헤드 [예] 두 번째 디스크 오류 발생시 b2= p ⊕ b1⊕ b3⊕ b4 • 문제점 : 매 쓰기 동작 때마다 패리티 비트의 갱신 필요 병목 현상 발생 Parallel Computer Architecture
RAID-4 • 블록-단위 인터리빙 • 한 개의 블록을 분산 저장하지 않고 한 개의 디스크에 저장 • 그룹 당 여러 개의 데이터 전송 통로들을 제공해 줌으로써, 즉 전송 동작에 병렬성을 추가함으로써 전송률(transfer rate)을 개선 • RAID-3 구조에서 인터리빙 단위를 블록(섹터)로 변경 • 장점 : 단일 디스크의 읽기 동작에 병렬성 구현 • 단점 : 작은(한 블록) 쓰기 동작에 두 개의 디스크를 사용하며, 네 번의 액세스 필요 Parallel Computer Architecture
RAID-4 (계속) [예] B2가 새로운 내용 B2’로 변경되는 경우, 새로운 패리티 블록 계산 :P’ = B1⊕B2’⊕B3⊕B4 세 번의 디스크 읽기 & 두 번의 쓰기 필요 (디스크 수가 증가하면, 액세스 수도 증가)P’ = B1⊕B2’⊕B3⊕B4⊕(B2⊕B2) = (B1⊕B2⊕B3⊕B4)⊕B2⊕B2’ = P⊕B2⊕B2’ 두 번의 디스크 읽기와 두 번의 디스크 쓰기 필요(전체 디스크의 수에 관계없이 항상 동일) Parallel Computer Architecture
RAID-5 • 회전 패리티(rotated-parity) 방식 • 패리티 정보를 그룹 내 모든 디스크들로 분산 저장하는 방식 (라운드-로빈) • RAID-3에서 발생되는 병목 현상을 개선한 구조 • 장점 : 패리티 갱신을 포함하는 쓰기 동작의 병렬처리 가능 병렬성 = (G+1)/2 Parallel Computer Architecture
RAID-6 • 2차원 패리티(2-dimensional parity) 방식 • RAID-5에 열에 대한 패리티 외에 행에 대한 패리티 추가 • 장점 : 2개 이상의 디스크에 결함이 발생하여도 회복 가능 • 단점 : 한번의 쓰기 동작에 6번의 액세스 동작 필요 Parallel Computer Architecture
RAID 조직의 비교 • 입출력 요구의 블록 크기에 관계없이 좋은 성능을 보이는 조직 : RAID-1, RAID-5 • 작은 블록의 읽기와 쓰기가 많은 환경 RAID-1 • 용량과 비용을 중요시하는 응용이나 큰 블록에 대한 입출력 요구가 많은 경우 RAID-5 • 가격 대 성능 비 측면 RAID-5가 가장 우수 Parallel Computer Architecture
7.4 디스크 캐쉬 (Disk Cache) • 목적 : 프로세서와 입출력 시스템 간의 속도 차이를 줄이기 위해 • 주기억장치와 디스크 사이에 위치한 반도체 기억장치(RAM) • 디스크에 저장된 내용 중의 일부분을 저장하는 버퍼(buffer) • 일반적인 캐쉬와 동작상의 원리는 유사 Parallel Computer Architecture
디스크 캐쉬의 설계에서 고려해야 할 사항들 • 디스크 캐쉬의 용량(capacity) • 디스크 캐쉬의 위치(location) • 블록 크기(block size) • 인출 크기(fetch size) • 쓰기 정책(write policy) • 동적 ON/OFF • 오류 회복(error recovery) 기능 • 신뢰도(reliability) Parallel Computer Architecture
디스크 캐쉬의 설계 1) 디스크 캐쉬의 용량(capacity)과 위치(location) • 용량이 커짐에 따라 적중률이 높아지고, • 같은 크기의 용량에 대하여는 프로세서에 가까이 위치할수록 적중률이 높다 Parallel Computer Architecture
디스크 캐쉬의 설계 (계속) 2) 블록의 크기 • 캐쉬의 용량이 적을 때는 블록의 크기도 작을수록 적중률이 높고, • 캐쉬의 용량이 증가하면, 블록의 크기가 커짐에 따른 적중률 향상 가능 일반적으로 블록 크기가 한 트랙의 크기와 같은 경우가 가장 적절 3) 선인출 방식 (prefetch) • one-block lookhead(OBL) : 블록(i)를 읽어올 때, 블록(i +1)도 인출 • 일반적으로 선인출하는 블록 개수의 변경이 가능하도록 하는 것이 적절 • 블록이 순차적으로 사용되지 않는 경우에는 효율 저하 4) Purge Behind 교체 알고리즘 • 블록(i )가 사용된 후에는 블록(i -1)을 즉시 캐쉬로부터 제거함으로써 캐쉬 공간 확보 : 거의 사용되지 않음 Parallel Computer Architecture
디스크 캐쉬의 설계 (계속) 5) 쓰기 정책 • write through • write back 6) 캐쉬의 동적 ON/OFF (연구 중) • 경우에 따라, 디스크 캐쉬가 성능을 저하시키는 원인이 될 수 있음(예: 디스크 트랙상에 하나의 큰 블록 형태로 저장되어 있는 파일 액세스 과정에서 캐쉬 적재 I/O 트래픽 증가, I/O 액세스 시간 증가) • 동적으로 디스크 캐쉬를 ON/OFF하는 방법 : 캐쉬가 스스로 미스율(miss rate)과 쓰기 비율(write ratio)을 검사하여 만약 이 값들이 높으면 캐쉬가 자신을 OFF하고, 성능이 충분히 회복된 후에 다시 기능을 ON 시킴 Parallel Computer Architecture