본문 바로가기

Insight for 기획/서비스 기획

[그리드 컴퓨팅] 그리드 컴퓨팅 입문


그리드 컴퓨팅 입문 (한글)



그리드 컴퓨팅이란?
그리드 컴퓨팅이 중요한 이유
그리드 컴퓨팅 활용 방법은?
그리드 컴퓨팅의 핵심 컴포넌트
그리드 컴퓨팅과 표준
그리드 구현
그리드용 애플리케이션




그리드 컴퓨팅은 컴퓨팅 리소스의 가치를 극대화 하는 방식에 대한 사고 방식에 중대한 변화를 가져왔다. 이 기술은 아직은 초기 단계지만, 이곳 developerWorks 그리드 컴퓨팅 존에서는 새로운 기술자료, 튜토리얼, 리소스, 툴 등을 지속적으로 실어, 개발자들이 이 중요한 첨단 기술에 대응할 수 있도록 할 것이다.

그리드 컴퓨팅에 관심이 많은 사람들은 다음과 같은 매우 기본적인 질문들을 한다.

  • 어디서부터 시작해야 하나요?
  • 이 많은 정보들을 어떻게 사용해야 하나요?
  • 이 정보들을 조합하는 방법은?
  • 그 다음은 무엇입니까?

본 장에서는 그리드 컴퓨팅이 가진 뛰어난 장점들에 대해 배울 수 있다. 그리드 컴퓨팅의 기초에 초점을 맞추고 기술자료, 튜토리얼과 팁, IBM 교육 프로그램, 워크샵, IBM 제품 등을 통해 설명하고 있다. 그리드 컴퓨팅에 대한 정보를 알기 쉽도록 설명하면서 중요한 요점도 빠짐 없이 설명하도록 하겠다.

그리드는 아직 완성된 것은 아니며 그리드 기술은 빠르게 진보하고 있다. 표준, 프레임웍, 구현, 애플리케이션들은 지속적으로 변하고 있다. 오늘날 그리드 컴퓨팅은 웹의 초창기를 떠오르게 한다. 바로 서서히 시작되었다는 점이다. XML과 웹 서비스가 출현했을 때도 마찬가지였다. 하지만 일단 확고한 표준과 툴이 등장하여 성장하면 그리드 컴퓨팅 세계에 엄청난 이득과 성장이 있을 것을 예견할 수 있다.


그리드 컴퓨팅이란?

그리드는 신생 기술이기 때문에, 다양한 사람들에게 다양한 의미로 해석될 수 있지만, 다음과 같이 그리드 컴퓨팅의 개념을 명확히 정의하기도 한다. 그리드 컴퓨팅은 서버, 스토리지 시스템, 네트워크를 하나의 큰 시스템으로 통합하여 개별 사용자들에게 멀티 시스템 리소스들을 전달하는 것이 목적이다. 사용자, 데이터 파일, 또는 애플리케이션에게 있어, 시스템이란 하나의 거대한 가상 컴퓨팅 환경이 되는 것이다.

그리드 컴퓨팅은 분산 네트워킹에서 논리적 다음 단계이다. 인터넷을 통해 사람들이 프로젝트 기반으로서 생각과 파일들을 공유할 수 있던 것과 마찬가지로, 그리드 컴퓨팅으로 분산 컴퓨터 시스템들의 리소스들을 공유하여 그 프로젝트에 대해 실제적인 일을 할 수 있는 것이다. 그리드 컴퓨팅은 컴퓨터 (그리고 사용자들)의 기능들을 더욱 심도 깊게 통신할 수 있도록 하는 장치이다. 그리드 컴퓨팅을 사용하여 다른 머신들의 전산 자원 또는 스토리지 자원들을 사용할 수 있다.

그리드 컴퓨팅에서, 조직들은 분산되고, 관리하기 어려운 시스템들을 하나의 큰 가상 컴퓨터로 변형하여 한 개의 컴퓨터로는 효율적으로 핸들 할 수 없는 복잡한 문제와 프로세스로 만듭니다. 해결된 문제들은 데이터 프로세싱, 네트워크 대역폭, 데이터 스토리지에 개입할 수 있다. 그리드에 연결된 시스템들은 같은 공간에 있을 수 있고 또는 전 세계에 걸쳐 분산될 수 있다. 많은 하드웨어 플랫폼에서 실행되는 다양한 OS가 될 수도 있다. 다른 조직들에 의해 소유될 수도 있다. 그리드의 리소스들의 깊이와 상관없이 모든 그리드 사용자들은 매우 큰 가상 컴퓨터의 리소스들을 경험할 수 있다.

