5 부 분산 시스템(Distributed Systems) -15. 네트워크 구조(Network Structures)
제 5 부 분산 시스템(Distributed Systems)
15. 네트워크 구조(Network Structures)
▶ 여러 개의 물리적 프로세서(physical processor)들 사이에 연산을 분산시키는 방법
① 강 결합(tightly coupled) 시스템
- 프로세서들은 기억장치(memory)와 클록(clock)을 공유
- 통신은 주로 공유된 기억장치를 통하여 일어남
② 약 결합(loosely coupled) 시스템
- 프로세서들은 각자 고유의 국소 기억장치와 클록을 지님
- 통신은 고속의 버스나 전화선과 같은 통신 라인을 통하여 일어남
15.1 배경(Background)
▶ 분산 시스템: 통신 네트워크를 통하여 서로 약 결합된 프로세서들의 집합
- 지역(local) 자원: 그 프로세서가 가지고 있는 자원
- 원격(remote) 자원: 다른 프로세서들 및 그들이 가지고 있는 자원
▶ 분산 시스템의 프로세서: 사이트(site), 노드(node), 컴퓨터(computer), 기계(machine)
→ 마이크로 컴퓨터, 워크스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터 등
- 서버(server): 자원을 가지고 있는 사이트
- 클라이언트(client): 그 자원을 사용하는 사이트
[그림 15.1] 분산 시스템
▶ 자원 접근 기법
① 네트워크 운영체제: 사용자는 시스템의 다양성을 알고 있어야 함
→ 해당 원격 시스템에 로그인하든지, 또는 원격 시스템으로부터 자료를 전달받음
② 분산 운영체제: 사용자는 시스템의 다양성을 이해할 필요 없음
→ 지역 자원들을 접근하는 방법과 동일한 방법으로 원격 자원들을 접근
15.2 동기(Motivation)
▶ 분산 시스템의 목적: 자원 공유, 연산 속도 향상, 신뢰성, 통신
15.2.1 자원 공유(Resource Sharing)
연결
사이트 A 사이트 B
파일 레이저 프린터
▶ 분산 시스템에서의 자원 공유 방식
- 파일의 공유
- 분산 데이터베이스에서의 정보 처리
- 원격 사이트에서의 파일 인쇄
- 원격 특수 목적의 하드웨어 사용
15.2.2 연산 속도 향상(Computation Speed-up)
▶ 특정 연산이 동시 수행 가능한 다수의 부 연산(sub-computation)으로 분할될 수 있는 경우
→ 여러 사이트에 연산을 분산시켜 유용성(availability)을 높임
▶ 특정 사이트가 현재 너무 많은 작업으로 과부하(overload) 상태인 경우
→ 일부 작업을 덜 부하가 걸린 사이트로 이동시켜 부하 공유(load sharing)를 함
15.2.3 신뢰성(Reliability)
▶ 분산 시스템의 구성
- 자치 시설들(autonomous installations)로 구성된 경우: ex) 범용 컴퓨터
→ 하나의 고장을 극복할 수 있음
- 각 기능을 책임지는 작은 기계들로 구성된 경우: ex) 터미널 문자 입출력, 파일 시스템 등
→ 하나의 고장이 전체 시스템의 고장임
▶ 일반적으로 시스템 내에 같은 종류의 하드웨어와 자료를 여러 개 중복시킨다면, 사이트들의 일부가 고장난다 할지라도 시스템은 계속 동작될 수 있음
- 사이트의 고장을 시스템에 의해 감지될 수 있어야 함
- 시스템은 고장난 사이트에 대한 서비스를 더 이상 사용해서는 안됨
- 고장난 사이트를 대행하는 사이트에 기능이 올바르게 이동되었는지 확인하여야 함
- 회복 또는 수리된 사이트가 체제 내에 무리 없이 포함될 수 있는 기법이 있어야 함
15.2.4 통신(Communication)
▶ 여러 사이트들이 통신 네트워크를 통해 연결되어 있으면, 다른 사이트에 있는 사용자들은 정보를 교환할 수 있음
→ 시스템간의 메시지 전송은 단일 컴퓨터 내에서의 메시지 전송과 유사함
ex) 파일 전송, 로그인, 메일, 원격 프로시저 호출 등
▶ 분산 시스템의 장점들은 다운사이징(downsizing)이라는 산업화 경향을 탄생시킴
→ 메인 프레임을 워크스테이션이나 개인용 컴퓨터로 구성된 네트워크로 구성
(장점) 비용 감소, 자원 관리의 유용성과 확장성, 우수한 사용자 인터페이스, 손쉬운 유지 보수
▶ 메시지 전송 방식의 운영체제는 분산 시스템으로 쉽게 확장될 수 있음
15.3 위상(Topology)
▶ 시스템 내의 사이트들이 연결되는 물리적 방법의 비교 기준
① 기본 비용: 시스템 내의 여러 사이트들을 연결하는데 드는 비용
② 통신 비용: 사이트간에 메시지를 전달하는데 드는 비용
③ 신뢰성: 시스템 내의 링크나 사이트가 고장날 경우, 나머지 사이트들 간의 통신 가능 여부
▶ 위상의 표현: 그래프
- 노드(node): 사이트(site)
- 간선(edge): 사이트간의 직접 통신 경로
15.3.1 완전 연결 네트워크(Fully Connected Networks)
▶ 개념: 각 사이트가 시스템 내의 다른 모든 사이트와 직접 연결되는 형태
[그림 15.2] 완전 연결 네트워크
- 기본 비용: 모든 두 사이트간의 연결로 매우 비쌈 ∝ (사이트 수)2
- 통신 비용: 임의의 두 사이트간의 메시지 전달이 단 한번의 링크 사용으로 처리되므로 매우 신속
- 신뢰성: 많은 수의 링크가 고장나야 시스템이 분할되기 때문에 신뢰성이 매우 높음
15.3.2 부분 연결 네트워크(Partially Connected Networks)
▶ 개념: 일부 사이트 사이에만 직접 연결이 존재하는 형태
[그림 15.3] 부분 연결 네트워크
- 기본 비용: 완전 연결 네트워크보다 저렴
- 통신 비용: 완전 연결 네트워크보다 느림
ex) A→D vs A→B→C→D
- 신뢰성: 완전 연결 네트워크보다 떨어짐
→ 네트워크의 분할 가능성이 높음
ex) 의 고장 → 분해: A,B,E ↔ C,D
→ 분할 가능성을 낮추기 위해, 각 사이트가 적어도 두 개의 다른 사이트와 연결되게 하는 방법
ex) 링크의 첨부
15.3.3 계층 네트워크(Hierarchical Networks)
▶ 개념: 트리 구조의 연결 형태
[그림 15.4] 트리 구조 네트워크
- 기본 비용: 일반적으로 부분 연결 기법보다 낮음
- 통신 비용: 일반적으로 부분 연결 기법보다 느림 → 공통의 조상 노드를 통해 메시지를 전달
- 신뢰성: 낮음 → 단말 노드를 제외한 노드의 고장은 분할을 초래
ex) 회사의 컴퓨터 네트워크
15.3.4 성형 네트워크(Star Networks)
▶ 개념: 특정의 한 사이트만이 다른 모든 사이트와 직접 연결이 존재하고, 그 외 사이트들은 서로 연결되지 않은 형태
[그림 15.5] 성형 네트워크
- 기본 비용: 사이트 수에 비례
- 통신 비용: 최대 2개의 링크 이동만 소요, 그러나 중심 사이트에서의 병목 현상으로 속도 저하됨
→ 이동 회수 감소, 이동 시간 증가
- 신뢰도: 중앙 사이트에 고장이 발생하면 네트워크는 완전히 분할됨
15.3.5 링 네트워크(Ring Networks)
▶ 개념: 각 사이트가 정확히 다른 두 사이트와 물리적으로 연결되는 형태
→ 정보 전달의 방향: 단방향(unidirectional) 또는 양방향(bidirectional)
[그림 15.6] (a)
- 기본 비용: 사이트 수에 비례
- 통신 비용: 매우 높음
1) 단방향의 경우: 최대 n-1번의 메시지 전송 소요
2) 양방향의 경우: 최대 n/2번의 메시지 전송 소요
- 신뢰도: 낮음
1) 단방향의 경우: 한 사이트 고장 → 분할
2) 양방향의 경우: 두 사이트 고장 → 분할
▶ 신뢰도 향상을 위한 이중 연결 링 구조: [그림 15.6] (b)
15.3.6 다중 접근 버스 네트워크(Multiaccess Bus Networks)
▶ 개념: 모든 사이트가 공유하는 버스(bus)라는 하나의 링크를 두는 형태
ex) 직선 버스, 링 버스
[그림 15.7] 버스 네트워크
- 기본 비용: 사이트 수에 비례
- 통신 비용: 매우 낮음, 그러나 버스에 대한 병목 현상이 발생할 수 있음
- 신뢰도: 낮음
→ 한 사이트의 고장은 통신에 영향을 주지 않으나, 링크의 고장은 완전한 분할을 초래함
* 메시지 교환 전용 중심 사이트를 지닌 성형 네트워크의 위상과 유사함
* 이더넷(Ethernet) 네트워크는 다중 접근 버스 모델을 기반으로 함
15.3.7 혼성 네트워크(Hybrid Networks)
▶ 개념: 서로 다른 유형의 네트워크들이 상호 연결되어 있는 형태
ex) 한 사이트 내에서는 이더넷과 같은 다중 접근 버스가 사용되고, 사이트들 간에는 계층 네트워크가 사용되는 형태
→ 통신은, 상호간에 다중 프로토콜을 번역해야 하고 자료에 대한 경로 배정이 복잡하기 때문에 다소 어려움이 있음
15.4 네트워크 형태(Network Types)
▶ 지역적으로 분산되는 방식에 따른 분류
- 근거리 통신망(Local-Area Network; LAN): 좁은 지역 ex) 빌딩 내, 인접한 빌딩 등
- 원거리 통신망(Wide-Area Network; WAN): 넓은 지역 ex) 미 대륙
15.4.1 근거리 통신망(Local-Area Network; LAN)
▶ 동기: 1970년대 메인 프레임 컴퓨터 시스템의 대용으로 탄생
- 하나의 큰 메인 프레임대신 다수의 작은 컴퓨터를 이용함으로써 보다 경제적임
- 자원이나 자료의 공유 위한 네트워크 연결 필요
▶ 통신 네트워크
- 특성: 모든 사이트가 서로 근접해 있기 때문에, 일반적인 컴퓨터 네트워크보다 속도가 높고 오류 발생률이 낮음
- 종류: 트위스트 페어(twisted pair), 기저대역 동축케이블(baseband coaxial cable), 광섬유(fiber optics) 등
- 형태: 다중 접근 버스, 링, 성형 네트워크 등
- 속도: 1Mbyte/sec - 1Gbyte/sec (일반적으로 10Mbyte/sec 정도)
- 구성: [그림 15.8] 근거리 통신망(LAN)
ex) 다수의 이종 소형 컴퓨터, 공유 주변 장치, 게이트웨이(gateway) 등
↙ ↘
(레이저 프린터, 자기 테이프 등) (다른 네트워크 접근을 위한 특정 프로세서)
→ 주로 이더넷 방법 사용: 다중 접근 버스를 사용하기 때문에 중앙 제어기가 따로 필요 없으므로 새로운 호스트를 네트워크에 쉽게 추가 할 수 있음
15.4.2 원거리 통신망(Wide-Area Network; WAN)
▶ 동기
- 1960년대 말경, 사이트간의 효율적인 통신 제공을 위해 시작하였으며, 광범위 사용자 모임에 의해 하드웨어와 소프트웨어를 공유하였음
- “Arpanet”이 시조
▶ 통신 네트워크
- 특성: 지역적으로 광범위하게 사이트들이 분산되어 있기 때문에, 통신 링크는 비교적 느리고 신뢰성이 낮음
- 종류: 전화선, 마이크로웨이브 링크, 통신 위성 채널 등
→ 보통 표준 전화선 사용: 모뎀(modem) - 디지털 신호 ↔ 아날로그 신호
- 속도: LAN보다 느림
1) 전화 시스템 서비스 T1의 경우, 1.544Mbyte/sec
2) 28개의 T1이 병렬로 구성된 T3의 경우, 45Mbyte/sec
- 구성: [그림 15.9] 원거리 통신망에서의 통신용 프로세서
→ 특정 통신 프로세서(CP)에 의해 조정됨
15.5 통신(Communication)
▶ 통신 네트워크 내부동작을 위해 설계자가 고려해야 할 기본 문제
① 네이밍(naming)과 이름 변환(name resolution): 상호 통신하는 두 프로세스의 배치에 관한 기법
② 라우팅 전략(routing strategies): 메시지의 전송 경로 배정에 관한 기법
③ 패킷 전략(packet strategies): 패킷의 개별적 혹은 연속적 전송에 관한 기법
④ 연결 기법(connection strategies): 두 프로세스간의 메시지 전송에 관한 기법
⑤ 경쟁(contention): 네트워크 사용 요구의 충돌 해결에 관한 기법
15.5.1 네이밍(Naming)과 이름 변환(Name Resolution)
▶ 프로세스의 명칭: <호스트 이름, 식별자>
- 호스트 이름: 네트워크 상의 고유 이름 host-id ex) kcs
- 식별자: 사이트 내에서의 프로세스 고유번호 process-id
▶ 호스트 명칭을 명시하는 두 가지 방법
1) 모든 호스트가 네트워크를 통해 접근할 수 있는 다른 호스트의 이름과 주소를 포함하는 자료 파일을 가지는 방법(컴파일 시의 바인딩과 유사)
→ 호스트의 추가 혹은 제거할 때마다 모든 호스트의 자료 파일을 갱신해야 함
즉, 특정 사이트에 모든 파일의 정보가 유지되도록 각 사이트가 정기적으로 갱신
2) 네트워크 상의 시스템들 사이에 정보를 분산시키는 방법(실행 시의 바인딩과 유사)
→ “영역 이름 서비스(Domain Name Service; DNS)”
즉, 각 이름 서버 사이트가 해당 영역에 대한 호스트 정보를 자동 조사에 의해 갱신함
- 이름 서버(name server): 이름의 요소를 역순으로 받아들여 host-id를 반환하는 프로세스
ex) kcs.kongju.ac.kr → 210.106.81.35
- 시스템 A에 있는 프로세스가 “bob.cs.brown.edu”와 통신하기 위한 절차
① A의 커널은 “edu”에 대한 이름 서버에게 “brown.edu”에 대한 이름 서버의 주소를 질의
→ “edu”의 이름 서버는 “brown.edu” 명칭 서버가 상주하는 호스트의 주소를 반환
② A의 커널은 그 주소의 이름 서버에 “cs.brown.edu”에 대해 질의
→ 해당 주소가 반환됨
③ A의 커널은 그 주소에 “bob.cs.brown.edu”에 대해 질의
→ 해당 호스트의 인터넷 주소인 host-id(ex: 128.148.31.100)를 반환
- 각 영역은 자치적인 부 영역들을 둘 수 있음
- <호스트 이름, 식별자>를 지닌 메시지를 수령한 목적지 호스트의 커널은 식별자에 나타난 프로세스에 메시지를 전달
15.5.2 라우팅 전략(Routing Strategies)
▶ 물리적 경로의 수
- 유일: 스타 구조 네트워크, 계층 구조 네트워크
- 다수: 나머지의 일반적인 구조
▶ 라우팅 테이블(routing table): 각 사이트마다 다른 사이트로 메시지를 보내는 경로를 저장
→ 각 통신 경로의 속도 및 비용 등의 정보를 기록
▶ 라우팅 전략
① 고정 라우팅(fixed routing): 유일한 경로 사용
- 하드웨어 고장이 일어나지 않는 한 변경되지 않음
- 일반적으로 통신비용을 최소화하기 위해 최단거리 경로를 선정
→ 링크의 고장이나 부하 변화에 적응 못함, 메시지 전송순서대로 도착됨
② 가상 회선(virtual circuit): 일정 기간(session) 동안 고정되는 경로 사용
ex) 파일 전송(단시간), 원격 등록(장시간) 등
→ 부하 변화에 부분적으로 적응 가능, 메시지 전송순서대로 도착됨
③ 동적 라우팅(dynamic routing): 메시지 보낼 때마다 결정되는 경로 사용
- 일반적으로 사이트는 특정 순간에 가장 적게 사용되는 링크를 통하여 메시지를 전송함
→ 부하 변화에 적응적임, 단 메시지 도착순서가 바뀔 수 있음(메시지 번호로 해결 가능)
※ 정적 라우팅과 동적 라우팅을 혼용하는 방법: “게이트웨이(gateway)”
- 정적 라우팅: 각 호스트에서 게이트웨이로의 경로
- 동적 라우팅: 게이트웨이에서 다른 네트워크 상의 사이트로의 경로
▶ 라우터(router): 메시지를 라우팅하기 위해 컴퓨터 시스템에 있는 한 부분
15.5.3 패킷 전략(Packet Strategies)
▶ 패킷(packet), 프레임(frame), 데이터그램(datagram): 일반적으로 가변 길이인 메시지를 고정 길이로 전송하는 기본 단위
▶ 미연결(connectionless) 메시지: 패킷의 도착을 회신하지 않는 방식의 메시지, 신뢰성 낮음
→ 신뢰도를 높이기 위해 연결(connection) 필요
15.5.4 연결 전략(Connection Strategies)
▶ 네트워크를 통하여 통신하고자 하는 프로세스 쌍을 연결하는 방법
① 회로 교환(circuit switching): 통신기간 동안에 두 프로세스 사이에 물리적 연결이 설정되고, 그 동안에는 다른 프로세스가 이 링크를 사용 못함
ex) 전화 체제와 유사: 통화중에는 제 3자가 통화할 수 없음
→ 초기 설정 시간 필요, 각 메시지별 오버헤드 적음
② 메시지 교환(message switching): 각 메시지의 이동 기간마다 두 프로세스간에 물리적인 링크가 동적으로 짧은 시간동안 설정됨
* 메시지: 자료 블록(가변 길이)
- 시스템 정보: 출발지, 목적지, 오류 수정 코드 등
- 실제 자료
ex) 우편 체제와 유사: 다른 사용자들로부터의 여러 메시지들이 같은 링크를 통해 전송됨
→ 초기 설정 시간 적지만, 각 메시지별 오버헤드 큼
③ 패킷 교환(packet switching): 메시지를 고정 길이의 패킷으로 나누어 패킷별로 전송하고, 도착한 패킷들을 재결합함
→ 초기 설정 시간 적지만, 각 메시지별 오버헤드 매우 큼(패킷마다 오버헤드가 부착되기 때문)
15.5.5 경쟁(Contention)
▶ 여러 사이트가 동시에 하나의 링크를 통해 정보를 보내고자 하는 상황
- 주로 링이나 다중 접근 버스 네트워크의 경우에 발생
- 충돌된 정보는 폐기되고 재전송해야 함
▶ 충돌 회피를 위한 기법
① CSMA/CD
- CSMA(carrier sense with multiple access): 메시지를 전송하기 전에 링크가 사용 가능할 때까지 계속해서 확인
- CD(collision detection): 충돌 탐지
두 사이트가 정확히 동시에 전송을 시작하면 충돌이 발생될 수 있으므로, 각 사이트는 다른 사이트가 보내는 메시지와 충돌이 있는지 항상 감시해야 하고, 만일 충돌이 탐지되면 전송을 중단하고 재시도해야 함
→ 부하가 많을수록 충돌이 빈번해짐
ex) 이더넷(ethernet) 시스템에 성공적으로 사용중
② 토큰 전달(token passing)
- 보통 링 구조에서 토큰이라는 메시지가 순환하고 있고, 정보를 전송하려는 사이트는 토큰이 도착하면 토큰을 링에서 제거 후 메시지를 전송하고 메시지 전송이 완료되면 토큰을 재전송하는 방법
- 시스템은 토큰의 분실을 탐지해야 하고, 선출 알고리즘(18.6절)에 의해 사이트를 선택하면 그 사이트가 토큰을 생성함
→ 처리 능력이 일정함
ex) IBM과 Apollo 시스템에서 채용
③ 메시지 슬롯(message slot)
- 보통 링 구조에서 다수의 고정 길이 메시지 슬롯이 순환중이고, 사이트는 빈 슬롯이 도착해야 메시지와 제어 정보(출발지, 목적지, 슬롯의 할당여부 등)를 슬롯에 넣어 전송함
- 각 사이트는 슬롯의 제어 정보를 조사하여 자기 것이 아니면 슬롯을 재전송하고, 자기 것이면 슬롯의 메시지를 꺼내고 슬롯이 비었음을 나타내도록 제어 정보를 재설정함
ex) 캠브리지 디지털 통신링(Cambridge Digital Communication Ring)에 시험용으로 채택
15.6 설계 전략(Design Strategies)
▶ 통신 네트워크의 설계: [그림 15.10] ISO 네트워크 모델을 통한 두 컴퓨터간 통신
→ 느리고 오류가 많은 환경에서 비동기적인 동작들을 조정하는 문제를 고려해야 함
- 구현을 위한 문제를 계층적으로 분할하여 간략화 함
- 한 시스템의 각 계층은 다른 시스템의 동일한 계층과 통신함
- 각 계층은 고유의 프로토콜을 가지며, 프로토콜은 하드웨어 또는 소프트웨어로 구현됨
▶ 국제 표준 기구(International Standard Organization; ISO)의 계층 구조
[그림 15.11] ISO 프로토콜 계층 요약
① 물리적 계층(physical layer): 비트 스트림을 물리적으로 전송하는 기계적, 전기적 사항들을 담당
→ 하드웨어 네트워크 장치로 구현
② 자료 연결 계층(data-link layer): 프레임이나 고정 길이 패킷의 처리를 담당
→ 물리 계층에서 발생하는 오류 탐지와 회복까지 담당
③ 네트워크 계층(network layer): 통신망에서 연결 제공과 패킷의 경로 배정을 담당
→ 라우터 수행: 나가는 패킷의 주소 제어, 들어오는 패킷의 주소 해독, 부하 변화에 따른 경로 배정 정보 유지 등
④ 트랜스포트 계층(transport layer): 네트워크에 대한 하위 수준의 접근 및 클라이언트간의 메시지 전달 담당
→ 메시지를 패킷으로 분할, 패킷의 순서 유지, 흐름 제어, 물리적 주소의 생성 등
⑤ 세션 계층(session layer): 세션 즉, 프로세스와 프로세스간의 프로토콜 구현 담당
→ 원격 로그인, 파일 및 메일 전송 등을 위한 실제 전송
⑥ 표현 계층(presentation layer): 사이트간의 형식적 차이를 해결
→ 문자 변환, 문자 에코잉(반 듀플렉스(half duplex)-전 듀플렉스(full duplex) 모드) 등
⑦ 응용 계층(application layer): 사용자간의 직접적인 상호 교신을 허용
→ 파일 전송, 원격 로그인 프로토콜, 전자우편, 분산 데이터베이스 등
▶ 물리적으로 하나의 메시지는 상위 계층에서 하위 계층으로 전달되어 최종적으로 패킷으로 전송되고, 수신측에서는 메시지가 하위 계층에서 상위 계층으로 상승하면서 분석되고 헤드가 제거됨
[그림 15.12] ISO 네트워크 메시지
→ 실제로는 ISO 모델을 사용하지 않고 보다 적은 계층으로 구성된 TCP/IP 모델을 주로 사용함
▶ TCP/IP(Transmission Control Protocol/Internet Protocol)
[그림 15.13] TCP/IP 프로토콜 계층
* IP 프로토콜: 정보의 기본 단위인 IP 데이터그램의 인터넷을 통한 전송 담당
① TCP/IP: 연결(connection) 전송 프로토콜 - 응답 있음
→ TCP 프로토콜이 IP를 사용하여 두 프로세스간에 정보 스트림을 신뢰성 있게 전송
② UDP/IP: 무연결(connectionless) 전송 프로토콜 - 응답 없음
→ UDP 프로토콜이 IP를 사용하여 두 프로세스간에 정보 스트림을 신뢰성 없게 전송
15.7 네트워킹의 예: [그림 15.14] 이더넷 패킷
'시리즈 > OS' 카테고리의 다른 글
17. 분산 파일 시스템(Distributed File Systems; DFS) (0) | 2014.09.12 |
---|---|
분산 시스템 구조(Distributed System Structures) -네트워크 운영체제(Network Operating Systems) (0) | 2014.09.06 |
제3의 저장장치 구조(Tertiary Storage Structure) (0) | 2014.08.20 |
13.1 디스크 구조(Disk Structure) - 보조저장장치 구조(Secondary Storage Structures) (0) | 2014.08.15 |
12. 입출력 시스템(I/O Systems) (0) | 2014.08.12 |