16
16장 장 분산처리 분산처리 클라이언트 클라이언트//서버 서버 16
16장 장 분산처리 분산처리, , 클라이언트 클라이언트//서버 서버,, 클러스터
클러스터 클러스터 클러스터
16
16장의장의 강의강의 목표목표
••
클라이언트 클라이언트//서버 서버 컴퓨팅의 컴퓨팅의 개념과 개념과 구조 구조, , 그리고 그리고 응용에 응용에 대해서
대해서 이해한다 이해한다 대해서
대해서 이해한다 이해한다..
••
분산 분산 메시지 메시지 전달 전달 기법에 기법에 대해서 대해서 이해한다 이해한다..
••
원격 원격 프로시저 프로시저 호출 호출 기법에 기법에 대해서 대해서 이해한다 이해한다..
••
클러스터의 클러스터의 개념과 클러스터의 클러스터의 개념과 개념과 구성 개념과 구성 구성,, 설계 구성, , 설계 설계 이슈에 설계 이슈에 이슈에 대해서 이슈에 대해서 대해서 이해한다 대해서 이해한다 이해한다.. 이해한다..
••
Windows Windows 클러스터 클러스터 서버 서버 구조에 구조에 대해서 대해서 이해한다 이해한다..
SS 클러스터 클러스터 구조에 구조에 대해서 대해서 이해한다 이해한다
••
Sun Sun 클러스터 클러스터 구조에 구조에 대해서 대해서 이해한다 이해한다..
••
Beowulf Beowulf와 와 Linux Linux 클러스터 클러스터 구조에 구조에 대해서 대해서 이해한다 이해한다..
목 목 차차
16.1
16.1 클라이언트 클라이언트//서버 서버 컴퓨팅 컴퓨팅 16.2
16.2 분산 분산 메시지 메시지 전달 전달 16.3
16.3 원격 원격 프로시저 원격 원격 프로시저 프로시저 호출 프로시저 호출 호출 호출 16.4
16.4 클러스터 클러스터 16 5 Wi d
16 5 Wi d 클러스터 클러스터 서버 서버 16.5 Windows
16.5 Windows 클러스터 클러스터 서버 서버 16.6 Sun
16.6 Sun 클러스터 클러스터 16.7 Beowulf
16.7 Beowulf와 와 Linux Linux 클러스터 클러스터
분산처리 3
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 컴퓨팅 컴퓨팅
–– 클라이언트 클라이언트
•• 서버에게서버에게 데이터베이스나데이터베이스나 다른다른 정보를정보를 질의하는질의하는 네트워크네트워크 상에상에 있는
있는 정보정보 요구자요구자 보통보통 PCPC나나 워크스테이션워크스테이션 있는
있는 정보정보 요구자요구자, , 보통보통 PCPC나나 워크스테이션워크스테이션
•• 사용자에게사용자에게 친숙한친숙한 그래픽그래픽 인터페이스인터페이스 제공제공
–– 서버 서버 서버 서버
•• 네트워크로네트워크로 연결된연결된 클라이언트에클라이언트에 의하여의하여 조작되는조작되는 정보를정보를 집적집적 하고
하고 있는있는 고성능고성능 워크스테이션워크스테이션, , 미니컴퓨터미니컴퓨터, , 메인메인 프레임등의프레임등의 컴퓨터
컴퓨터 컴퓨터 컴퓨터
•• 클라이언트를클라이언트를 위한위한 공유공유 서비스의서비스의 집합집합 제공제공
•• 서버는서버는 다수의서버는서버는 다수의다수의 클라이언트에게다수의 클라이언트에게클라이언트에게 동일한클라이언트에게 동일한동일한 데이터베이스에동일한 데이터베이스에데이터베이스에 대한데이터베이스에 대한대한 접대한 접접접 근을
근을 가능하게가능하게 하고하고, , 고성능고성능 컴퓨터컴퓨터 시스템의시스템의 이용을이용을 가능하게가능하게 한다
한다..
네트워크 네트워크 –– 네트워크 네트워크
•• 클라이언트와클라이언트와 서버를서버를 연결하는연결하는 컴퓨터컴퓨터 네트워크네트워크
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 전문 전문 용어 용어
–– 응용 응용 프로그래밍 프로그래밍 인터페이스 인터페이스
•• 클라이언트와클라이언트와 서버가서버가 상호상호 통신할통신할 수수 있도록있도록 해주는해주는 함수와함수와 호출호출 프로그램들의
프로그램들의 집합집합 프로그램들의 프로그램들의 집합집합
–– 미들웨어 미들웨어
•• 클라이언트와클라이언트와 서버서버 응용응용 사이의사이의 연결성을연결성을 향상시키는향상시키는 드라이버드라이버
•• 클라이언트와클라이언트와 서버서버 응용응용 사이의사이의 연결성을연결성을 향상시키는향상시키는 드라이버드라이버, , API,
API, 또는또는 소프트웨어들의소프트웨어들의 집합집합
–– 관계형데이터베이스 관계형데이터베이스
•• 모든모든 검색검색 기준을기준을 만족하는만족하는 행들의행들의 선택으로선택으로 정보정보 접근이접근이 제한되제한되 는
는 데이터베이스데이터베이스
SQL
SQL –– SQL SQL
•• 관계형관계형 데이터베이스를데이터베이스를 생성생성, , 저장저장, , 갱신갱신, , 검색하기검색하기 위하여위하여 IBMIBM 에서
에서 개발되고개발되고 ANSIANSI에에 의해의해 표준화된표준화된 데이터베이스데이터베이스 질의질의 언어언어
분산처리 5
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
일반적인 일반적인 클라이언트 클라이언트//서버 서버 환경 환경
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 응용 응용
–– 클라이언트 클라이언트//서버 서버 구조의 구조의 주요 주요 특성은 특성은 응용 응용 수준 수준 태스크를 태스크를 클 클 라이언트와
라이언트와 서버 서버 중 중 어디에 어디에 얼마만큼 얼마만큼 할당할 할당할 것인가에 것인가에 의해 의해 결정됨
결정됨 결정됨 결정됨
–– 다양한 다양한 종류의 종류의 하드웨어 하드웨어 플랫폼이나 플랫폼이나 운영체제가 운영체제가 존재하나 존재하나, , 클 클 라이언트와
라이언트와 서버가 서버가 같은 같은 통신 통신 프로토콜을 프로토콜을 공유하고 공유하고 같은 같은 응용 응용 을
을 제공하는 제공하는 한 한 클라이언트와 클라이언트와 서버 서버 사이의 사이의 통신이 통신이 가능하다 가능하다..
–– 클라이언트와 클라이언트와 서버 서버 간에 간에 응용 응용 로직을 로직을 분리하는 분리하는 방법에 방법에 따라 따라 다양한
다양한 구성이 구성이 가능하다 가능하다 다양한
다양한 구성이 구성이 가능하다 가능하다..
분산처리 7
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
일반적인 일반적인 클라이언트 클라이언트//서버 서버 구조 구조
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
데이터베이스 데이터베이스 응용 응용
–– 서버는 서버는 데이터베이스 데이터베이스 서버가 서버가 되며 되며, , 클라이언트는 클라이언트는 사용자 사용자 인터 인터 페이스를
페이스를 담당한다 담당한다..
클라이언트와
클라이언트와 서버 서버 사이의 사이의 상호 상호 작용은 작용은 트랜잭션 트랜잭션 형태로 형태로 이루 이루 –– 클라이언트와 클라이언트와 서버 서버 사이의 사이의 상호 상호 작용은 작용은 트랜잭션 트랜잭션 형태로 형태로 이루 이루
어
어 진다 진다..
•• 클라이언트가클라이언트가 데이타베이스클라이언트가클라이언트가 데이타베이데이타베이스 요청을데이타베이 요청을 생성하여요청을요청을 생성하여생성하여 서버에게생성하여 서버에게서버에게 보내면서버에게 보내면보내면, , 보내면,, 서버는
서버는 관련관련 연산을연산을 수행하고수행하고 그그 결과를결과를 클라이언트에게클라이언트에게 보낸다보낸다..
•• 서버는서버는 데이터베이스를데이터베이스를 유지보수하는유지보수하는 책임을책임을 진다진다..
분산처리 9
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
데이터베이스 데이터베이스 응용을 응용을 위한 위한 클라이언트 클라이언트//서버 서버 구조 구조
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 데이터베이스의 데이터베이스의 사용 사용 예 예
분산처리 11
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 응용의 응용의 분류 분류
–– 호스트 호스트 기반 기반 처리 처리
•• 진정한진정한 클라이언트클라이언트//서버서버 컴퓨팅이컴퓨팅이 아니며아니며, , 중앙중앙 호스트에서호스트에서 대부대부 분의
분의 일이일이 처리되는처리되는 구조이다구조이다. . 사용자인터페이스는사용자인터페이스는 단순단순 터미널터미널 분의
분의 일이일이 처리되처리되 구 이다구 이다 사용자 터페이사용자 터페이 단순단순 터미널터미널 이
이 담당한다담당한다..
–– 서버 서버 기반 기반 처리 처리
클라이언트가클라이언트가 기본적인기본적인 GUI(Graphical User Interface)GUI(Graphical User Interface)를를 제공하제공하
•• 클라이언트가클라이언트가 기본적인기본적인 GUI(Graphical User Interface)GUI(Graphical User Interface)를를 제공하제공하 고
고, , 그그 외의외의 모든모든 처리는처리는 서버에서서버에서 수행된다수행된다..
–– 협력 협력 처리 처리
•• 클라이언트와클라이언트와 서버가서버가 응용응용 로직의로직의 일부를일부를 최적으로최적으로 분담하여분담하여 협협 력
력 처리를처리를 한다한다. . 설치나설치나 유지보수가유지보수가 복잡하나복잡하나 생산성과생산성과 네트워크네트워크 효율성이
효율성이 높다높다..
–– 클라이언트 클라이언트 기반 기반 처리 처리
•• 서버는서버는 데이터데이터 유효성유효성 검증이나검증이나 서버에서서버에서 최적으로최적으로 수행되는수행되는 일일 부
부 데이터베이스데이터베이스 로직로직 기능만기능만 담당하며담당하며 이이 외의외의 모든모든 응용응용 처리처리 부
부 데이터베이스데이터베이스 로직로직 기능만기능만 담당하며담당하며, , 이이 외의외의 모든모든 응용응용 처리처리 가
가 클라이언트에서클라이언트에서 수행된다수행된다..
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 응용의 응용의 분류 분류
분산처리 13
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
33계층 계층 클라이언트 클라이언트//서버 서버 구조 구조
–– 사용자 사용자 기계 기계
•• 경량경량 클라이언트클라이언트
–– 중간 중간 계층 계층 기계 기계
•• 클라이언트와클라이언트와 후위후위 데이터베이스데이터베이스 서버서버 사이의사이의 게이트웨이게이트웨이 역할역할 프로토콜
프로토콜 변환변환 기능과기능과 데이터베이스데이터베이스 질의질의 변환변환 기능기능 수행수행
•• 프로토콜프로토콜 변환변환 기능과기능과 데이터베이스데이터베이스 질의질의 변환변환 기능기능 수행수행
•• 여러여러 데이터데이터 소스로소스로 부터부터 전달된전달된 결과를결과를 통합하는통합하는 기능기능 수행수행
후위
후위 서버 서버 –– 후위 후위 서버 서버
•• 데이터베이스데이터베이스 서버서버
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
33계층 계층 클라이언트 클라이언트//서버 서버 구조 구조
분산처리 15
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
파일 파일 캐시 캐시 일관성 일관성
–– 파일 파일 캐시는 캐시는 최근에 최근에 접근된 접근된 파일 파일 레코드를 레코드를 저장 저장
–– 지역성의 지역성의 원칙 원칙(principle of locality) (principle of locality)에 에 의해서 의해서 성능 성능 향상 향상
–– 캐시가 캐시가 원격 원격 데이터의 데이터의 복사본을 복사본을 정확하게 정확하게 가지고 가지고 있으면 있으면 캐시 캐시 가
가 일관성이 일관성이 있다고 있다고 정의 정의 됨 됨 캐시
캐시 일관성 일관성 (C h (C h i t i t ) ) 문제 문제 –– 캐시 캐시 일관성 일관성 (Cache consistency) (Cache consistency) 문제 문제
•• 원격원격 데이터의데이터의 변화를변화를 항상항상 지역지역 캐시가캐시가 알알 수수 있도록있도록 하는하는 문제문제
•• 파일파일 잠금잠금 기술을기술을 사용사용;; 성능과성능과 유용성이유용성이 떨어지지만떨어지지만 일관성일관성 보보
•• 파일파일 잠금잠금 기술을기술을 사용사용; ; 성능과성능과 유용성이유용성이 떨어지지만떨어지지만 일관성일관성 보보 장
장
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
Sprite Sprite에서의 에서의 분산 분산 파일 파일 캐싱 캐싱
분산처리 17
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
미들웨어 미들웨어
–– 다양한 다양한 플랫폼에 플랫폼에 분산되어 분산되어 있는 있는 모든 모든 시스템 시스템 자원을 자원을 일관된 일관된 수단과
수단과 방법으로 방법으로 접근할 접근할 수 수 있는 있는 툴들의 툴들의 집합 집합 개발자는
개발자는 클라이언트 클라이언트//서버 서버 환경을 환경을 가상적으로 가상적으로 동일한 동일한 시스템 시스템 –– 개발자는 개발자는 클라이언트 클라이언트//서버 서버 환경을 환경을 가상적으로 가상적으로 동일한 동일한 시스템 시스템
으로
으로 보게 보게 되며 되며, , 동일한 동일한 방법으로 방법으로 접근할 접근할 수 수 있다 있다..
–– 미들웨어들이 미들웨어들이 공통적으로 미들웨어들이 미들웨어들이 공통적으로 공통적으로 가져야 공통적으로 가져야 가져야 하는 가져야 하는 하는 것은 하는 것은 것은 서로 것은 서로 서로 다른 서로 다른 다른 네트워 다른 네트워 네트워 네트워 크
크 프로토콜과 프로토콜과 운영체제들의 운영체제들의 복잡성과 복잡성과 불일치를 불일치를 숨기는 숨기는 능력 능력 이다
이다..
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
클라이언트 클라이언트//서버 서버 구조에서의 구조에서의 미들웨어 미들웨어 역할 역할
–– 클라이언트에서 클라이언트에서 수행 수행 중인 중인 응용이나 응용이나 사용자가 사용자가 다양한 다양한 서버들 서버들 사이의
사이의 차이점에 차이점에 상관없이 상관없이 서버들이 서버들이 제공하는 제공하는 다양한 다양한 서비스 서비스 를
를 일관된 일관된 방법으로 방법으로 사용하게 사용하게 한다 한다 를
를 일관된 일관된 방법으로 방법으로 사용하게 사용하게 한다 한다..
분산처리 19
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
미들웨어의 미들웨어의 논리적 논리적 관점 관점
클라이언트
클라이언트//서버서버 컴퓨팅컴퓨팅
••
미들웨어 미들웨어 기법 기법
분산처리 21
분산
분산 메시지메시지 전달전달
••
분산 분산 메시지 메시지 전달 전달
–– 클라이언트 클라이언트 프로세스는 프로세스는 특정 특정 서비스를 서비스를 요청하기 요청하기 이해 이해 요청 요청 메 메 시지를
시지를 서버에게 서버에게 전달한다 전달한다. . 서버 서버 프로세스는 프로세스는 요청을 요청을 받고 받고 서 서 비스를
비스를 수행한 수행한 후 후 그 그 결과를 결과를 응답 응답 메시지로 메시지로 전달한다 전달한다 비스를
비스를 수행한 수행한 후 후 그 그 결과를 결과를 응답 응답 메시지로 메시지로 전달한다 전달한다..
–– 22개의 개의 프리미티브 프리미티브 사용 사용
•• Send: Send: 목적지를목적지를 명시하고목적지를목적지를 명시하명시하고 메시지명시하 메시지 내용을메시지메시지 내용을내용을 포함내용을 포함포함포함
•• Receive: Receive: 메시지가메시지가 누구로누구로 부터부터 왔는가를왔는가를 명시하고명시하고 응답응답 메시지메시지 가
가 저장되는저장되는 버퍼를버퍼를 제공제공
분산
분산 메시지메시지 전달전달
••
분산 분산 메시지 메시지 전달 전달
분산처리 23
분산
분산 메시지메시지 전달전달
••
분산 분산 메시지 메시지 전달 전달 설계 설계 이슈 이슈
–– 신뢰성 신뢰성 대 대 비신뢰성 비신뢰성
•• 신뢰성신뢰성 있는있는 메시지메시지 전달전달 기능은기능은 전송을전송을 보장한다보장한다. . 에러에러 확인확인, , 수수 신
신 응답응답, , 재전송재전송, , 순서화되지순서화되지 않은않은 메시지들의메시지들의 재정렬재정렬 기능기능 수행수행 신
신 응답응답 재전송재전송 순서화되지순서화되지 않은않은 메시지들의메시지들의 재정렬재정렬 기능기능 수행수행
•• 신뢰성이신뢰성이 없는없는 메시지메시지 전달전달 기능은기능은 메시지를메시지를 통신통신 네트워크로네트워크로 보보 내기만
내기만 할할 뿐뿐 성공이냐성공이냐 실패냐를실패냐를 보고하지보고하지 않는다않는다..
블로킹
블로킹 대 대 비블로킹 비블로킹 –– 블로킹 블로킹 대 대 비블로킹 비블로킹
•• 블로킹블로킹 sendsend는는 메시지가메시지가 전송되기전송되기 전까지전까지((비신뢰비신뢰 서비스의서비스의 경우경우), ), 또는
또는 메시지가메시지가 보내지고보내지고 전송확인을전송확인을 받을때까지받을때까지((신뢰신뢰 서비스의서비스의 경우
경우)) 제어를제어를 돌려주지돌려주지 않는다않는다 블로킹블로킹 receivereceive는는 수신수신 메시지가메시지가 경우
경우) ) 제어를제어를 돌려주지돌려주지 않는다않는다. . 블로킹블로킹 receivereceive는는 수신수신 메시지가메시지가 할당된
할당된 버퍼에버퍼에 위치하기까지위치하기까지 제어를제어를 프로세스에게프로세스에게 돌려주지돌려주지 않않 는다
는다..
•• 비블로킹비블로킹 sendsend와와 receivereceive는는 호룰호룰 뒤뒤 블록되지블록되지 않고않고 바로바로 프로세프로세
•• 비블로킹비블로킹 sendsend와와 receivereceive는는 호룰호룰 뒤뒤 블록되지블록되지 않고않고 바로바로 프로세프로세 스에게
스에게 제어를제어를 넘겨준다넘겨준다. . 비블로킹비블로킹 프리미티브는프리미티브는 프로세스에프로세스에 의의 한
한 메시지메시지 전달의전달의 효율적이고효율적이고 유연한유연한 사용을사용을 제공하지만제공하지만, , 프로그프로그 램을
램을 테스트하고테스트하고 디버깅이디버깅이 어렵다어렵다..
램을
램을 테테 하하 디버깅이디버깅이 어렵다어렵다
원격
원격 프로시저프로시저 호출호출
••
원격 원격 프로시저 프로시저 호출 호출
–– 다른 다른 기계에 기계에 있는 있는 프로그램들이 프로그램들이 마치 마치 같은 같은 기계에 기계에 있는 있는 것처 것처 럼
럼 단순한 단순한 프로시저 프로시저 호출 호출//반환 반환 의미론을 의미론을 사용하여 사용하여 쉽게 쉽게 상호 상호 작용할
작용할 수 수 있다 있다 작용할
작용할 수 수 있다 있다..
•• CALL P(X,Y)CALL P(X,Y) P =
P = 프로시저프로시저 이름이름 X =
X = 매개변수매개변수 Y =
Y = 반환반환 값값
••
매개 매개 변수 변수 전달 전달
–– 값에 값에 의한 의한 호출 호출(call by value) (call by value)은 은 간단하게 간단하게 구현되나 구현되나, , 참조에 참조에 의 의 한
한 호출 호출(call by reference) (call by reference)의 의 구현은 구현은 시스템 시스템 전체의 전체의 유일한 유일한 포 포 인터가
인터가 각 각 객체를 객체를 위하여 위하여 필요하게 필요하게 되므로 되므로 구현이 구현이 복잡하다 복잡하다
25
인터가
인터가 각 각 객체를 객체를 위하여 위하여 필요하게 필요하게 되므로 되므로 구현이 구현이 복잡하다 복잡하다..
분산처리
원격
원격 프로시저프로시저 호출호출
••
원격 원격 프로시저 프로시저 호출 호출 기법 기법
원격
원격 프로시저프로시저 호출호출
••
클라이언트 클라이언트//서버 서버 바인딩 바인딩
–– 바인딩은 바인딩은 원격 원격 프로시저와 프로시저와 호출 호출 프로그램 프로그램 사이의 사이의 관계를 관계를 어떻 어떻 게
게 설정할 설정할 것인가를 것인가를 명시한다 명시한다..
비영속적인
비영속적인 바인딩 바인딩( ( i t t bi di ) i t t bi di ) –– 비영속적인 비영속적인 바인딩 바인딩(nonpersistent binding) (nonpersistent binding)
•• 원격원격 프로시저를프로시저를 호출을호출을 수행하려는수행하려는 시점에시점에 두두 개의개의 프로세스프로세스 사사 이에
이에 논리적인논리적인 연결이연결이 설정되며설정되며, , 결과결과 값이값이 반환반환 되자마자되자마자 연결연결 이에
이에 리적리적 결이결이 정되며정되며 결과결과 이이 환환 되자마자되자마자 결결 이
이 해제된다해제된다. .
–– 영속적인 영속적인 바인딩 바인딩(persistent binding) (persistent binding)
•• 원격원격 프로시저프로시저 호출을호출을 위하여위하여 설정되는설정되는 연결이연결이 결과결과 값값 반환반환 이이 후에도
후에도 계속계속 유지된다유지된다. . 원격원격 프로시저를프로시저를 반복반복 호출하는호출하는 응용에응용에 적합
적합..
분산처리 27
원격
원격 프로시저프로시저 호출호출
••
동기 동기 대 대 비동기 비동기
–– 동기 동기 RPC(Synchronous RPC) RPC(Synchronous RPC)
•• 호출호출 프로세스가프로세스가 결과결과 값이값이 반환될반환될 때때 까지까지 기다림기다림
•• 행위가행위가 예측예측 가능하기가능하기 때문에때문에 이해하기이해하기 쉽고쉽고 프로그램프로그램 하기하기 쉽다쉽다..
•• 분산분산 응용응용 고유의고유의 병렬성을병렬성을 완전히완전히 이용하지이용하지 못한다못한다..
비동기
비동기 RPC(A RPC(A h h RPC) RPC) –– 비동기 비동기 RPC(Asyschronous RPC) RPC(Asyschronous RPC)
•• 호출호출 프로세스가프로세스가 결과결과 값이값이 반환될반환될 때때 까지까지 기다리지기다리지 않는다않는다..
•• 서버서버 호출호출 기능과기능과 병렬적으로병렬적으로 자신의자신의 작업을작업을 수행한다수행한다
•• 서버서버 호출호출 기능과기능과 병렬적으로병렬적으로 자신의자신의 작업을작업을 수행한다수행한다..
원격
원격 프로시저프로시저 호출호출
••
객체 객체 지향 지향 기법 기법
–– 클라이인트와 클라이인트와 서버는 서버는 메시지를 메시지를 객체간에 객체간에 주고 주고 받는다 받는다..
–– 객체간 객체간 통신은 통신은 하부 하부 메시지 메시지 패싱 패싱 기법이나 기법이나 RPC RPC 구조를 구조를 사용 사용 하거나
하거나 또는 또는 운영체제가 운영체제가 지원하는 지원하는 객체지향 객체지향 기능위에서 기능위에서 직접 직접 하거나
하거나, , 또는 또는 운영체제가 운영체제가 지원하는 지원하는 객체지향 객체지향 기능위에서 기능위에서 직접 직접 개발될
개발될 수 수 있다 있다..
–– 클라이너트는 클라이너트는 객체 클라이너트는 클라이너트는 객체 객체 요청 객체 요청 요청 중계자에게 요청 중계자에게 중계자에게 요청을 중계자에게 요청을 요청을 보내며 요청을 보내며 보내며,, 객체 보내며, , 객체 객체 요 객체 요 요 요 청
청 중계자는 중계자는 적절한 적절한 객체를 객체를 호출하고 호출하고 관련된 관련된 데이터를 데이터를 보낸다 보낸다. . 원격
원격 객체는 객체는 요청을 요청을 서비스하고 서비스하고 응답을 응답을 중계자를 중계자를 거쳐 거쳐 클라이 클라이 언트에게
언트에게 반환한다 반환한다 언트에게
언트에게 반환한다 반환한다..
–– Microsoft Microsoft의 의 COM(Component Object Model) COM(Component Object Model) –– OMG OMG의 의 CORBA(Common Object Request Broker CORBA(Common Object Request Broker –– OMG OMG의 의 CORBA(Common Object Request Broker CORBA(Common Object Request Broker
Architecture) Architecture)
분산처리 29
클러스터 클러스터
••
클러스터 클러스터
–– 여러 여러 컴퓨터가 컴퓨터가 고속의 고속의 링크로 링크로 연결되어 연결되어 있으며 있으며, , 논리적으로는 논리적으로는 하나의
하나의 컴퓨터인 컴퓨터인 것처럼 것처럼 보여지도록 보여지도록 자원들을 자원들을 일관되고 일관되고 통일 통일 되게
되게 관리하는 관리하는 시스템 시스템 되게
되게 관리하는 관리하는 시스템 시스템
–– 대칭형 대칭형 다중처리 다중처리(SMP: Symmetric Multiprocessing) (SMP: Symmetric Multiprocessing)의 의 대안으 대안으 로
로 제안됨 제안됨
–– 클러스터링의 클러스터링의 목적 목적
•• 절대적절대적 확장성확장성: : 가장가장 큰큰 독립적인독립적인 기계의기계의 능력을능력을 능가하는능가하는 거대거대 클러스터의
클러스터의 구성구성 가능가능 클러스터의
클러스터의 구성구성 가능가능
•• 점진적인점진적인 확장성확장성: : 작은작은 규모의규모의 시스템에서시스템에서 시작하여시작하여 점진적으로점진적으로
클러스터 클러스터
••
클러스터의 클러스터의 구성 구성
분산처리 31
클러스터 클러스터
••
클러스터의 클러스터의 구성 구성
클러스터링 방법 설 명 장 점 제 한 점
보조 서버는 대기상태이다 주 서 보조 서버를 다른 태스크 처리 수동 대기 보조 서버는 대기상태이다. 주 서
버가 고장나면 보조 서버가 기능
을 인계받는다. 구현이 쉽다. 보조 서버를 다른 태스크 처리 에 이용할 수 없기 때문에 고비용 이다.
보조 서버도 태스크 처리를 위하 보조 서버가 처리를 위하 능동 보조 보조 서버도 태스크 처리를 위하
여 사용된다. 여 사용될 수 있기 때문
에 비용이 절감된다. 복잡성의 증대 분리 서버
각 서버는 자신들의 디스크를 가지
고 있 다 . 데 이 터 는 연 속 적 으 높은 가용성 잦은 복사 동작으로 인하여 네트 분리 서버 로 주 서버에서 보조 서버로 복사
된다.
높은 가용성 워크와 서버의 오버헤드가 높다.
디스크에 연
서버들이 같은 디스크에 연결된
다. 그러나 각 서버는 자신의 디스 복사 동작의 제거로 네트 디스크 고장의 위험을 보상하 디스크에 연
결된 서버 크를 가진다. 한 서버가 고장나 면, 그 디스크는 다른 서버로 인계 된다.
워크와 서버의 오버헤드
가 절감된다. 기 위하여 보통 디스크 미러링이 나 RAID를 요구한다.
디 공 다중 서버 동시에 디 를 유 낮은 네트워크와 서버
의 버헤 디 장 잠금 관리자(lock manager) 소프 웨어를 한다 통 디 디스크 공
유 서버 다중 서버는 동시에 디스크를 공유
한다. 의 오버헤드. 디스크 고장
에 의한 중단시간의 위험 이 줄어든다.
트웨어를 요구한다. 보통 디스 크 미러링이나 RAID 기술과 함 께 사용된다.
클러스터 클러스터
••
운영체제 운영체제 설계 설계 이슈 이슈
–– 고장 고장 관리 관리
•• 높은높은 강요성의강요성의 클러스터클러스터: : 모든모든 자원이자원이 서비스에서비스에 있게있게 될될 확률을확률을 높임
높임 높임 높임
•• 결함허용결함허용 클러스터클러스터: : 모든모든 자원이자원이 항상항상 가용하다는가용하다는 것을것을 보장보장 –– 고장고장 극복고장고장 극복극복(failover):극복(failover): (failover): 고장난(failover): 고장난고장난 시스템을고장난 시스템을시스템을 다른시스템을 다른다른 대체다른 대체대체 시스템으로대체 시스템으로시스템으로시스템으로
응용과
응용과 자원을자원을 교체교체
–– 고장고장 회복회복(failback): (failback): 고장에서고장에서 회복한회복한 시스템으로시스템으로 응용이나응용이나 데이터
데이터 자원을자원을 복구하는복구하는 기능기능 데이터
데이터 자원을자원을 복구하는복구하는 기능기능
–– 부하 부하 균등화 균등화
•• 새로운새로운 컴퓨터가새로운새로운 컴퓨터가컴퓨터가 추가되는컴퓨터가 추가되는추가되는 경우에도추가되는 경우에도경우에도 각경우에도 각각 시스템에각 시스템에시스템에 골고루시스템에 골고루골고루 부하를골고루 부하를부하를부하를 분배할
분배할 수수 있어야있어야 한다한다..
분산처리 33
클러스터 클러스터
••
운영체제 운영체제 설계 설계 이슈 이슈
–– 병렬 병렬 계산 계산
•• 병렬병렬 컴파일러컴파일러: : 컴파일컴파일 시점에시점에 응용의응용의 어떤어떤 부분이부분이 병렬적으로병렬적으로 수행될
수행될 수수 있는지있는지 결정결정 수행될
수행될 수수 있는지있는지 결정결정
•• 병렬병렬 응용응용: : 프로그래머가프로그래머가 클러스터의클러스터의 각각 노드에노드에 응용이응용이 분할되어분할되어 동작될
동작될 수수 있도록있도록 작성작성
•• 매개변수적매개변수적(parametric) (parametric) 컴퓨팅컴퓨팅: : 응용의응용의 요소가요소가 수없이수없이 만ㅇ이만ㅇ이 실실 행되고
행되고 실행될실행될 때마다때마다 매번매번 시작시작 존건존건 또는또는 매개매개 변수를변수를 다르게다르게 가지고
가지고 수행되는수행되는 경우경우 사용사용 가지
가지 수행되수행되 경우경우 사용사용
클러스터 클러스터
••
클러스터 클러스터 컴퓨터 컴퓨터 구조 구조
분산처리 35
클러스터 클러스터
••
클러스터 클러스터 미들웨어 미들웨어 서비스와 서비스와 기능 기능
–– 단일 단일 진입점 진입점: : 개별 개별 컴퓨터가 컴퓨터가 아닌 아닌 클러스터에 클러스터에 로그인 로그인
–– 단일 단일 파일 파일 계층 계층 구조 구조: : 사용자는 사용자는 같은 같은 류트 류트 디렉토리에서 디렉토리에서 단일 단일 디렉토리
디렉토리 계층 계층 구조를 구조를 본다 본다 디렉토리
디렉토리 계층 계층 구조를 구조를 본다 본다..
–– 단일 단일 제어점 제어점: : 클러스터 클러스터 관리와 관리와 제어를 제어를 위한 위한 기본 기본 노드 노드 존재 존재 단일
단일 가상 가상 네트워크 네트워크 실제 실제 클러스터가 클러스터가 다중 다중 상호연결 상호연결 네트워 네트워 –– 단일 단일 가상 가상 네트워크 네트워크: : 실제 실제 클러스터가 클러스터가 다중 다중 상호연결 상호연결 네트워 네트워
크로
크로 연결되었더라도 연결되었더라도 어떤 어떤 노드도 노드도 클러스터 클러스터 내의 내의 다른 다른 노드에 노드에 접근할
접근할 수 수 있다 있다..
–– 단일 단일 메모리 메모리 공간 공간: : 분산 분산 공유 공유 메모리가 메모리가 변수를 변수를 공유할 공유할 수 수 있게 있게 한다
한다..
–– 단일 단일 작업 작업 관리 관리 시스템 시스템: : 사용자가 사용자가 업무를 업무를 수행할 수행할 노드를 노드를 명시 명시 하지
하지 않고도 않고도 작업을 작업을 수행시킬 수행시킬 수 수 있다 있다..
클러스터 클러스터
••
클러스터 클러스터 미들웨어 미들웨어 서비스와 서비스와 기능 기능
–– 단일 단일 사용자 사용자 인터페이스 인터페이스: : 모든 모든 사용자는 사용자는 공통 공통 그래픽 그래픽 인터페 인터페 이스를
이스를 사용한다 사용한다..
단일
단일 입출력 입출력 공간 공간 물리적 물리적 위치를 위치를 알 알 필요 필요 없이 없이 모든 모든 입출력 입출력 –– 단일 단일 입출력 입출력 공간 공간: : 물리적 물리적 위치를 위치를 알 알 필요 필요 없이 없이 모든 모든 입출력 입출력
장치에
장치에 접근할 접근할 수 수 있다 있다..
–– 단일 단일 프로세스 단일 단일 프로세스 프로세스 공간 프로세스 공간 공간:: 클러스터내에서는 공간: : 클러스터내에서는 클러스터내에서는 동일한 클러스터내에서는 동일한 동일한 프로세스 동일한 프로세스 프로세스 식별 프로세스 식별 식별 식별 기법이
기법이 사용된다 사용된다..
–– 검사점 검사점(checkpoint): (checkpoint): 프로세스의 프로세스의 상태와 상태와 중간 중간 계산 계산 값을 값을 주기 주기 적으로
적으로 저장하여 저장하여 고장시 고장시 롤백 롤백(rollback) (rollback) 회복이 회복이 가능하게 가능하게 한다 한다..
–– 프로세스 프로세스 이주 이주: : 부하 부하 균등화를 균등화를 가능하게 가능하게 한다 한다..
분산처리 37
클러스터 클러스터
••
클러스터와 클러스터와 SMP SMP의 의 비교 비교
–– SMP SMP가 가 클러스터보다 클러스터보다 관리하고 관리하고 구성하는데 구성하는데 더 더 쉽다 쉽다..
–– SMP SMP가 가 물리적인 물리적인 공간과 공간과 전원을 전원을 덜 덜 쓴다 쓴다..
–– SMP SMP 제품이 제품이 잘 잘 정착되고 정착되고 안정적이다 안정적이다..
–– 클러스터는 클러스터는 점진적인 점진적인 확장성과 확장성과 절대적인 절대적인 확장성 확장성 측면에서 측면에서 SMP
SMP보다 보다 우위에 우위에 있다 있다 SMP
SMP보다 보다 우위에 우위에 있다 있다..
–– 클러스터가 클러스터가 가용성 가용성 측면에서 측면에서 우위에 우위에 있다 있다..
클러스터 클러스터
••
Windows Windows 클러스터 클러스터
–– Windows Windows 클러스터 클러스터 설계 설계 개념 개념
•• 클러스터클러스터 서비스서비스: : 각각 노드에서노드에서 모든모든 클러스터클러스터--특정특정 활동을활동을 관리관리 하는
하는 소프트웨어의소프트웨어의 집합집합 하는
하는 소프트웨어의소프트웨어의 집합집합
•• 자원자원: : 클러스터클러스터 서비스에서비스에 의하여의하여 관리되는관리되는 물리적인물리적인 논리적인논리적인 자자 원
원
•• 온라인온라인: : 자원이자원이 특정특정 노드에게노드에게 서비스를서비스를 제공할제공할 때때 그그 자원은자원은 그그 노드에서
노드에서 온라인이라고온라인이라고 한다한다..
•• 그룹그룹:: 단일단일 단위로서단위로서 관리되는관리되는 자원의자원의 집합집합
•• 그룹그룹: : 단일단일 단위로서단위로서 관리되는관리되는 자원의자원의 집합집합
분산처리 39
클러스터 클러스터
••
Windows Windows 클러스터 클러스터 서버 서버
관리자관리자 –– 노드노드 관리자관리자
•• 클러스터클러스터 내에내에 있는있는 노드노드 구성원을구성원을 유지하는유지하는 기능기능 수행수행 –– 구성구성 데이터베이스구성구성 데이터베이스데이터베이스 관리자데이터베이스 관리자관리자관리자
•• 클러스터클러스터 구성구성 데이터베이스를데이터베이스를 유지유지 관리한다관리한다..
–– 자원관리자자원관리자//고장극복관리자고장극복관리자
•• 자원자원 그룹에그룹에 관련된관련된 모든모든 결정을결정을 내리며내리며 시작시작, , 재설정재설정, , 고장고장 극복과극복과 같은같은 적절한
적절한 활동을활동을 수행한다수행한다..
–– 이벤트이벤트 처리기이벤트이벤트 처리기처리기처리기
•• 클러스터클러스터 서비스의서비스의 모든모든 요소와요소와 연결되어연결되어 있으며있으며, , 공통공통 동작을동작을 처리하고처리하고 클러스터
클러스터 서비스서비스 초기화를초기화를 제어한다제어한다..
통신관리자 통신관리자 –– 통신관리자통신관리자
•• 클러스터의클러스터의 다른다른 노드들과의노드들과의 메시지메시지 교환교환 기능을기능을 수행한다수행한다..
–– 전역전역 갱신전역전역 갱신갱신 관리자갱신 관리자관리자관리자
•• 클러스터클러스터 서비스서비스 내에서내에서 다른다른 요소들에요소들에 의해서의해서 사용되는사용되는 서비스를서비스를 제공제공
클러스터 클러스터
••
Windows Windows 클러스터 클러스터 서버 서버
분산처리 41
클러스터 클러스터
••
Sun Sun 클러스터 클러스터
–– Solaris Solaris 운영체제에 운영체제에 운영되는 운영되는 단일 단일 컴퓨터 컴퓨터 이미지를 이미지를 기반으로 기반으로 확장된
확장된 분산 분산 운영체제 운영체제 SS 클러스터의 클러스터의 주요 주요 요소 요소 –– Sun Sun 클러스터의 클러스터의 주요 주요 요소 요소
•• 객체와객체와 통신통신 지원지원: : 객체객체 지향지향 방식으로방식으로 구현되었으며구현되었으며, CORBA , CORBA 객객 체
체 모델이모델이 사용된다사용된다..
체
체 이이 사용 다사용 다
•• 프로세스프로세스 관리관리: : 프로세스의프로세스의 위치가위치가 사용자에게사용자에게 투명투명(transparent)(transparent) 하도록
하도록 프로세스프로세스 동작을동작을 확장확장 네트워킹
네트워킹 패켓패켓 필더를필더를 사용하여사용하여 외부적으로외부적으로 단일단일 IPIP 주소를주소를 가가
•• 네트워킹네트워킹: : 패켓패켓 필더를필더를 사용하여사용하여 외부적으로외부적으로 단일단일 IP IP 주소를주소를 가가 지는
지는 것처럼것처럼 모이도록모이도록 한다한다..
클러스터 클러스터
••
Sun Sun 클러스터 클러스터 구조 구조
분산처리 43
클러스터 클러스터
••
Sun Sun 클러스터 클러스터 파일 파일 시스템 시스템 확장 확장
클러스터 클러스터
••
Beowulf Beowulf와 와 Linux Linux 클러스터 클러스터
ff 의의 성성 컴 팅컴 팅 및및 신신 젝 의젝 의 일환일환 –– Beowulf: 1994sus nasaBeowulf: 1994sus nasa의의 고성능고성능 컴퓨팅컴퓨팅 및및 통신통신 프로젝트의프로젝트의 일환으일환으
로 로 시작시작
–– 최소의최소의 비용으로최 의최 의 비용비용으로 현재의비용 현재의 워크스테이션현재의현재의 워워크스테이션 능력을워 테이션테이션 능력을능력을 뛰어넘는능력을 뛰어넘는뛰어넘는 중요한뛰어넘는 중 한중요한 계산중 한 계산계산계산 을
을 수행하기수행하기 위한위한 클러스터클러스터 PCPC의의 잠재성을잠재성을 연구하기연구하기 위해위해 시작시작 –– BeowulfBeowulf의의 주요주요 특성특성
대량판매용
대량판매용 구성요소구성요소
•• 대량판매용대량판매용 구성요소구성요소
•• 전용처리기전용처리기
•• 전용의전용의 사설사설 네트워크네트워크
•• 맞춤화되지맞춤화되지 않은않은 구성요소구성요소
•• 다중다중 판매자로판매자로 부터의부터의 용이한용이한 복제복제 확장성
확장성 있는있는 입출력입출력
•• 확장성확장성 있는있는 입출력입출력
•• 자유롭게자유롭게 이용이용 가능한가능한 소프트웨어소프트웨어 기반기반
•• 최소한의최소한의 변경만이변경만이 요구되는요구되는 분산분산 컴퓨팅컴퓨팅 툴의툴의 사용사용
45
•• 설계와설계와 개량개량 기법의기법의 공동체로의공동체로의 환원환원
분산처리
클러스터 클러스터
••
일반적인 일반적인 Beowulf Beowulf의 의 구성 구성
요 요 약약
••
클라이언트 클라이언트//서버 서버 컴퓨팅 컴퓨팅
–– 클라이언트 클라이언트//서버 서버 컴퓨팅의 컴퓨팅의 개념 개념, , 응용 응용, , 구조 구조
••
분산시스템의 분산시스템의 22가지 가지 주요 주요 통신기법 통신기법
–– 분산메시지전달 분산메시지전달, , 원격프로시저호출 원격프로시저호출 기법 기법
••
클러스터 클러스터 클러 터 클러 터
–– 클러스터의 클러스터의 개념 개념, , 구성 구성, , 설계 설계 이슈 이슈
••
Windows Sun Linux Windows Sun Linux의 의 클러스터링 클러스터링 기법 기법
••
Windows, Sun, Linux Windows, Sun, Linux의 의 클러스터링 클러스터링 기법 기법
분산처리 47