그리드의 주요 목적은 리소스들을 가상화 하여 문제를 해결하는 것이다. 그리드 컴퓨팅의 주요 리소스들은 많이 있지만 본 장에서는 다음으로 제한한다.

  • 컴퓨팅/프로세싱 파워
  • 데이터 스토리지/네트워크 파일 시스템
  • 통신과 대역폭
  • 애플리케이션 소프트웨어

그리드를 실제 생활에 적용한다는 개념은 아직은 생소하기 때문에 그리드를 설명할 수 있는 또 다른 방법은 무엇이 그리드가 아닌지를 밝혀내는 것이다. 다음은 그리드가 아니다.

  • 클러스터
  • 네트워크에 부착된 스토리지 장치
  • 과학적 기구
  • 네트워크

각각은 그리드의 중요한 컴포넌트이기는 하지만 그리드는 아니다.

그렇다면, 그리드 컴퓨팅 개념을 현실로 옮기기 위해서는 무엇이 필요할까요? 표준과, 완벽한 개방형 범용 프로토콜과 인터페이스가 필요하다. 이 모두는 현재 정의되어 있고 웹에서 정보에 접근할 수 있도록 하는 것과 비슷하다.

추가자료:



위로


그리드 컴퓨팅이 중요한 이유

그리드 컴퓨팅은 컴퓨터들이 함께 작동하도록 하는 것이다. 거의 모든 조직에서 광범위하게 분산되어 사용되지 않는 컴퓨팅 용량이 상당하다. 유닉스 서버는 실제로 전체 시간 중10% 정도만 작동하고 있다. 대부분의 PC들은 일상에서 95%는 아무것도 수행하지 않는다. 90%의 비행기가 땅에 머무르고 있는 비행기 회사를 상상해보라. 40%의 부품 공장들이 유휴 상태에 있는 자동차 회사, 95%의 방이 비어있는 호텔을 상상해보라.

컴퓨팅 환경의 가상화-또는 그리드 컴퓨팅-는 IBM의 온 디맨드 전략의 핵심 요소이다. 가상화를 통해 조직들은 다음과 같은 일을 수행한다.

  • 유휴 컴퓨터 리소스들을 사용하여 비즈니스 프로세스를 가속화한다.
  • 애플리케이션 속도를 높여 프로세싱 시간을 줄이다.
  • 새롭고, 더욱 생산적인 애플리케이션의 개발을 촉진한다.
  • 새로운 애플리케이션의 개발 비용을 줄이다.
  • 협업 기능과 생산성 기능을 증대한다.
  • 사용자들이 사용할 수 있는 리소스들을 최대화 한다.
  • IT 환경의 복원력과 활용도를 증대한다.

관리자들과 개발자들이 그리드 컴퓨팅을 통해 효과를 보는 이유는 다음과 같다.

  • 워크로드의 균형을 맞춰 기반 구조를 최적화하고 수요가 많은 애플리케이션에 여분의 용량을 제공한다.
  • 데이터에 대한 접근성을 증대시키고, 교육, 조직, 비즈니스를 통한 협업을 지원한다
  • 보다 복원력이 높은 인프라를 제공한다.

비즈니스가 그리드 컴퓨팅을 통해 효과를 보는 이유는 다음과 같다.

  • 사용자들이 필요로 하는 리소스들을 온 디맨드로 제공하여 생산성을 높인다.
  • 기존 리소스들을 더욱 효율적으로 사용한다.
  • 변화하는 비즈니스 및 시장 요구에 빠르게 대응한다.
  • 분산 엔터티들간 협업이 가능하다.
  • 리소스와 데이터를 공유할 수 있는 가상 조직을 만든다.

그리드 컴퓨팅이 기업에 가져온 가장 중요한 이슈들 중 하나는 기존 리소스들의 활용이다. 기업들은 컴퓨팅 용량에 많은 투자를 해왔지만 90 퍼센트 이상이 놀고 있다. 그리드 컴퓨팅을 통해 기업들은 사용하지 않는 자산들에 연결하여, 집합적 힘을 사용하고, 하나의 큰 컴퓨터처럼 관리한다.

추가자료:



위로


그리드 컴퓨팅 활용 방법은?

그리드 컴퓨팅의 개념은 연구소와 학계 커뮤니티에서 생겨났다. 인터넷과 비슷하지만, 기업들은 그리드 컴퓨팅을 새로운 유형의 금융 및 비즈니스 모델에 활용하고 있다.

  • 금융 서비스 분야에서, 그리드 컴퓨팅은 트랜잭션 속도를 높이고, 거대한 양의 데이터를 쪼개고, 미션 크리티컬 환경에서 보다 안정적인 IT 환경을 제공한다.
  • 정부 기관들은 그리드를 사용하여 거대한 데이터들을 풀링, 보안, 통합할 수 있다. 많은 민간 기관과 군 기관들은 기관들 간 협업 기능, 데이터 무결성 및 보안, 빠른 정보 접근을 필요로 한다.
  • 게놈(GENOME) 연구와 의약 개발을 하는 생명 과학 분야의 기업들은 병렬의 그리드 컴퓨팅을 사용하여 거대한 양의 데이터를 처리 및 비교할 수 있다. 빠른 프로세싱으로 시장 진입이 빨라 진다는 것을 의미하며 이것은 결정적인 요소이다.

이러한 새로운 그리드 지향 비즈니스 모델이 구현될 수 있을 뿐더러, 어떤 것은 이미 구현되었다.

추가자료:



위로


그리드 컴퓨팅의 핵심 컴포넌트

그리드 컴퓨팅에는 여섯 개의 주요 요소들이 있다.

  • 보안
  • 사용자 인터페이스
  • 워크로드 관리
  • 스케줄러
  • 데이터 관리
  • 리소스 관리

한가지 씩 자세히 검토해보자.

그리드 상의 컴퓨터들은 네트워크로 연결되어 있고 애플리케이션들을 실행한다. 민감한 데이터나 매우 귀중한 데이터들을 처리하기 때문에 그리드 컴퓨팅의 보안 요소는 매우 중요하다. 이 요소에는 암호화, 인증, 권한 등이 포함된다.

그리드 상에 있는 정보에 접근하는 것 역시 매우 중요하고, 사용자 인터페이스 컴포넌트가 이 일을 수행한다. 방식은 두 가지 중 하나를 취한다.

  • 사용자가 실행하고 있는 애플리케이션에서 제공하는 인터페이스
  • 그리드 관리자가 제공하는 인터페이스로서, 하나의 가상 공간의 그리드에서 실행되는 애플리케이션과 리소스에 접근하는 웹 포탈과 같다.

포탈 스타일의 인터페이스도 중요하다. 그리드를 쿼리하는 방법을 사용자가 배울 수 있는 공간이 되기 때문이다.

사용자가 그리드 상에서 실행하는 애플리케이션들은 사용할 수 있는 리소스들을 알고 있어야 한다. 이를 통해 워크로드 관리 서비스가 수월해집니다. 애플리케이션은 워크로드 관리자와 통신하여 가용 리소스들과 이것의 상태를 발견할 수 있다.

스케줄러는 애플리케이션을 실행하고 필요한 작업을 할당할 장소에 컴퓨터를 배치할 때 필요하다. 차후 사용할 수 있는 리소스들을 획득하는 것 만큼 단순하지만, 작업 순서를 정하고, 부하를 관리하고, 예약 리소스들과 만났을 때 해결책을 모색해야 하며 과정을 감시해야 한다.

애플리케이션이 필요로 하는 데이터를 보유하지 않은 시스템에서 애플리케이션이 실행된다면 안전한 데이터 관리 장치가 데이터를 올바른 장소에 옮긴다.

특정 리소스들과 함께 작업을 시작하고, 작업 상태를 감시하고, 결과를 검사하는 등의 핵심 태스크를 핸들 하기 위해서는 리소스 관리 장치가 필요하다.

그리드 컴퓨팅은 진공 상태에서는 작동하지 않는다. 오히려 모든 프로토콜과 컴퓨터 기술들이 잠재적으로 개입되어 있다. 따라서, 그리드 컴퓨팅의 힘의 범위를 제대로 이해하려면 다른 기술들과 표준들도 알아야 한다.

추가자료:



위로


그리드 컴퓨팅과 표준

그리드 컴퓨팅의 표준을 이해하려면 그리드 아키텍처가 어떻게 정의되는지도 알아야 한다. Global Grid Forum (GGF)의 멤버들이 개발한 Open Grid Services Architecture (OGSA)의 아키텍처 정의에 대해 알아보도록 하자.

아키텍처 -- OGSA는 그리드 서비스가 무엇인지, 그리드 환경에서 제공되는 전체 구조와 서비스들을 정의하고 있다. 기존 웹 서비스 표준 기반하여, OGSA는 그리드 서비스를 특정 규약에 순응하는 웹 서비스로서 정의한다. 예를 들어, 그리드 서비스는 표준 Web Services Definition Language (WSDL)의 용어로 정의된다.

이것이 왜 중요한가? 이것은 일반적인 개방 표준 기반의 기술을 제공하여 SOAP, XML, WS-Security 같은 기존 표준을 사용하는 다양한 그리드 서비스에 액세스할 수 있도록 하기 때문이다. 이것을 기초로 하여 추가 서비스들을 추가 또는 통합할 수 있다. 새로운 그리드 서비스를 찾고, 정의하고, 활용할 표준 방식도 제공한다.

또한, OGSA는 다양한 툴을 사용하여 구현된 그리드 간 상호 운용성을 제공한다.

스팩 -- 그리드 스팩은 진화하고 있다. GGF와 OASIS 같은 조직들은 다음과 같은 분야에서 그리드 표준을 정의하고 있다.

  • 애플리케이션과 프로그래밍 방식
  • 아키텍처
  • 데이터 관리
  • 보안
  • 퍼포먼스
  • 스케줄링과 리소스 관리

Open Grid Services Infrastructure (OGSI)는 OGSA가 설명한 개념의 공식 스팩이지만 Web Services Resource Framework (WSRF)이 대신해왔다. WSRF의 목적은 웹 서비스의 진화 방식으로 그리드 아키텍처를 진화 시키는 것이다. 새로운 유형의 그리드 서비스를 정의하는 대신 이 스팩은 OGSA로 정의된 서비스들이 표준 웹 서비스에 전적으로 의존하도록 하고 있다.

그리드 표준의 진화에 대해 어느 정도 알아야 할까? 상황에 따라 다르다. IBM과 여러 소프트웨어 연구자들은 그리드 표준을 정의하고 있다. 기업의 소프트웨어 개발자인가? 그렇다면 새로운 표준에 기반한 그리드 툴과 제품을 사용하게 될 것이다. 표준과 일이 어떻게 진행되고 있는지도 관심을 가져보라.

추가자료:



위로


그리드 구현

오픈 소스와 상용 툴 및 제품을 사용하여 그리드를 구현할 수 있다. 그리드 표준이 점점 확고해지면서 벤더들에게는 표준에 순응하고 결합하기 쉬운 컴포넌트가 요구되고 있다.

그리드를 구현하는데 기본적으로 어떤 기술이 필요할까? 그리드 컴퓨팅에 필수적인 서비스는 무엇일까? 서비스들은 다음과 같다.

  • 데이터 쿼리
  • 데이터 관리
  • 프로세서 요청
  • 워크로드 밸런싱
  • 작업 스케줄링
  • 대역폭 할당

이 서비스들을 그리드 서비스라고 한다. 어떤 컴퓨터는 그리드 서비스를 호스팅하고, 어떤 컴퓨터는 그리드 서비스와 클라이언트로서 계약을 맺은 애플리케이션을 실행하고 있다. 그리드 서비스는 근본적으로 추가 기능을 갖춘 웹 서비스이다.

웹 서비스-네트워크를 통해서 호출될 수 있는 애플리케이션 기능 그룹-는 플랫폼과 프로그래밍 언어와 상관없이 애플리케이션이 서로 통신하도록 한다.

그리드를 구현하기 위해서는 툴이 필요하다. 다음은 그리드 툴 범주이다.

  • 인프라 컴포넌트에는 파일 시스템, 스케줄러와 리소스 매니저, 메시징 시스템, 보안 애플리케이션, 인증 권한, 파일 전송 메커니즘(GridFTP) 등이 있다.
  • 그리드 상의 시스템은 사용할 수 있는 서비스들을 찾을 수 있어야 한다. 공유와 협업을 위해서는 그리드의 토폴로지를 정의하고 감시해야 한다. 이를 위해, LDAP, DNS, 네트워크 관리 프로토콜, 인덱싱 서비스 같은 기존 모델에 기반한 그리드 디렉토리 서비스 구현이 있다.
  • 그리드의 주요 장점 중 하나는 효율성 증대에 있다. 스케줄러와 로드 밸런서 때문에 가능하다. 스케줄러는 특정 순서로 작업이 완료되는 것을 보장하고, 로드 밸런서는 시스템들에 걸쳐 태스크와 데이터 관리를 분산하여 병목현상을 줄이다.
  • 그리드 개발자용 툴은 다양한 용도(파일 전송, 통신, 환경 제어)에 초점을 맞추고 있고 유틸리티에서 API에 이르기까지 다양하다.
  • 그리드 환경의 보안은 인증과 권한을 의미한다. 하지만 메시지 무결성과 기밀성 같은 중요한 문제들도 의미한다.

그리드를 구현하는 좋은 출발점은 Globus Toolkit을 다운로드 하는 것이다. Globus Project에서 개발한 이 툴킷은 그리드와 그리드 애플리케이션을 지원하도록 설계된 서비스와 소프트웨어 라이브러리다.

Commodity Grid Kit(CoG)은 자바, Python, Perl 같은 특정 프레임웍을 통해 그리드 서비스로 접근 할 수 있도록 한다.

추가자료:



위로


그리드용 애플리케이션

이 부분은 몇 가지 계획이 필요하다.

그리드와 서비스를 제공할 기본 구조를 생각해야 한다. 애플리케이션 아키텍처, 디자인, 전개에 영향을 끼칠 보안, 리소스 관리, 정보 서비스, 데이터 관리 같은 인프라 컴포넌트들을 어떻게 맞춰나갈지를 생각해야 한다.

추가자료: