KR100840960B1 - 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템 - Google Patents

동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100840960B1
KR100840960B1 KR1020037000778A KR20037000778A KR100840960B1 KR 100840960 B1 KR100840960 B1 KR 100840960B1 KR 1020037000778 A KR1020037000778 A KR 1020037000778A KR 20037000778 A KR20037000778 A KR 20037000778A KR 100840960 B1 KR100840960 B1 KR 100840960B1
Authority
KR
South Korea
Prior art keywords
server
servers
management group
management
customer account
Prior art date
Application number
KR1020037000778A
Other languages
English (en)
Other versions
KR20030019592A (ko
Inventor
시츠키트릭비
스미스필립에스
엔젤스텝펜제이
뎅유에팽
구이스토지조셉
코롭카알렉산더
Original Assignee
갈랙틱 컴퓨팅 코포레이션 비브이아이/아이비씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/710,095 external-priority patent/US6816905B1/en
Application filed by 갈랙틱 컴퓨팅 코포레이션 비브이아이/아이비씨 filed Critical 갈랙틱 컴퓨팅 코포레이션 비브이아이/아이비씨
Publication of KR20030019592A publication Critical patent/KR20030019592A/ko
Application granted granted Critical
Publication of KR100840960B1 publication Critical patent/KR100840960B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명에 따르면, 인터넷에 대한 호스트 서비스 제공자는 이종의 고객 계정 및/또는 지리적으로 별개의 위치(80) 양단에서 호스트 서비스의 동적 관리를 제공하도록 운영된다. 복수의 개별적인 서버는 그 고객 계정에 대해 정의된 공통 관리 그룹에 할당되고, 그 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성되며, 호스트 서비스를 그 고객 계정에 제공한다. 이 시스템은 각 관리 그룹내 서버의 성능 및 헬스(health)를 자동으로 모니터링한다. 제1 관리 그룹(52a)으로부터의 적어도 하나의 서버는 자동 모니터링에 응답하여, 제2 관리 그룹(52b)에 자동으로 및 동적으로 재할당된다. 각 관리 그룹은 사용 요구, 이용가능한 자원 및 상이한 고객 계정에 의한 서비스 레벨 승인에 응답하여, 서버를 상이한 관리 작업 그룹에 동적으로 재할당하는 시기 및 방법을 결정하는 마스터 결정 소프트웨어 프로그램과 통신하는 국부 결정 소프트웨어 프로그램을 포함한다.

Description

동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING DYNAMIC HOSTED SERVICE MANAGEMENT}
본 발명은, 일반적으로 데이터 처리 비지니스 업무(business practices) 분야에 관한 것으로, 특히 이종의 고객 계정 및/또는 지리적으로 별개의 위치 양단에서 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템에 관한 것이다.
인터넷은 인터넷 서비스 제공자(ISP), 응용 서비스 제공자(ASP), 독립 소프트웨어 개발업체(ISV), 기업 솔루션 제공자(ESP) 및 관리 서비스 제공자(MSP) 등과 같은 상업적 서비스 제공자 및 호스팅 기기의 출력에 의해 광범위한 분야에 걸쳐서 폭발적으로 성장해 가고 있다. 비록 이들 각각의 비지니스에 의해 제공되는 정확한 서비스 세트의 분명한 정의가 존재하지 않는다고 하더라도, 일반적으로 이들 서비스 제공자 및 호스팅 기기는 셋업 대금 및 정기적인 요금을 지불하는 댓가로 애플리케이션 호스팅, 사이트 개발, 전자 상거래 관리 및 서버 배치에 대해서 고객의 요구의 일부, 대부분 또는 전체를 만족시키도록 만들어진 서비스를 제공한다. 서버 배치와 관련해서는, 예를 들어, 요금은, 관례적으로 고객이 고객의 애플리케이션 또는 웹사이트를 호스팅하기 위해 규정하는 특정 하드웨어 및 소프트웨어 구성에 기초한다. 본 발명을 위해서, "호스트 서비스(hosted service)"라고 하는 용어는 이 서비스 제공자의 스펙트럼 및 호스팅 기기에 의해 제공되는 각종 타입의 이들 서비스를 포함한다. 설명의 편의상, 이 서비스 제공자 그룹 및 호스팅 기기는 집합적으로 호스트 서비스 제공자(HSP)라고 칭한다.
상업적인 HSP는, 전화 회사가 사용자들의 의도된 호출자에게로의 접속을 국제 전화망을 통하여 고객에게 제공하는 것과 동일한 방식으로 인터넷 상의 호스트 애플리케이션으로의 액세스를 사용자에게 제공한다. HSP가 그들이 제공하는 애플리케이션 및 서비스를 호스팅하기 위해 이용하는 컴퓨터 장치는, 공통적으로 서버라고 칭한다. 그 HSP의 가장 간단한 형태로서는, 서버가 네트워크 인터페이스를 통하여 인터넷에 접속되어, 그 서버의 고객 또는 클라이언트에 의해 이루어진 요구를 서비스하도록 설계된 특정 소프트웨어를 동작시키는 퍼스널 컴퓨터일 수 있다. HSP에 의해 호스트 서비스를 제공하는데 이용될 수 있는 각종 전달 모델(delivery model) 전체에 있어서, 대부분의 HSP는 공통적으로 "서버 팜(server farm)"이라고 칭하는 것으로, 내부 네트워크에 접속된 서버의 집합(collection)을 이용하는데, 상기 서버 팜은 메일 서버, 웹 서버, 액세스 서버, 계정 및 관리 서버와 같이, 고유 업무를 수행하는 각 서버 또는 복수 업부의 부하를 공유하는 서버 그룹을 갖는다. 호스팅 웹 사이트에 관련해서는, 예를 들어 소형 웹사이트를 갖는 고객은 흔히 단일 웹 서버 상에서 집단을 이루거나 단일 웹 서버에 의해 지원을 받는다. 그러나, 대형 웹사이트는 공통적으로 그 웹 사이트에 대해 단독으로 서비스를 제공하는 전용 웹 서버 상에서 호스팅된다. 인터넷 및 HSP에 대한 일반적인 배경에 대해서는, 1999년에 제프 허스톤(Geoff Huston)에 의해 발행된 ISP Survival Guide: Strategies For Running A Competitive ISP를 참조하기 바란다.
인터넷 서비스에 대한 요구가 증가함에 따라서, 이 요구를 만족시키기 위해 계속 보다 큰 용량(ever-larger capacity)에 대한 요구가 있어 왔다. 하나의 솔루션으로는 서버와 같은 보다 강력한 컴퓨터 시스템을 이용하는 것이었다. 대형 메인프레임 및 중형 컴퓨터 시스템이 대형 웹사이트 및 기업 네트워크(corporate network)를 서비스하기 위한 서버로서 이용되고 있다. 대부분의 HSP는 이들 대형 컴퓨터 시스템을 이용하지 않는데, 왜냐하면 이러한 시스템은 고가이고, 복잡하며, 시스템의 유연성이 부족하기 때문이다. 사실상, HSP는 공통 인터넷 접속 또는 모뎀 뱅크에 유선으로 연결되어, 때때로 공통의 디스크 드라이브 세트에 액세스하는 다수의 개별적인 퍼스널 컴퓨터 서버로 구성된 서버 팜을 이용하는 것이 바람직하다. HSP가 새로운 호스트 서비스 고객을 부가하는 경우, 예를 들어 하나 이상의 퍼스널 컴퓨터 서버가 HSP 서버 팜을 수동으로 부가하며, 그 고객에 대한 적합한 소프트웨어 및 데이터(예컨대, 웹 콘텐츠)를 로드한다. 이러한 방법으로, HSP는 그의 현재의 고객 레벨을 지원하는데 필요한 그 하드웨어의 레벨만을 배치한다. 동일하게 중요한 만큼, HSP는 이 하드웨어 비용의 상당 부분을 차지하는 선행 투자된 셋업 요금을 그의 고객에게 과금할 수 있다. 이 방법을 이용함으로써, HSP는 HSP에 대해 즉각적인 수입(immediate revenue)을 생성하지 않는 유휴 용량(idle capacity)을 갖는 대형 컴퓨터 시스템에 대해 사전에 돈을 소비하지 않아야만 한다. 서버 팜 솔루션은 또한 상이한 고객들에 걸쳐 보안성 및 데이터 무결성을 유지하는 문제에 대해 이들 고객 모두가 단일의 대형 메인프레임 컴퓨터로부터 서비스를 받는 경우보 다 용이한 솔루션을 제공한다. 고객용 서버 전체에는 그 고객을 위한 소프트웨어만이 로드되고, 그 고객을 위한 데이터만이 접속된 경우, 그 고객의 정보 보안성은 물리적인 차단(physical isolation)에 의해 보장된다.
HSP의 경우, rens.com으로부터의 XaCCT 및 inovaware.com으로부터의 HSP Power와 같은, 다수의 소프트웨어 빌링(billing) 패키지는 계정에 대해 이용가능하고, 이들 정량화된 서비스(metered service)에 대해 과금한다. lightspeedsystems.com으로부터의 IP Magic, resonate.com으로부터의 Internet Services Management 및 luminate.com으로부터의 MAMBA와 같은, 다른 소프트웨어 프로그램은 HSP 네트워크의 관리를 돕기 위해 개발되어 있다. HSP의 관리 및 운영은 또한 허스티(Hursti), 쟈니(Jani), 및 1999년 4월 19일에 개최된 인터네트워킹(Internetworking)에서의 세미나인 "Management of the Access Network and Service Provisioning"과 같은 규약(article) 및 세미나의 주제를 갖는다. 1 개월 단위로 요금이 청구되는 상업적인 레벨의 인터넷 액세스 및 웹사이트 호스팅을 제공하기 위한 각종 하드웨어, 소프트웨어, 메인터먼스(maintenance) 및 서포트(support)의 구성을 제공하는 전형적인 HSP의 일례는 rackspace.com에서 발견할 수 있다.
지금까지, HSP가 자신들의 서버 팜을 구성하는 방법에 대해서 두 가지 방법이 있었다. 하나의 방법으로는 단일 제조업자로부터 공급되는 동질의 퍼스널 컴퓨터 시스템(하드웨어 및 소프트웨어)의 그룹을 이용하는 것이다. 또 다른 하나의 방법으로는 다수의 상이한 제조업자로부터 공급되는 퍼스널 컴퓨터 시스템을 이용하 는 것이다. 동질의 방법은 단일 서버 플랫폼을 지원하는 것만에 관해서 HSP의 이점을 제공하지만, 그와 동시에 HSP는 이 단일 서버 플랫폼으로 한정된다. 상이한 제조업자로부터 공급되는 시스템을 이용하는 이종의 방법은 시스템의 유연성이 보다 양호하며, 주어진 고객 또는 업무에 대해 가장 적합한 서버 하드웨어 및 소프트웨어 플랫폼을 이용하는 이점을 HSP에게 제공하지만, 이와 같은 시스템의 유연성은 증가된 복잡성의 비용에 이르고, 복수의 서버 플랫폼의 유지와 관련된 도전을 지원한다.
서버 팜을 대중화하기 위해 방법이 이용되고 있음에도 불구하고, 이러한 서버 팜의 실제적인 물리적 관리는 일반적으로 동일성을 유지한다. 고객이 그들의 계정에 대해 제공되는 서비스량을 증가 또는 감소시키고자 하는 경우, HSP는 그 클라이언트의 웹사이트의 데이터 스토리지 및 네트워크 상호접속에 직접 케이블링된 HSP의 서버 팜의 그 부분으로 또는 그 부분으로부터 서버를 수동으로 부가 또는 제거한다. 서비스를 부가하는 경우, 전형적인 프로세스에는 다음과 같은 몇 가지 변동이 있는데, (a) 서비스 레벨을 변경하기 위한 지시는 호스트 서비스 고객으로부터 수신되고, (b) HSP는 새로운 서버 하드웨어를 얻어 요구된 변화를 만족시키며, (c) HSP의 담당자는 새로운 서버 하드웨어를 서버 팜이 위치된 사이트에 물리적으로 설치하며, (d) 새로운 서버 하드웨어에 대한 케이블링은 그 사이트에 대한 데이터 스토리지 및 네트워크 접속에 부가되고, (e) 서버 하드웨어에 대한 소프트웨어가 서버에 로드되어 HSP의 담당자는 일련의 초기화 단계를 통하여 확실히 소프트웨어를 구성하며, (f) 새롭게 설치되어 전체적으로 구성되는 서버는 고객의 계정에 대한 호스트 서비스를 제공하는 서버의 기존의 관리 그룹을 연결한다. 이들 경우 중 어느 하나에 있어서, 각 서버 팜은 특정 고객에 할당되며, 그 고객 계정으로부터의 서비스에 대해 최대로 계획된 요구를 만족시키도록 구성되어야 한다.
원래는, 이 프로세스의 최종 단계가 완료될 수 있도록 하기 위해, 주어진 고객의 계정에 대한 관리 그룹 내의 기존 서버 중 일부 또는 전체를 재부팅 또는 재시작시킬 필요가 있는데, 왜냐하면 기존 서버 내의 포인터 및 테이블이 관리 그룹에 대한 새로운 서버의 부가를 반영하도록 수동 갱신을 필요로 하기 때문이다. 이 요구는 서버 하드웨어에서의 변화가 일요일밤 늦게와 같이 잘 정의된 서비스 윈도우에서 주기적으로 발생할 수 있을 뿐임을 설명한다. 보다 최근에는, 마이크로소프트 윈도우즈(Microsoft Windows) 2000, 마이크로소프트 클러스터 서버(Microsoft Cluster Server), 오라클 패러랠 서버(Oracle Parallel Server), 윈도우즈 네트워크 로드 밸런싱 서비스(NLB)[Windows Network Load Balancing Service(NLB)]와 같은 소프트웨어, 및 유사한 프로그램이 개발되어, 새로운 서버가 잘 정의된 이들 윈도우즈에서보다는 차라리 소정 시간에 기존의 관리 그룹에 자동으로 연결할 수 있게 확장되어 있다.
새로운 서버가 기존의 관리 그룹에 자동으로 연결될 수 있는 방법의 일례가 미국 특허 번호 제5,951,694호에 개시되어 있다. 이 미국 특허 번호 제5,951,694호에는, 관리 그룹내 서버 전체가 게이트웨이 서버에 의해 유지되는 맵핑 테이블 내에 나타내어져 있다. 이 맵핑 테이블은 관리 테이블에 대해 메일 서비스 그룹, 데이터베이스 서비스 그룹 및 액세스 서버 그룹 등과 같은 상이한 서비스 그룹을 식 별한다. 게이트웨이 서버는 관리 그룹에 대한 요구를 맵핑 테이블에 기초하여 적합한 서비스 그룹으로 라우팅한다. 새로운 서버는 게이트웨이 서버가 새로운 서버를 인식하고, 새로운 서버를 맵핑 테이블에 부가하며, 새로운 서버가 각 서비스 그룹에 대해 유지하는 트랜잭션 로그(transaction log)를 이용하여 그 서비스 그룹내 나머지 서버가 갖는 속도까지 되게 한 후, 그 서버 상의 적합한 소프트웨어 구성 요소를 로드함으로써 서비스 그룹 중 하나에 부가될 수 있다. 이와 달리, 하나의 서비스 그룹의 작업 부하는 과중하고, 또 다른 하나의 서비스 그룹의 작업 부하가 가벼운 경우, 하나의 서비스 그룹으로부터 또 다른 하나의 서비스 그룹으로 서버를 전환할 수 있다. 그 관리 그룹에 대한 요구를 보장하는 맵핑 테이블을 수정하기 위해 로드 밸런싱 체계를 이용하는 전용 관리 서버에서 실행되는 소프트웨어 루틴을 개시하고 있는 미국 특허 번호 제5,951,694호에서는 관리 그룹을 구성하는 각종 서비스 그룹 간에 보다 공평하게 밸런스를 취한다.
다수의 특허에는 단일 클러스터 또는 관리 그룹내 서버들간에 작업 부하의 밸런스를 취하기 위한 기술이 개시되어 있다. 미국 특허 번호 제6,006,529호는 마스터 서버 제어하에 있는 보안 및 중추부 배열을 구비하는 소프트웨어 클러스터링을 개시하며, 여기서 클러스터 부재 전체에는 공통 IP 어드레스를 할당하고 부하 밸런싱은 그 클러스터 내에서 수행된다. 미국 특허 번호 제5,537,542호 및 미국 특허 번호 제5,974,462호는 공유 데이터 공간을 갖는 다중시스템의 컴퓨터 처리 시스템을 위한 각종 작업 부하 밸런싱 배열을 개시하고 있다. 서버들간의 작업 분배는 또한 클라이언트와 서버 사이에 중간 시스템을 삽입함으로써 달성될 수 있다. 미국 특허 번호 제6,097,882호는 서버의 가용성 및 작업 부하에 기초하여 클라이언트와 서버 사이에서 IP 패킷의 방향을 투명하게 변경하기 위해 클라이언트와 서버 사이에 삽입된 리플리케이터(replicator) 시스템을 개시하고 있다.
단일 클러스터 내의 복수의 컴퓨터 또는 서버의 동작을 조절하기 위해 각종 기술이 또한 이용되고 있다. 미국 특허 번호 제6,014,669호는 록스텝(lock-step) 분배형 구성 파일을 이용하는 단일 클러스터내 복수의 서버의 클러스터 동작을 개시하고 있다. 미국 특허 번호 제6,088,727호는 공유 데이터 공간의 다중컴퓨터 환경에 있어서의 클러스터 제어를 개시하고 있다. 다른 특허는 단일 이미지의 입력/출력 공간이 복수의 컴퓨터를 조절하는데 이용될 수 있는 방법을 개시하고 있다. 미국 특허 번호 제5,832,222호는 단일 이미지의 입력/출력 공간이 지리적으로 분산된 컴퓨터 시스템을 조절하는데 이용될 수 있는 방법을 개시하고 있다. 미국 특허 번호 제6,067,545호는 공유 메타데이터 관리, 중복형(replicated) 구성 데이터베이스 및 도메인 부하 밸런싱을 갖는 분배형 파일 시스템을 개시하고 있으며, 이에 따라 서버가 구성 데이터베이스의 제어하에서 단일 도메인의 내부 및 외부에 있을 수 있게 한다.
이들 방법은 관리 그룹, 도메인 또는 공유 데이터 공간 내에서 서버의 관리를 개선하지만, 공통 동작 시스템 또는 공통 공유 데이터 공간에 대해 정의 및 링크된 서버의 그룹을 넘어서는 사항에 대해서는, 이들 기술은 확장 능력이 없다. 일반적으로, 이 제한은 문제점으로서 고려되고 있지 않았는데, 그 이유로는 이들 방법 전체가 단일 회사의 컴퓨터 네트워크 내에서 관리 및 실현되는 대기업 컴퓨팅 시스템에 관련되기 때문이다. 비록 이들 방법이 HSP에 의해 주어진 클라이언트 또는 고객을 위한 특정 계정에 할당된 서버를 관리하기 위해 이용될 수 있다 하더라도, 이들 방법 모두는 HSP가 호스트 서비스를 상이한 클라이언트 또는 고객을 위한 복수의 계정에 제공하는 서버 세트를 관리하게 할 수 없다.
휴렛팩커드(Hewlett-Packard)사로부터의 오픈뷰(OpenView), 컴퓨터 어소시에이츠(Computer Associates)사로부터의 유니센터(Unicenter) TNG, IBM사으로부터의 티볼리(Tivoli), 루미네이트(Luminate)사로부터의 맘바(Mamba) 및 BMC 소프트웨어사(Software, Inc.)로부터의 페트롤(Patrol)과 같은, 대기업 컴퓨팅 시스템의 동작을 관리하기 위한 시스템이 또한 개발되어 있다. 일반적으로, 이들 시스템은 단일 회사 또는 조직 내에서 동작하는 대량의 컴퓨터가 마주치게 되는 재고 관리 및 소프트웨어 배치 제어 문제에 초점을 맞추고 있다. 이들 운영 관리 시스템은 네트워크 상의 조직내 서버의 성능에 대해 질의하는 성능 모니터링 솔루션을 구비하여 추가의 자원 또는 부하 재분배를 위한 요구를 결정한다. 유사한 네트워크상(over-the-network)의 방법은 또한 중앙 집중식 레포팅 및 관리 특징을 제공하는데 이용된다. HSP에 의해 이용되는 이러한 타입의 운영 관리 시스템의 바람직한 예는 사용자 관리 모듈, 소프트웨어 분배 모듈, 재고 모듈, 기업 콘솔, 보안 모듈, 일단 구성 요소가 네트워크에 부가되면 네트워크내 구성 요소 전체를 사용자가 지정 가능한 도면(customizable view)을 제공하는 기업 관리 모듈, 및 작업 부하가 공통 데이터 공간을 공유하는 서버들간에 밸런스를 취할 수 있게 하는 작업 부하 스케줄러로 구성되는 티볼리 서비스 전달 관리 플랫폼(Tivoli Service Delivery Management Platform)이다. 이들 모듈 모두는 상태 및 부수적인 정보를 수집하여 다른 모듈로 보고하는, 네트워크내 각종 노드 상의 에이전트(agent)를 포함하는 네트워크 상의 통신 체계를 이용하여 동작한다. 일단 새로운 노드에 대한 하드웨어 구성 요소가 물리적으로 네트워크에 부가되면, 티볼리 서비스 전달 관리 플래폼의 각종 모듈은 보다 자동화된 기반에서 이들 구성 요소에 대해 인수를 받아 관리할 수 있다. 그러나, 새로운 노드에 대한 하드웨어를 네트워크 내에 물리적으로 부가하는 프로세스는 본질적으로 상기한 바와 동일한 방법으로 달성되는 수동 프로세스를 유지한다.
컴퓨터 시스템을 구성하는 물리적인 하드웨어에 관련해서, 컴퓨터 네트워크내 하드웨어 구성 요소의 고장을 자동으로 보상하기 위해 각종 방법이 개발되어 있다. 미국 특허 번호 제5,615,329호는 1차 컴퓨터 시스템이 고장난 경우에 2차 컴퓨터 시스템이 1차 컴퓨터 시스템에 대해 인수를 받는 전용인 별도의 1차 및 2차 컴퓨터 시스템을 이용하는 원격 데이터 쉐도우잉(shadowing)을 실현하는 전형적인 용장 하드웨어 배열의 일례를 개시하고 있다. 이들 타입의 미러링(mirroring) 배열 또는 쉐도우잉 배열이 갖는 문제점은, 그들은 특히 2차 컴퓨터 시스템이 1차 컴퓨터 시스템의 고장에 대해 대기하는 스탠바이 모드의 유휴 상태인 경우에 고가이고 낭비적일 수 있다는 것이다. 미국 특허 번호 제5,696,895호는 일련의 서버가 각각 그들 자체의 업무를 동작하지만, 각각은 또한 서버가 고장난 경우에 다른 서버 중 하나에 대해 백업(backup)으로서 기능하도록 할당되는 이 문제에 대한 하나의 솔루션을 개시하고 있다. 비록 성능이 열화된다 하더라도, 이 배열에 의해 양쪽 서버 모두에 의해 수행되는 업무가 백업 서버 상에서 계속될 수 있게 된다. 이 타입의 솔루션의 다른 예는 분포의 에포크점(POD: Epoch Point of Distribution) 서버 설계 및 USI 복합 웹 서비스를 포함한다. 이들 서비스를 제공하는데 이용되는 하드웨어 구성 요소는 관리 그룹내 하드웨어 구성 요소의 고장도 보상할 수 있는 부하 밸런싱 소프트웨어를 포함하는 사전정의된 계산 포드(computing pod)이다. 이러한 사전정의된 계산 포드를 이용하더라도, 관리 그룹 내로의 이러한 포드의 물리적인 준비 및 설치의 달성은 일주일까지 걸릴 수 있다.
이들 솔루션 모두는 자동으로 관리되고, 작업 부하의 밸런스를 취하며, 기존의 하드웨어 계산 능력에 기초하는 관리 그룹 내의 하드웨어 고장을 라우팅하도록 작동할 수 있다. 그러나, 관리 그룹에 대해 추가의 하드웨어 자원의 자동 배치를 허용하는 솔루션은 거의 없다. 관리 그룹내 추가의 하드웨어 자원에 대한 잠재적인 요구가 사전에 알려진 경우, 대부분의 공통 솔루션으로는 그 그룹을 위한 자원에 대해 최고로 예측된 요구에 기초하여 관리 그룹에 대한 하드웨어 자원을 사전구성하는 것이다. 이 솔루션은 관리 그룹이 최대 요구 시간중에 적합하게 응답할 수 있게 하는 반면, 이 최대 요구를 만족시키기 위해 할당된 여분의 하드웨어 자원은 대부분의 다른 시간에 비효율적으로 이용된다. 그 결과, 호스트 서비스가 관리 그룹에 제공하는 비용은 이 그룹에 대한 하드웨어 자원의 비효율적인 이용에 기인하여 증가한다.
호스트 서비스 추가에 대한 요구의 하나의 솔루션은 케이블 및 무선으로 제공되는 인터넷 쇼크 옵서버(ISA: Internet Shock Absorber) 서비스이다. ISA 서비스는 케이블 및 무선 인터넷 백본 상의 각종 가입자가 ISP에 접속하는 지점(POP: Points of Presence)에 위치하는 하나 이상의 캐싱 서버에 고객의 정적 웹 콘텐츠를 분배한다. 이 정적 웹 콘텐츠에 대한 요구는 캐싱 서버와 호스트 서비스를 그 고객에게 제공하는 관리 그룹 내의 서버로부터 이 기능을 제거하기 위한 각종 POP 위치로 전송될 수 있다. 그러나, 정적 웹 콘텐츠의 캐싱은 인터넷을 통한 정보 분배의 일부로서 자연적으로 발생하는 것이다. 대량의 사용자가 주어진 IP 어드레스로부터 정적 정보를 요구하는 경우, 인터넷 상의 복수의 위치에서 이 정보를 캐싱하는 것이 공통적이다. 근본적으로, ISA 서비스는 고객이 사전행동적으로 인터넷 상의 정적 웹 콘텐츠의 캐싱을 개시할 수 있게 한다. 이 솔루션이 정적 웹 콘텐츠를 전달하기 위한 성능을 개선하는 잠재력을 갖는 반면, 이 솔루션은 대화형 또는 동적 정보 콘텐츠를 포함하는 다른 타입의 다수의 호스트 서비스에 응용할 수 없다.
비록 HSP를 관리하는 방법에 대해 상당한 향상이 이루졌고, HSP 네트워크의 동작을 돕기 위해 많은 프로그램 및 툴이 개발되어 있다 하더라도, 서버 팜의 물리적인 자원을 생성 및 유지하기 위해 HSP에 의해 이용되는 기본 기술은 아주 조금 변경되어 있다. 서버 팜의 물리적인 자원을 관리하는 방법에 대해 개선할 수 있는 HSP를 운영하는 보다 효율적인 방법을 제공하는 것이 바람직하다.
본 발명은 호스트 서비스의 동적 관리를 이종의 고객 계정 및/또는 지리적으로 별개의 위치 양단에 제공하도록 하는 방식으로 인터넷에 대한 호스트 서비스 제공자를 운영하기 위한 방법 및 시스템이다. 복수의 고객 계정 각각에 있어서, 복수의 개별적인 서버는 그 고객 계정에 대해 정의된 공통 관리 그룹에 할당된다. 각 관리 그룹은 그 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하여 호스트 서비스를 그 고객 계정에 대한 인터넷에 제공하도록 구성된다. 이 시스템은 각 관리 그룹내 서버의 성능 및 헬스(health)를 자동으로 모니터링한다. 제1 관리 그룹으로부터의 적어도 하나의 서버는 자동 모니터링에 응답하여 제2 관리 그룹에 자동으로 및 동적으로 재할당된다. 서버의 자동 및 동적 재할당은 재할당된 서버가 제2 관리 그룹에 대한 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 초기화 포인터를 설정되고, 이어서 재시작시에 초기화 포인터가 제2 관리 그룹에 연결되도록 재할당된 서버를 재초기화함으로써 달성된다. 각 관리 그룹내 서버의 성능 및 헬스는 관리 그룹 양단에서 서버와 상호접속하도록 전용화된 별도의 대역외 통신 채널을 통하여 모니터링되는 것이 바람직하다. 각 관리 그룹은 사용 요구, 이용가능한 자원 및 각 고객 계정에 의한 서비스 레벨 승인에 응답하여, 서버를 상이한 관리 그룹에 동적으로 재할당하는 시기 및 방법을 결정하는 마스터 결정 소프트웨어 프로그램과 통신하는 국부 결정 소프트웨어 프로그램을 포함한다.
일실시예에 있어서, 복수의 고객 계정에 대한 호스트 서비스의 동적 관리를 제공하기 위한 시스템은 하나의 인트라넷에 동작가능하게 접속된 적어도 5 개의 서버를 구비한다. 각 서버는 이 인트라넷과는 별도인 다른 서버 중 적어도 하나를 통신 채널에 제공하는 호스트 관리 회로를 구비한다. 서버들 중 적어도 4 개는 서버를 모니터링하여, 통신 채널 양단에서 상태 정보를 통신하는 국부 결정 소프트웨어 프로그램을 실행한다. 서버들 중 적어도 2 개는 제1 고객 계정에 대한 제1 관리 그 룹에 할당되고, 이 제1 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성되며, 이에 따라 호스트 서비스가 이 고객 계정에 대한 인터넷을 통하여 제공된다. 다른 서버들 중 적어도 2 개는 제2 고객 계정에 대한 제2 관리 그룹에 할당되고, 이 제2 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성되며, 이에 따라 호스트 서비스가 이 고객 계정에 대한 인터넷을 통하여 제공된다. 서버들 중 적어도 하나는 상태 정보를 다른 서버로부터 수집하고, 최소한의 상태 정보에 응답하여 적어도 하나의 서버를 제1 관리 그룹으로부터 제2 관리 그룹으로 동적으로 재할당하는 마스터 결정 소프트웨어 프로그램을 실행한다.
단일 고객 계정에 관련해서 작업을 한정하거나, 또는 대형 및 고가의 컴퓨터 시스템 및 공통 운영 체계 또는 공유된 데이터 공간을 필요로 하는 기존의 부하 밸런싱 시스템과는 달리, 본 발명은 서버를 복수의 이종의 고객 계정에 동적으로 재할당하여, 보다 경제적이고 유연한 서버 팜 배열을 호스트 서비스에 제공할 수 있다. 본 발명의 복수의 고객에 대해 복수의 관리 그룹을 지원하는 능력은 상이한 고객 계정들간에 서버 자원의 인텔리전트하고 동적인 할당을 허용한다.
도 1은 호스트 서비스 제공자를 위한 종래기술의 서버 팜 배열을 도시하는 간단한 블록도.
도 2는 복수의 고객 계정을 호스팅하는 종래기술의 서버 팜에 대한 서버 용량에 관련해서 인터넷 트래픽을 도시하는 도면.
도 3은 본 발명에 따른 서버 팜의 배열을 도시하는 간단한 블록도.
도 4는 하드웨어의 고장을 제1 고객 계정으로부터 제2 고객 계정으로 어드레싱하기 위한 서버의 동적 재할당을 도시하는 도 3과 유사한 간단한 블록도.
도 5는 증가된 사용 요구를 제1 고객 계정으로부터 제2 고객 계정으로 어드레싱하기 위한 서버의 동적 재할당을 도시하는 도 3과 유사한 간단한 블록도.
도 6은 본 발명에 따른 서버 팜의 구성 요소의 바람직한 일실시예를 도시하는 블록도.
도 7은 본 발명에 따른 서버 팜을 위한 하드웨어의 바람직한 일실시예를 도시하는 확대사시도.
도 8은 주어진 고객 계정에 대해 본 발명에 의해 이용되는 각종 소프트웨어층의 계층적인 관계를 도시하는 도면.
도 9는 지리적으로 별개의 위치 양단에서 실현되는 본 발명의 일실시예를 도시하는 블록도.
도 10은 복수의 고객 계정을 호스팅할 때 본 발명의 서버 팜에 대한 서버 용량에 관련해서 인터넷 트래픽을 도시하는 도면.
도 11은 본 발명의 마스터 결정 소프트웨어 프로그램의 바람직한 일실시예를 도시하는 블록도.
도 12는 주어진 고객 계정을 위한 3 개의 상이한 서비스 레벨의 승인 배열을 도시하는 도면.
도 13은 본 발명의 다중사이트 실시예에 대한 서버 용량에 관련해서 인터넷 트래픽을 도시하는 도면.
도 14는 네트워크 스위치 및 스토리지 유닛 접속부를 제어하는 마스터 결정 소프트웨어 프로그램을 도시하는 블록도.
도 15는 국부 결정 소프트웨어 프로그램의 바람직한 일실시예를 도시하는 블록도.
도 16은 변경되는 부하 조건하에서 국부 결정 소프트웨어 프로그램의 각종 측정 모듈로부터의 작업 부하 측정을 도시하는 도면.
도 17은 관리 그룹으로부터 서버를 요구 또는 제거하기 위해 국부 결정 소프트웨어 프로그램에 의해 발생되는 결정면을 도시하는 도면.
바람직한 실시예의 상세한 설명
도 1을 참조하면, 호스트 서비스 제공자를 위한 기존의 서버 팜(20)의 간단한 기능도가 도시되어 있다. 이러한 서버 팜은 정상적으로 주어진 고객 계정의 호스트 서비스 요구를 지원하도록 정적으로 구성된 상용(off-the-shelf)의 하드웨어 및 소프트웨어 구성 요소를 이용하여 구성된다. 이 실시예에 있어서, 호스트 서버 제공자를 위한 서버 팜(20)은 4 개의 상이한 고객 계정을 위한 호스트 서비스를 지원한다. 서버 팜(20)은 네트워크 스위치/라우터(24)에 의해 인터넷(22)에 접속된다. 네트워크 스위치(24)는, 다시 주어진 고객 계정을 위한 프론트 엔드/콘텐츠 서버(28)와 백 엔드/계산 서버(30) 사이에 인트라넷을 형성하는 내부 네트워크 스위치/라우터(26)에 접속된다. 모든 프런트 엔드/콘텐츠 서버(28) 및 백 엔드/계산 서버(30)는 그 고객 계정의 고유한 데이터 및 소프트웨어를 포함하는 디스크 시스템(32)에 접속된다. 서버(28, 30)에 대한 하드웨어의 물리적인 성질에 따르면, 디스크 시스템(32)이 서버 하우징 내에 포함될 수 있거나, 또는 디스크 시스템(32)이 서버(28, 30) 각각에 직접 접속된 물리적으로 별도의 유닛에 수납되거나 또는 하나 이상의 서버(28, 30)에 스토리지 부착형 네트워크(SAN: Storage Attached Network) 또는 네트워크 부착형 스토리지(NAS: Network Attached Storage) 구성에 부착될 수 있다.
이 배열은 상용 하드웨어를 잘 이용하여 호스트 서비스를 복수의 독립 고객 계정에 제공할 수 있는 서버 팜(20)을 구성하는 반면, 이 타입의 배열에서는 노출된 여러 가지 현저한 문제점이 있다. 이들 문제점 중 가장 현저한 것은 상이한 고객 계정간에 시스템 자원을 할당 및 배치하는 일반적인 정적 성질이다. 이 집합체(complex) 내의 단일 고객 계정을 구성하고 관리하기 위해서, HSP에 대한 관리자는 그 고객 요구의 계획된 요구에 기초하여 특정 고객 계정에 대해 일부의 고정된 레벨의 시스템 자원(예컨대, 서버, 디스크, 네트워크 링크)을 전용화할 필요가 있다.
예를 들면, 계획된 최대 부하하에서, 고객 계정이 사용자 요구를 처리하기 위한 3 개의 프런트 엔드 서버(28) 및 이들 요구에 의해 발생된 데이터베이스 질의/갱신을 처리하기 위한 쿼드(quad) 프로세서 백 엔드 서버(30)를 필요로 할 수 있도록, 소정의 주어진 고객 계정에 대해 상대적으로 간단한 웹사이트가 설계되어 있다고 가정한다. 이 타입의 웹사이트에서는, F5 Big-IP, 시스코 국부 디렉터(Cisco Local Director) 또는 파운드리 서버아이런(Foundry ServerIron)과 같은 하드웨어 기저형 기술, 또는 윈도우즈 로드 밸런스 서비스(WLBS: Windows Load Balance Service) 또는 동등물과 같은 소프트웨어 기저형 솔루션은 사용자 요구를 프런트 엔드/콘텐츠 서버(28) 양단에서 분배하는데 이용된다. 또한, 백 엔드 데이터베이스/계산 서버(30)는 공통적으로 몇몇 레벨의 내고장성(fault tolerance)을 제공하도록 클러스터링된다. 복수의 서버를 갖는 웹사이트가 통상 동작중에 발생할 수 있는 하드웨어 고장을 통하여 편승하게 할 수 있는 마이크로소프트 클러스터 서버(Microsoft Cluster Server) 및 오라클 패러랠 서버(Oracle Parallel Server) 등과 같은 복수의 이용가능한 소프트웨어 제품이 있다. 또한, 티볼리 엔터프라이즈(Tivoli Enterprise) 및 HP 오픈뷰 등과 같은 시스템 모니터링 툴은, 관리자가 서버 팜(20) 내에서 고장을 검출한 때를 통지할 수 있게 한다. 비록 이들 툴이 주어진 사이트에서 단일 고객 계정 내의 호스트 서비스를 관리하는데 적합할 수 있다 하더라도, 이들 툴 모두는 이종의 고객 계정 양단에서 호스트 서비스의 관리를 허용하지 않는다.
이 예와 관련해서, 이 고객 계정을 위한 웹사이트는 5,000 거래/분의 최대 부하를 처리하도록 설계된 전자 상거래 사이트라고 가정한다. 또한, 서버 팜(20)에 있어서 나머지 고객 계정을 위한 웹사이트는 10,000, 15,000 및 5,000 거래/분의 최대 부하를 각각 처리하도록 설계되어 있다고 가정한다. 도 2에 도시된 바와 같이, 예측 최대 부하를 처리하도록 각 고객 계정을 설계하여 구성한 결과, 전체적인 서버 팜(20) 내에 상당히 낭비된 용량을 발생시킨다. 비록 복수의 고객 계정을 처리하는 서버 팜(20)이 총 초과 용량을 가질 수 있다 하더라도, 이 여분의 용량은 하드웨어 고장 또는 하나의 계정으로부터 다음 계정으로의 예측되지 않은 최대 부 하의 증가에 응답하는데 이용될 수 없다. 특정 고객 계정을 위해 구성된 자원은 그 계정 및 그 계정만에 대해 전용화된다. 제1 고객 계정을 위한 프런트 엔드 서버(28) 중 하나의 하드웨어가 고장난 경우, 웹 트래픽은 나머지 프런트 엔드 서버(28)로 라우팅된다. 고객 계정이 하드웨어가 고장나기 전에 비지(busy) 상태이고, 하드웨어가 고장난 후에 웹 트래픽이 일정하거나 증가하는 경우, 나머지 프런트 엔드 서버(28)는 이들의 이전 작업 부하뿐만 아니라, 고장난 서버로부터 재방향 설정된 추가의 트래픽을 서비스함으로써 빠르게 과부하 상태로 된다. 최상의 시나리오에 있어서, 서버 팜(20)을 위한 시스템 관리 소프트웨어는, 서버가 고장났음을 통지하며, 서버 고장에 대해 (페이저 및/또는 전자 메일을 통하여) 지시하는 사이트 관리자에게 메세지를 전송한다. 사이트 관리자가 시기적절한 방법으로 메세지를 수신하고, 사이트에 위치한 경우, 사이트 관리자는 고장난 하드웨어 구성 요소를 물리적으로 제거하고, 이러한 용도로 소망하는 대로 저장되어 있는 예비 하드웨어 구성 요소를 설치하며, 새로운 하드웨어 구성 요소를 재케이블링하고, 그 고객 계정을 위해 적합한 소프트웨어를 구성하여 설치할 수 있으며, 이에 따라 새로운 하드웨어 구성 요소가 나머지 프런트 엔드 서버(28)에 재연결될 수 있게 한다. 소망하는 대로, 이 프로세스는 1 시간 이내에 달성될 수 있다. 메세지가 시기적절한 방법으로 수신되지 않거나, 사이트 관리자가 서버 팜이 위치한 위치에 있지 않거나, 또는 고장난 유닛을 교체하는데 이용가능한 저장된 예비 하드웨어가 없는 경우, 이 프로세스는 더 많은 시간이 걸린다. 한편, 고객 계정에 액세스하는 사용자에 대한 응답 시간이 열화되고, 고객 계정은 이 기간중 또 다른 하드웨어 고장에 점진적으 로 취약하게 된다.
고객 계정이 구성되어 있는 예측 최대 요구를 초과하는 요구로 고객 계정이 증가하는 경우, 이 증가된 웹 트래픽을 재분배하기 위한 부하 밸런싱 기기에 이용가능한 자원은 없다. 서버(28, 30) 모두는 최대 용량으로 동작한다. 그 결과, 고객 계정에 대한 응답 시간 및 시기적절한 방법으로 처리될 수 없는 요구에 대한 "서비스 이용가능하지 않은" 응답의 가능성을 상당히 저하시킨다. 서비스를 고객에게 시기적절한 방법으로 제공하지 못하는 능력은 바람직하지 못하지만, 아마도 다른 맥락에서 비지니스에 대한 관리가능한 문제, 즉 웹사이트에 대해 "서비스 이용불가능한" 메세지를 발생시키는 추가의 문제가 그것인 반면, 이러한 메세지가 어떠한 이유로 계속해서 유지되는 경우, 인터넷은 이 정보를 네트워크내 다수의 중간 노드로 전파하기 시작할 수 있다. 그 결과, 이들 중간 노드는 웹사이트가 "이용불가능함"에 대한 그들의 파악에 기인하여 후속하는 요구를 웹사이트로 전환한다. 일단 고객 계정이 과잉 상태 또는 과부하 상태가 되면, 서비스하지 않는 "서비스 이용가능한" 메세지를 수신하는 고객 뿐만 아니라 많은 다른 고객은 결코 웹사이트에 도달할 수 없다.
이제, 도 3을 참조하면, 호스트 서비스의 동적 관리를 복수의 고객 계정에 제공하기 위한 서버 팜(40)이 도시되어 있다. 기존 서버 팜(20)과 마찬가지로, 서버 팜(40)은 서버 팜(40)과 인터넷(22)간의 상호접속을 달성하기 위한 네트워크 스위치(44)를 포함한다. 그러나, 기존의 서버 팜(20)과는 달리, 서버(46)의 집단은 엔진 그룹 관리자(48)의 제어하에서 관리된다. 서버(46) 각각은 디스크 스토리지 시스템(50)에 및 네트워크 스위치(44)를 통한 인터넷에 프로그램적으로 접속된 비상태(stateless) 계산 장치이다. 일실시예에 있어서, 서버(46)는 광채널 스토리지 영역 네트워크(SAN: Fibre Channel storage area Network)를 통하여 디스크 스토리지 시스템(50)에 접속된다. 이와 달리, 서버(46)는 네트워크 부착형 스토리지(NAS) 배열, 스위칭가능한 크로스바 배열 또는 소정의 유사한 상호접속 기술을 통하여 디스크 스토리지 시스템(50)에 접속될 수 있다.
도 4 및 도 5에 도시된 바와 같이, 엔진 그룹 관리자(48)는 비상태 서버(46)를 복수의 고객 계정간에 자동으로 할당하고, 이어서 할당된 계정에 대해 이들 서버를 구성할 책임이 있다. 이것은 주어진 고객 계정에 대한 서버를 그 고객 계정에 대해 정의하고, 그 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성된 공통 관리 그룹(52)에 할당함으로써 이루어진다. 상기한 바와 같이, 엔진 그룹 관리자(48)는 각 관리 그룹을 자동으로 모니터링하며, 자동 모니터링에 응답하여 서버(46')를 제1 관리 그룹(52-a)으로부터 제2 관리 그룹(52-b)로 자동으로 및 동적으로 재할당한다. 이것은 엔진 그룹 관리자(48)를 이용하여 제1 관리 그룹(52-a)으로부터 액세스 소프트웨어로 재할당된 서버(46')에 대한 초기화 포인터 및 제2 관리 그룹(52-b)에 대한 고객 계정에 고유한 데이터를 설정하고, 이어서 할당된 서버(46')가 제2 관리 그룹(52-b)에 참여하도록 할당된 서버(46')를 재시작함으로써 달성된다. 기존의 부가용 프로세스가 하드웨어 자원을 서버 팜(20)으로 이동하는 것과는 달리, 본 발명은 재할당된 서버(46')가 새로운 관리 그룹(52)에 대해 수분 남지한 시간 내에 이용가능하게 만들 수 있다. 기본적으로, 재할당된 서버(46')를 온라인 상태로 하는데 필요한 상당한 시간만이 서버(46')를 재부팅하는데 필요한 시간 및 이 재부팅된 서버를 인식하기 위한 부하 밸런싱 및/또는 클러스터링 소프트웨어에 대해 필요한 소정의 시간이다. 부하 밸런싱 소프트웨어가 프런트 엔드/콘텐츠 서버와 관련해서 보다 전형적으로 발견되는 반면, 클러스터링 소프트웨어 또는 클러스터링 소프트웨어와 부하 밸런싱 소프트웨어의 조합이 백 엔드/계산 서버와 관련해서 보다 전형적으로 발견됨이 이해된다. 부하 밸런싱 소프트웨어라는 용어는 이들 가능한 조합 중 어느 하나를 지칭하는데 이용된다.
일실시예에 있어서, 재할당된 서버(46')는 제2 관리 그룹에 자동으로 연결되는데, 왜냐하면 제2 관리 그룹(52-b)에 대한 소프트웨어가 온라인 상태(즉, 리셋 및 파워 온)로 되거나 또는 오프라인 상태(즉, 리셋 및 파워 오프)로 되는 서버에 응답하여, 서버를 그 관리 그룹으로부터 자동으로 부가 또는 제거하는 부하 밸런싱 소프트웨어를 포함하기 때문이다. 상기한 바와 같이, 이러한 종류의 부하 밸런싱 소프트웨어는 널리 공지되어 있으며, 최근 이용가능하다. 그러나, 기존의 부하 밸런싱 소프트웨어는 단일 관리 그룹으로부터 서버를 부가 또는 제거할 수 있을 뿐이다. 이 실시예에 있어서, 엔진 그룹 관리자(48)는 현재 상업적으로 이용가능한 부하 밸런싱 응용 소프트웨어의 능력의 이점을 취하여 동적 재할당 서버(46')를 상이한 관리 그룹(52) 양단에서 허용한다. 이와 달리, 일단 재할당된 서버(46')가 온라인 상태로 되면, 단일 관리 그룹에 대한 운영 체계 소프트웨어 내의 에이전트 또는 서브루틴은 재할당된 서버(46')를 제2 관리 그룹(52-b) 내로 일체화하는데 책임을 질 수 있다. 또 다른 실시예에 있어서, 엔진 그룹 관리자(48)는 각 관리 그룹(52) 에 대해 이용가능한 서버의 리스트에 대한 갱신을 발행할 수 있다.
엔진 그룹 관리자(48)는 운영 체계 및 응용 프로그램을 포함하고, 그 관리 그룹(52)에 대해 확립된 부트 이미지 소프트 및 구성 파일의 적합한 사본에 관리 그룹(52)에 대한 서버(46) 각각의 포인터를 설정하는 것이 바람직하다. 재할당된 서버(46')가 재부팅될 때, 그 포인터는 엔진 그룹 관리자(48)에 의해 리셋되며, 제1 관리 그룹(52-a)에 대한 부트 이미지 소프트웨어 및 구성 파일 대신에, 제2 관리 그룹(52-b)에 대한 부트 이미지 소프트웨어 및 구성 파일을 지시한다.
일반적으로, 각 관리 그룹(52)은 고유한 고객 계정에 대한 서버 팜(40)에 의해 제공되는 웹사이트 또는 유사한 호스트 서비스를 나타낸다. 비록 상이한 고객 계정이 상업적인 관련 실체(entity)와 관련된 데이터 및 소프트웨어에 의해 과금될 수 있다 하더라도, 데이터 및 소프트웨어가 주어진 고객 계정과 관련됨이 이해되며, 이에 따라 주어진 고객 계정(52)은 그 고객 계정에 대해 고유하다. 단일 공통 운영 체계를 이용하여 대형 메인프레임 컴퓨터 시스템의 자원의 시분할을 실현함으로써, 호스트 서비스를 복수의 고객에게 제공하도록 대형 메인프레임 컴퓨터의 설치를 이용하는 서비스 제공자와는 달리, 각 관리 그룹(52)은 종래의 운영 체계 소프트웨어를 포함하고, 관리 그룹(52)에 할당되어 있지 않은 외부 서버(46)에까지 확장되지 않는 고유의 소프트웨어로 구성된다. 이 본 발명의 분배형 방법은 상대적으로 저가인 개별적인 서버에 설치될 수 있는 보다 간단한 종래의 소프트웨어 응용 및 운영 체계의 이용을 허용한다. 이러한 방법으로, 관리 그룹(52)을 구성하는 개별적인 요소는 상대적으로 저가인 상업적으로 이용가능한 하드웨어 서버 및 표준 소프트웨어 프로그램으로 구성될 수 있다.
도 6 및 도 7은 본 발명에 따른 서버 팜(40)에 대한 구성 요소 및 하드웨어의 바람직한 일실시예를 도시한다. 비록 본 발명의 바람직한 일실시예가 이 하드웨어에 대해 설명되어 있다 하더라도, 이들 서버가 호스트 관리 회로 또는 상기한 바와 같은 그의 동등물에 의해 제공되는 경우, 본 발명의 개념은 현재 이용가능한 1U 또는 2U 패키지 서버를 포함하는 모든 종래의 서버를 이용하여 실현되는 서버 팜에 동일하게 응용가능함이 이해된다.
서버 팜(40)에 대한 하드웨어는 전원 및 공간이 충분한 캐비넷(110) 내에 엔진 블레이드(engine blade)(132)로서 각각 배열된 상업적으로 이용가능한 다량의 서버 보드(102)로 구성되는 스케일러블 엔진(100)인 것이 바람직하다. 엔진 블레이드(132)는 캐비넷(110)의 전면(112)에 수직 방향으로 착탈가능하게 위치된다. 캐비넷(110) 중간에 있는 관통면(130)은 공통 전원을 제공하며, 주변 신호를 모든 엔진 블레이드(132)로 제어한다. 각 엔진 블레이드(132)에 대한 I/O 신호는 관통면(130)의 개구를 통하여 캐비넷(110)의 배면에 위치된 인터페이스 카드(134)로 라우팅된다. I/O 신호는 적합한 인터페이스 카드(134)를 통하며, 디스크 스토리지(50)로 또는 네트워크 스위치(44)를 통한 인터넷(22)으로 라우팅된다. 별도의 인터페이스 카드(134)가 이들 상이한 통신 경로에 이용되는 것이 바람직하다.
스케일러블 엔진은 공통 블레이드 캐리어 구조(103)에 기인하여 동일한 캐비넷(110) 내에 상이한 타입의 서버 보드(102)를 수용할 수 있다. 상업적으로 이용가능한 상이한 타입의 마더보드(102)는 캐비넷(110)에 균일한 기계적 인터페이스를 제공하는 공통 블레이드 캐리어 구조(103)에 장착된다. 각종 타입의 마더보드(102)에 플러그를 꽂을 수 있는 특수하게 설계된 PCI 호스트 보드(104)는 인터페이스 카드(134)에 접속하기 위한 관통면(130)을 통하여 라우팅되는 접속을 갖는다. 용장의 핫 스왑퍼블(hot-swappable) 고효율 전원(144)은 관통면(130) 상의 공통 전원 신호에 접속된다. 호스트 보드(104)는 ATX 전원 관리 프로토콜을 에뮬레이팅함으로써 전원 신호를 그 엔진 블레이드(132)에 대한 서버 보드(102)로 분배하는 관리 회로를 구비한다. 교체가능한 팬 트레이(fan tray)(140)는 엔진 블레이드(132) 아래에 장착되어 엔진(100)을 냉간시킨다. 캐비넷(110)은 서로의 정상부에 적층되며 전원(144)을 유지하는 전원 프레임(146)의 정상부에 위치하는 하부 섀시의 쌍(129)을 구비하는 섀시 어셈블리(128) 내에 복수열의 엔진 블레이드(132)를 수용하는 것이 바람직하다. 캐비넷(11)은 또한 광채널 네트워크를 통하여 디스크 드라이브(50)에 부착되는 랙 장착형 이더넷 네트워크 스위치(44, 147) 및 스토리지 스위치(149)를 구비한다.
또한, 본 발명은 제1 관리 그룹(52-a) 및 적어도 2 개의 엔진 블레이드(132)를 각각 갖는 제2 관리 그룹(52-b)에 할당된 각종 서버(46)를 구성하는 적합한 응용 소프트웨어와 함께 서버 보드(102)를 갖는 엔진 블레이드(132)를 수납하는 단일 캐비넷(110)에 대해서 기술되어 있는 반면, 서버 팜(40)은 서버 팜(40)내 서버(46)의 총수에 따라 소정수의 고객에 대한 관리 그룹(52)을 수용할 수 있음이 이해된다. 복수의 캐비넷(110)은 주어진 위치에서 서버(46)의 총수를 스케일링하기 위해 함께 일체화될 수 있는 것이 바람직하다. 상기한 바와 같이, 또한 지리적으로 이종의 위치에 있는 복수의 캐비넷(110)을 엔진 그룹 관리자(48)의 제어하에서 동작하는 단일 서버 팜(40)의 일부로서 함께 링크시킬 수 있다.
바람직한 실시예에 있어서, 각 엔진 블레이드(132)의 서버 보드(102)는 가장 최근에 인텔의 프로세서, 즉 SPARC 또는 PowerPC 설계에 의해 대중화될 수 있으며, 각각은 윈도우즈 NT, 윈도우즈 2000, 리눅스(Linux) 또는 솔라리스(Solaris)와 같은 표준 운영 체계 환경을 지원할 수 있다. 각 엔진 블레이드(132)는 하나 이상의 서버 보드(102)를 수용할 수 있고, 각 서버 보드는 현재의 ATX 형태 요소 또는 미래 산업에 의해 이용될 수 있는 새로운 형태 요소에 따라 단일프로세서 설계 또는 다중프로세서 설계 중 어느 하나일 수 있다. 통신 채널(106)은 네트워크 스위치(44) 또는 스토리지 스위치(149)에 대한 통신 경로와는 별개인 제어기 영역 네트워크(CAN: Controller Area Network)를 실현하는 것이 바람직하다. 선택적으로, 제2 고장 백업 통신 채널(106')은 그룹 관리자 소프트웨어(48)에 대한 내고장성 및 용장 통신 경로를 허용하도록 제공될 수 있다.
종래의 서버에 있어서, 포인터 및 개시 구성 정보는 서버 보드 상에서 수동으로 스위칭되거나, 서버 보드 상의 PROM 칩셋 내로 하드코딩되거나 또는 서버 보드에 의해 액세스가능한 국부 하드 드라이브 상의 고정된 위치에 저장됨으로써 설정된다. 포인터 및 다른 개시 구성 정보가 호스트 관리 회로에 의해 실제적으로 공급되도록, 호스트 보드(104) 상의 관리 회로는 서버 보드(102) 내에 적합한 후크(hook)를 갖도록 설계된다. 선택적으로, 그 국부 하드 드라이브(107) 상에 기억된 정보가 통신 채널(106)을 통하여 호스트 보드에 의해 구성될 수 있도록, 엔진 블레이드(132)는 호스트 보드(104)를 통하여 액세스되는 국부 하드 드라이브(107)를 구비할 수 있다. 또한, 호스트 보드(104)는, ATX 전원 관리 시퀀스를 에뮬레이팅함으로써 캐비넷(110)에 공급되는 공통 전원의 이용이 서버 보드(102)에 대한 전원의 응용을 제어할 수 있는 전원 관리 회로(108)를 구비하는 것이 바람직하다. 백 채널(back channel) 이더넷 스위치(147)는 또한 그들의 통신을 인터넷(22) 밖으로 라우팅할 필요없이 서버 팜(40) 내의 각종 서버 보드(102)간에 응용 및 데이터 정보의 통신을 허용한다.
바람직한 일실시예에 있어서, 각 캐비넷(110)은 최대 32 개의 엔진 블레이드(132)를 하우징할 수 있다. 이 구성에 있어서, 네트워크 스위치(44, 147)는 파운드리(Foundry)로부터의 32 개의 회로 스위치형 이더넷 네트워크 라우터 2 개로 구성될 수 있다. 네트워크 스위치(44, 147)는, 서버(46)와 네트워크 스위치(44, 147)간 접속의 재구성이 서버에 대한 IP 어드레스를 변경함으로써 동적으로 조절될 수 있게 하는 것이 바람직하다. 디스크 스토리지 유닛(50)에 대해서, 2 개의 옵션이 이용가능하다. 첫 째로, 고유의 하드웨어 및 소프트웨어는 하부 SAN 스토리지 하드웨어 구성의 상세를 추출하는 엔진 블레이드(132)와 디스크 스토리지 유닛(50) 사이에 크로스바 스위치(149)의 형태로 삽입될 수 있다. 이 경우, 디크스 스토리지 유닛(50)과 각 블레이드(132) 사이의 링크는 소프트웨어 API의 세트를 통하여 크로스바 스위치(149)로 통신된다. 이와 달리, 상업적으로 이용가능한 광채널 스위치 또는 RAID 스토리지 박스는 블레이드(132)와 디스크 스토리지 유닛(50) 사이에 접속성을 동적으로 구성하는데 이용될 수 있다. 다른 예 양쪽 모두에서는, 서 버 블레이드(132)와 네트워크 스위치(147)와 디스크 스토리지 유닛(50) 사이의 접속에 필요한 구성의 조절을 수행하는 엔진 그룹 관리자(48) 내부의 소프트웨어층이 달성된다. 또 다른 실시예에서는, 예를 들어 주어진 부분의 서버 팜(40)에 의해 지원되는 고객 계정의 세트가 항상 재할당될 수 없는 기본수의 서버(46)를 구비하는 경우, 일부의 서버(46)는 영구적으로 네트워크 스위치 또는 디스크 스토리지 유닛에 케이블링되어 스위치 비용을 감소시킬 수 있다. 이 경우, 각 관리 그룹(52)에 대한 기본수의 서버(46)가 영구적으로 그 관리 그룹(52)에 대한 관련 네트워크 스위치(149) 및 디스크 스토리지 유닛(50)에 케이블링될 수 있다.
도 4 및 도 5를 다시 참조하면, 본 발명의 서버 팜 시스템(40)이 복수의 고객 계정에 제공되는 호스트 서비스를 동적으로 관리할 수 있음을 알 수 있다. 인트라넷(54)에 동작가능하게 접속된 적어도 5 개의 서버(46)가 있음을 알 수 있다. 인트라넷은 인터넷(22)에 의해 또는 서로에 대해 서버(46)를 상호접속하는 네트워크 스위치(147)와 같은 유사한 네트워크 스위치를 통한 서버(46)를 상호접속하는 동일한 네트워크 스위치(44)를 통하여 형성되는 것이 바람직하다. 각 서버(46)는 네트워크 스위치(44 및/또는 147)에 의해 생성되는 인트라넷(54)과는 별개인 다른 서버(46) 중 적어도 하나를 통신 채널(106)에 제공하는 관리 회로를 호스트 보드(104) 상에 갖는다.
서버(46) 중 적어도 4 개는 통신 채널(106) 양단에서 서버(46) 및 통신 상태 정보를 모니터링하는 국부 결정 소프트웨어 프로그램(70)을 실행하도록 구성된다. 이들 서버(46) 중 적어도 2 개는 제1 고객 계정에 대한 제1 관리 그룹(52-a)에 할 당되며, 호스트 서비스를 그 고객 계정에 대한 인터넷에 제공하기 위해 제1 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성된다. 서버(46) 중 적어도 또 다른 2 개는 제2 고객 계정에 대한 제2 관리 그룹(52-b)에 할당되며, 호스트 서비스를 그 고객 계정에 대한 인터넷에 제공하기 위해 제2 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 구성된다. 서버(46) 중 적어도 하나는 다른 서버(46) 상에 실행되는 국부 결정 소프트웨어 프로그램(70)으로부터 상태 정보를 수집하는 마스터 결정 소프트웨어 프로그램(72)을 실행한다. 일실시예에 있어서, 서버(46)의 쌍은 내고장성 조정 소프트웨어를 이용하여 종속화되어 마스터 결정 소프트웨어 프로그램에 대한 내고장성/용장 처리 플랫폼을 형성한다. 상기한 바와 같이, 마스터 결정 소프트웨어 프로그램(72)은 국부 결정 소프트웨어 프로그램(70)으로부터 수집된 최소한의 상태 정보에 응답하여 적어도 하나의 서버(46')를 제1 관리 그룹(52-a)으로부터 제2 관리 그룹(52-b)로 동적으로 재할당한다.
관리 그룹(52)에 대한 서버(46)는 주어진 고객 계정에 대해 지정된 소정의 구성으로 배열될 수 있다. 도 3에 도시된 바와 같이, 관리 그룹(52-b)에 대한 서버(46) 중 3 개는 이 고객 계정에 대한 백 엔드/계산 서버로서 구성되는 단일 서버(46)에 의해 프런트 엔드 서버로서 구성된다. 제2 관리 그룹(52-b)에 대한 고객 계정을 위한 최대 이용 활동성의 상당한 증가에 응답하여, 마스터 결정 소프트웨어 프로그램(72)은 서버(46')를 제1 관리 그룹(52-a)에 대한 서버로서 현재의 사용으로부터 제2 관리 그룹(52-b)에 대한 백 엔드/계산 서버로서 사용되도록 재할당할 필요가 있는지 여부를 결정한다. 이 결정에 도달하는 방법에 대한 바람직한 실시예 는 국부 결정 소프트웨어 프로그램(72)의 동작에 대한 설명에 관련해서 기술되어 있다. 이제 방금 설명된 절차에 이어서, 마스터 결정 소프트웨어 프로그램(72)은 재할당된 서버(46')의 동적 재할당을 도 4에 도시된 바와 같은 제2 관리 그룹(52-b)으로 지향시킨다.
비록 본 발명의 바람직한 실시예가 제1 관리 그룹(52-a)으로부터 제2 관리 그룹(52-b)로의 서버(46')의 재할당에 대해서 기술되어 있다 하더라도, 본 발명은 또한 주어진 관리 그룹(52)에 현재 할당되지 않고, 반드시 그들이 작업 관리 그룹(52)로부터 인출될 필요없이 재할당될 수 있는 이용가능한 서버(46')의 공통 풀(pool)을 제공하도록 실현될 수 있음이 이해되어야 한다. 예를 들면, 32 개의 서버(46)를 갖는 서버 팜(40)은, 하나의 서버(46)가 마스터 결정 소프트웨어 프로그램(72)을 실행하며, 나머지 7 개의 서버(46)의 풀(56)이 초기에 할당되지 않고 있다가 그 서버 팜에 대해 정의된 4 개의 관리 그룹(52) 중 어느 하나에 할당될 수 있으며, 6 개의 서버를 4 개의 상이한 고객 계정 각각에 할당하도록 셋업될 수 있다. 관리 그룹에 대한 서버의 할당이 본 발명에 따른 서버 팜(40)의 진행 동작중에 동적이기 때문에, 본 발명의 바람직한 실시예는 그의 기존의 관리 그룹(52)으로부터 재할당된 서버(46')를 우선 제거하기 위한 요구를 제거함으로써 할당된 서버(46')를 관리 그룹(52) 내로 도입하는데 필요한 시간을 더 감소시키기 위한 버퍼로서 이 풀(56)을 이용한다. 일실시예에 있어서, 풀(56)은 웜 서버(warm server) 및 콜드 서버(cold server) 양쪽 모두를 가질 수 있다. 웜 서버는 이미 특정 관리 그룹(52)에 대해 구성되어 있으며, 이에 따라 웜 서버를 관리 그룹에 결합하도록 허용하기 위해 그 웜 서버를 재부팅할 필요가 없는 서버(46)이다. 콜드 서버는 특정 관리 그룹(52)에 구성되어 있지 않으며, 이에 따라 콜드 서버를 관리 그룹에 결합하기 위해 그 콜드 서버를 재부팅할 필요가 있는 서버이다.
또한, 재할당된 서버(46')가 단독으로 또는 제1 관리 그룹(52-a)으로부터 제2 관리 그룹(52-b)로 동시에 재할당된 하나 이상의 재할당된 서버(46')를 갖는 하나의 그룹으로서 새로운 관리 그룹에 할당될 수 있음이 이해되어야 한다. 네트워크 스위치(44, 147) 및 스토리지 스위치(149)가 이러한 동적 재할당을 수용하도록 구성되는 방법에 관련해서, 또한 네트워크(44, 147) 및/또는 스토리지 스위치(149) 상의 동적으로 구성가능한 포트의 수를 감소시킬 필요가 있거나 감소시키는 것이 바람직한 경우, 복수의 서버(46)가 하나의 그룹으로서 함께 재할당될 수 있음이 이해되어야 한다.
본 발명의 현저한 이점 중 하나로는, 서버를 제1 관리 그룹(52-a)으로부터 제2 관리 그룹(52-b)으로 재구성하는 프로세스가 제1 관리 그룹에 대한 특정 고객 계정에 관련된 재할당된 서버(46')로부터의 상태 전체를 제2 관리 그룹(52-b)의 일부로서 그 서버가 서비스를 시작하기 전에 소거한다는 것이다. 이것은 상이한 고객 계정간의 데이터에 대한 고의적인 액세스 또는 비고의적인 액세스를 방지하기 위한 자연스럽고 매우 효율적인 보안 메카니즘을 제공한다. 서버(46, 46')가 주어진 관리 그룹(52-a)의 부재가 아닌 경우, 그 서버가 상이한 관리 그룹(52-b)에 대한 데이터 또는 정보에 액세스할 방법이 없다. 상이한 고객 계정 양단에 호스트 서비스를 제공하기 위해 공유 메모리 공간 및/또는 공통 운영 체계를 이용하는 메인프레 임 서버, 또는 다른 대형 서버 시스템에서 실현되어야 하는 복잡하고 잠재적으로 문제를 갖는 소프트웨어 보안 특징 대신에, 본 발명은 종래의 서버 팜 배열에서 발견되는 고객 계정들간의 간단한 물리적 분리의 이점을 유지하지만, 또한 하드웨어가 그 하드웨어의 보다 양호한 사용을 실시하기 위한 요구 또는 기회의 경우에 자동으로 및 동적으로 재구성되게 할 수 있다. 이 재구성의 인증 및 제어에 대한 액세스점만이 대역외 통신 채널(106)을 통하여 마스터 결정 소프트웨어 프로그램(72)을 경유한다.
도 14에 도시된 바와 같이, 각 서버(46)는 마스터 결정 소프트웨어 프로그램(72)의 제어하에서 인터넷(22)에 프로그램적으로 접속되는 것이 바람직하다. 마스터 결정 소프트웨어 프로그램(72)은 또한 제2 관리 그룹의 고객 계정의 고유한 소프트웨어 및 데이터를 기억하는 디스크 스토리지 유닛의 일부에 동작가능하게 접속되도록 재할당 서버(46')를 스위칭한다. 마스터 결정 소프트웨어 프로그램(72)에 의해 이용되는 상태 정보 중 적어도 일부를 통신하기 위한 네트워크 스위치(44)를 통하여 인트라넷(54)으로부터 분리되는 대역외 통신 채널(106)의 이용은 보안 용도, 고장 차단 및 대역폭 차단에 대해 이루어지는 것이 바람직하다. 바람직한 일실시예에 있어서, 통신 채널(106)은 상이한 캐비넷(106)간에 대역폭 1 Mb/s로도 동작하는 2차 백본을 갖는 캐비넷(106) 내에서 1 Mb/s의 대역폭으로 동작하는 직렬 제어기 영역 네트워크(CAN) 버스이다. 비록 이러한 실시예가 호스트 보드(104)에 접속된 통신 채널(106)에 필요한 통신의 레벨 및 복잡성에 대해 효율적으로 설계되어 있다 하더라도, 인터넷 프로토콜(IP) 프로토콜을 이용하는 통신을 갖는 별도의 인트라넷이 이러한 CAN 버스와 같은 직렬 관리 인터페이스 대신에 통신 채널(106)에 이용될 수 있음이 이해된다. 통신 채널(106)을 인트라넷(54)의 일부로서 실현하는 것이 가능한 반면, 이러한 실현은 보안 용도, 고장 차단 및 대역폭 차단에 기인하여 바람직하지 않다.
도 8은 주어진 고객 계정에 본 발명에 의해 이용되는 각종 데이터 및 소프트웨어층의 일실시예의 계층적인 관계를 도시하는 블록도이다. 고객 데이터 및 데이터베이스(60)는 이 계층 구조의 기저층을 형성한다. 선택적으로, 웹 데이터 관리 소프트웨어층(62)은 스토리지 시스템(50)을 구성하는 스토리지 유닛의 복수의 예에 걸쳐 고객 데이터(60)를 관리하도록 결합될 수 있다. 클러스터 및/또는 부하 밸런싱 인식 애플리케이션 소프트웨어(64)는 고객의 웹사이트를 위한 소프트웨어 및 데이터로서 종래에 간주되던 정상부층을 포함한다. 부하 밸런싱 소프트웨어(66)는 공통 관리 그룹(52)의 일부로서 복수의 서버(46)를 함께 그룹화한다. 종래의 복수의 운영 체계 시스템(68)의 예에서는 각 서버(46)에 대해 하나가 제시된다. 이와 달리, 부하 밸런싱 소프트웨어(68) 및 운영 체계 소프트웨어(68)는 공통 소프트웨어 패키지의 일부로서 단일 관리 그룹(52) 내에 일체화될 수 있다. 상기한 종래의 운영 체계 소프트웨어(68)는 복수의 고객 계정(52-a, 52-b) 양단에서 자원을 관리하는 본 발명의 엔진 운영 소프트웨어(48)이다.
도 9에 도시된 바와 같은 본 발명의 일실시예에 있어서, 제1 관리 그룹(52-a)에 할당된 서버(46)는 제1 사이트(80)에 위치하며, 제2 관리 그룹(52-b)에 할당된 서버(46)는 제1 사이트(80)로부터 지리적으로 이격되어 있는 제2 사이트(82)에 위치한다. 이 실시예에 있어서, 시스템은 제1 관리 그룹(52-a)에 대한 최소한의 데이터를 제2 사이트(82)에 자동으로 복사하기 위한 배열을 더 구비한다. 바람직한 일실시예에 있어서, 네트워크 스위치(44)로부터 분리된 통신 채널(84)은 제1 사이트(80)의 디스크 스토리지 유닛(50-a)으로부터 제2 사이트(82)의 디스크 스토리지 유닛(50-b)로 데이터를 복사하는데 이용된다. 이 배열의 용도는 2 가지이다. 첫 째로, 데이터의 복사는 제1 사이트(80)에서 재난이 발생된 경우에 재난 복구를 허용하는 용장성 및 백업 보호를 제공한다. 둘 째로, 제2 사이트(82)에서의 데이터의 복사는, 마스터 결정 소프트웨어 프로그램(72)이 이들 서버를 제1 관리 그룹(52-a)에 동적으로 재할당함으로써 제1 고객의 호스트 서비스에 대한 증가된 요구를 만족시키는데 이용될 수 있는 이용가능한 서버의 풀에 있어서 제2 사이트(82)에 위치하는 서버(46)를 본 발명이 구비할 수 있게 한다.
제1 사이트(80) 및 제2 사이트(82)에서의 마스터 결정 소프트웨어 프로그램들(72)간의 조정은 각 사이트에서 마스터 결정 소프트웨어 프로그램(72)과 통신하는 전역 결정 소프트웨어 루틴(86)에 의해 달성되는 것이 바람직하다. 이 모듈형 배열은, 국부 결정 소프트웨어 프로그램(70)이 추가의 서버를 요구하거나 또는 주어진 사이트에서 마스터 결정 소프트웨어 프로그램(70)에 대한 재할당에 이용가능한 서버를 구성하는 것과 똑 같은 방식으로, 마스터 결정 소프트웨어 프로그램(72)이 주어진 사이트에서 서버 자원을 관리하는데 초점을 맞추고, 전역 결정 소프트웨어 루틴(86)으로부터 추가의 오프사이트 서비스를 요구하거나 또는 이용가능한 오프사이트 서비스를 구성하도록 제의하는 각 사이트(80, 82)를 갖는 개념을 확장할 수 있게 한다.
본 발명의 다중사이트 실시예는 상업적으로 이용가능한 SAN 또는 NAS 스토리지 네트워킹 소프트웨어를 이용하여 2층형(two-tiered) 데이터 용장성 및 복사 계층 구조를 실현하는 것이 바람직하다. 도 9에 도시된 바와 같이, 제1 고객 계정에대한 고객 데이터의 작업 버전(74)은 제1 사이트(80)의 디스크 스토리지 유닛(50) 상에 유지된다. 데이터 미러링, 데이터 쉐도우잉 또는 RAID 데이터 보호와 같은 용장성 데이터 보호는 제1 사이트(80)의 제1 고객 계정에 대한 고객 데이터의 백업 버전(76)을 달성하는데 이용된다. 네트워킹 소프트웨어는 통신 채널(84)을 이용하여 제2 사이트(82)에 위치하는 제1 고객 계정에 대한 고객 데이터의 제2 백업 버전(78)을 발생시킨다. 인터넷(22)에 대한 네트워크 스위치(44)의 접속과는 별개인 통신 채널(84)의 이용은 용장성 통신 경로를 허용하며, 제2 백업 버전(78)을 발생시키는데 필요한 배경 통신 활동성의 충격을 최소화하는 것이 바람직하다. 이와 달리, 제2 사이트(82)에 위치하는 제1 고객 계정에 대한 고객 데이터의 백업 버전(78)은 네트워크 스위치(44) 및 인터넷(22)을 통하여 라우팅될 수 있다. 다른 실시예에 있어서, 추가의 고객 데이터의 백업 버전은 이들 자원의 요구시에 고객 계정에 대한 이들 자원을 비효율적으로 이용하는 고객 계정으로부터 서버를 동적으로 재할당하도록 시스템의 능력을 더 확장하기 위해 추가의 사이트 위치에 복사될 수 있다.
도 10에 도시된 바와 같이, 이들 자원의 요구시에 고객 계정에 대한 이들 자원을 비효율적으로 이용하는 고객 계정으로부터 서버를 동적으로 재할당하기 위한 본 발명의 능력은, 서버 팜(40)의 자원이 호스트 서비스를 복수의 고객 계정에 제공할 때 보다 효율적으로 이용될 수 있게 한다. 고객 계정(91, 92, 93, 94, 95) 각각에 있어서, 비교적 일정한 한계의 과잉 능력이 각 고객 계정에 대해 유지되도록 각 고객 계정에 대한 서버(46)의 전체적인 할당이 달성된다. 하드웨어 자원의 변경이 시간, 일 또는 주 단위로 발생되는 주어진 고객 계정에 할당되는 기존의 서버 팜과는 달리, 본 발명은 필요한 만큼 동적으로 할당되는 서버 자원에 있어서의 최대 분 단위(up-to-the-minute)의 변경을 허용한다. 도 10은 또한 서버 팜(40)의 일부를 위치시키기 위한 지리적으로 별개의 복수의 위치를 이용하는 이점을 도시한다. 고객 계정(94, 95)에 대한 최대 사용은 사이트 위치(80)와 사이트 위치(82) 사이의 시간 영역(time zone)의 차이에 기인하여, 다른 고객 계정(91, 92, 93)의 최대 사용으로부터 시간 시프트됨을 알 수 있다. 본 발명은 활동성의 소강 상태를 경험하는 다른 사이트 위치로부터의 최대 사용 기간중에 사이트 위치에 대한 서버 용량을 순환하도록 할당하기 위해 최대 사용시의 이들 시간 시프트된 차이의 이점을 취할 수 있다.
도 13에 도시된 본 발명의 다중사이트 구성의 일실시예에 있어서, 적어도 3 개의 분리된 사이트 위치(80, 82, 84)는 지리적으로 서로로부터 적어도 24 / (N + 1) 시간만큼 이격되어 위치하며, 여기서 N은 다중사이트 구성에 있어서 별개의 사이트 위치의 수를 나타내는 것이 바람직하다. 3 개의 분리된 사이트 위치(80, 82, 84)를 갖는 실시예에 있어서, 사이트 위치는 서로로부터 8 시간만큼 이격되어 있는 것이 바람직하다. 이 지리적인 분리에 의해 실현되는 시간차는, 이들 사이트 전체에 위치하는 고객 계정의 사용 패턴은 다른 방법으로, 주어진 위치에서 서버 각각이 하나 이상의 다른 위치로부터 동적으로 할당되는 서버를 이용할 수 없는지 여부를 필요로 하는 상당히 적은 조합된 수의 서버에 의해 집합되어 서비스할 수 있게 한다. 이것의 이점은, 사이트 위치(80)가 야간(nighttime) 사용 레벨을 경험한 때를 알 수 있으며, 이 사이트 위치(80)로부터의 서버는 주간(daytime) 사용 레벨을 경험하는 사이트 위치(82)에 동적으로 재할당될 수 있다. 이와 동시에, 사이트 위치(84)는 이 위치로부터 또 다른 하나의 위치로 또는 그 역으로 재할당된 서버를 갖는데 적합할 수 있거나 또는 적합할 수 없는 저녁(evening) 사용 레벨을 경험한다. 일반적으로, 사이트 위치는 늦은 시간 영역(즉, 그 사이트의 동쪽)에 있는 사이트 위치로부터 우선 용량을 빌리기 위해 조사되고, 이른 시간 영역(즉, 그 사이트의 서쪽)에 있는 사이트 위치에 이용가능한 여분의 용량을 구성하기 위해 조사되도록 배열된다. 다른 선호도는 또한 과거 사용 및 예측된 이용 패턴에 따라 달성될 수 있다.
도 11을 참조하면, 마스터 결정 소프트웨어 프로그램(72)의 바람직한 일실시예가 도시된다. 마스터 결정 소프트웨어 프로그램(72)은 자원 데이터베이스(150), 서비스 레벨 승인 데이터베이스(152), 마스터 결정 논리 모듈(154) 및 디스패치 모듈(156)을 구비한다. 마스터 결정 논리 모듈(154)은 자원 데이터베이스(150) 및 서비스 레벨 승인 데이터베이스(152)에 액세스하며, 서버를 제1 고객 계정으로부터 제2 고객 계정으로 동적으로 재할당할지 여부를 결정하기 위해 상태 정보와 자원 데이터베이스(150) 및 서비스 레벨 승인 데이터베이스(152) 내의 정보를 비교한다. 디스패치 모듈(156)은 제2 관리 그룹(52-b)에 대한 고객 계정의 고유한 소프트웨어 및 데이터에 액세스하도록 재할당된 서버(46')에 초기화 포인터를 설정하기 위해 통신 채널(106)을 이용하고, 적어도 하나의 서버가 제2 관리 그룹(52-b)에 결합되도록 재할당된 서버(46')를 재초기화함으로써, 마스터 결정 논리 모듈(154)에 의해 지향될 때 서버를 동적으로 재할당하기 위해 마스터 결정 논리 모듈(154)에 동작가능하게 링크된다. 디스패치 모듈(156)은 각 서버(46)에 대한 접속성 규칙(160)의 세트 및 퍼스날리티(personality) 모듈(162)의 세트를 구비한다. 접속성 규칙(160)은 특정 서버(46)를 주어진 네트워크 스위치(44) 또는 데이터 스토리지 유닛(50)에 접속하기 위한 명령을 제공한다. 퍼스날리티 모듈(162)은 고객 계정에 대한 관리 작업 그룹에 부가될 서버 보드(102)의 특정 소프트웨어 구성의 상세를 기술한다. 일단 디스패치 모듈(146)이 서버를 재할당하기 위한 요구를 결정하면, 그 특정 관리 그룹(52)에 디스패치되는 서버(46)를 구성하는 방법을 결정하기 위해 접속성 규칙(160)의 세트 및 퍼스날리티 모듈(162)의 세트를 평가한다.
본 발명에서 이종의 계정 양단에서 호스트 서비스를 동적으로 제공할 수 있는 방법을 조사하는 또 다른 방법으로는 특정 관리 그룹(52)에 대한 소프트웨어 및 데이터에 액세스하도록 선택적으로 구성될 수 있는 복수의 가상 서버의 풀에 할당되는 일부의 서버(46)를 검토하는 것이다. 디스패치 모듈(146)이 서버(46)를 특정 관리 그룹(52)에 부가하기 위한 요구를 결정한 때, 서버 중 하나를 가상 서버의 풀로부터 그 관리 그룹으로 자동으로 할당한다. 역으로, 디스패치 모듈이 그의 서버(46) 중 하나를 양도할 수 있는 관리 그룹을 결정하는 경우, 그 양도된 서버는 상이한 관리 그룹에 대한 재할당에 이용가능한 가상 서버의 풀에 부가된다. 본 발명이 이 사시도로부터 관찰되는 경우, 그룹 관리 소프트웨어(48)가 적시(just-in-time)에 또는 필요한 만큼(as-needed basis) 이 복수의 가상 서버의 풀 이외의 하나 이상의 가상 서버를 "제조" 또는 생성하도록 동작함을 알 수 있다. 상기한 바와 같이, 가상 서버의 풀은 웜 풀(warm pool) 또는 콜드 풀(cold pool), 또는 소정의 그들의 집합 중 어느 하나일 수 있다. 가상 서버는 접속성 규칙(160) 및 퍼스날리티 모듈(162)의 세트에 따라 소망하는 관리 그룹에 의해 이용되도록 제조 또는 구성된다.
이 실시예에 있어서, 마스터 결정 논리 모듈(152)은 마스터 결정 소프트웨어 프로그램에 관한 정보를 디스플레이하고, 계정 메인터넌스를 수락하며, 각종 데이터베이스로의 프로세스에 대한 정보를 갱신한다. 빌링(billing) 소프트웨어 모듈(160)은 주어진 고객 계정에 대한 서버의 할당에 기초하여, 빌링의 트랙을 유지하기 위해 엔진 그룹 관리자(48) 내로 일체화된다. 고객 계정은 고객의 서비스 레벨 승인에 기초하여 서버가 그 고객 계정에 동적으로 할당될 때 호스트 서비스에 대해 높은 레이트로 빌링되는 것이 바람직하다.
도 12는 주어진 고객 계정에 대한 3 개의 상이한 서비스 레벨 승인 배열의 대표적인 예를 도시한다. 이 실시예에 있어서, 서비스 레벨 승인은 월(月)과 같은 주어진 기간중에 호스트 서비스를 제공하도록 구성된다. 170에 도시된 제1 레벨에 있어서, 고객 계정은 640,000 개의 동시 접속용 호스트 서비스를 지원하는 능력에 의해 제공된다. 고객 계정이 제1 레벨(170)에 대한 확정 용량에 비해 큰 용량을 지 원하기 위해 서버의 재할당을 요구하지 않는 경우, 고객에게는 그 레벨의 확정 용량에 대한 레이트가 달성되도록 과금된다. 172에 도시된 제2 레벨에 있어서, 고객 계정은 제1 레벨(172)에서의 능력에 2 배가 되는 능력을 지원하도록 동적으로 확장될 수 있다. 바람직한 일실시예에 있어서, 일단 엔지 그룹 관리자(48)가 예측 최대 사용량보다 큰 것을 만족시키는 능력의 제2 레벨(172)을 지원하기 위해 고객 계정에 서버를 동적으로 재할당하면, 고객 계정에는 추가의 사용량이 필요한 기간에 대해 대해 높은 레이트로 과금된다. 또한, 고객 계정에는 제2 레벨(172)에 의해 나타내어지는 고레벨의 서비스를 개시하기 위한 1 회분의 요금(one-time fee)이 과금된다. 일실시예에 있어서, 제2 레벨(172)의 서비스에 대해서는 제1 레벨(170)에 과금되는 몇몇 추가 배수의 레이트인 레이트로 과금된다. 최종적으로, 제3 레벨(174)은 호스트 서비스를 고객 계정에 제공하는데 집중시킬 수 있는 선택 확장된 추가 레벨의 서비스를 제공한다. 이 실시예에 있어서, 제3 레벨(174)은 제1 레벨(170)보다 더 높은 배수의 서비스 레벨을 제공한다. 일실시예에서는, 이 확장된 추가 레벨의 서비스를 제공하기 위해서, 호스트 시스템은 이 레벨의 서비스를 만족시키는데 필요한 수의 서버를 받아들이기 위해, 상기한 바와 같은 다중사이트 배열을 사용하게 한다. 고객 계정에는, 확장된 추가 서비스가 이 고객 계정에 재할당되는 기간에 대해 두 번째로 높은 레이트로 과금되는 것이 바람직하다. 일실시예에 있어서, 제3 레벨(174)의 서비스에 대해서는, 확장된 추가의 제3 레벨(174)의 서비스가 이 고객 계정에 제공되는 주어진 기간중에 보다 큰 배수의 제1 레벨(170)인 레이트로 과금된다. 다시, 고객 계정에는 주어진 기간중 소정 시간에 이 제3 레벨(174)의 서비스 를 개시하기 위한 1 회분의 요금이 과금될 수 있다. 주어진 기간의 단부에서, 고객은 주어진 고객 계정에 대해 계약된 서비스의 레벨을 변경할 수 있다.
도 12에 도시된 바와 같이, 서비스 레벨 승인은 주어진 고객 계정에 대한 보다 높은 예측 최대 사용량에 응답하여 제1 기간으로부터 제2 기간으로 50 %만큼 증가된다. 주어진 고객 계정에 대한 서비스 레벨 승인을 위한 기간은 다가오는 빌링 기간에 대한 서비스 레벨 승인에 대해 추천된 변경을 고객에게 나타내는 제안을 갖는 1 개월 단위(a monthly basis)인 것이 바람직하다. 비록 이 예가 동시 접속에 관해서 논증하고 있다 하더라도, 주어진 고객 계정에 대한 서비스 레벨 승인은 동시 접속, 히트(hit), 데이터 전송량, 거래의 수, 접속 시간, 상이한 응용 소프트웨어 프로그램에 의해 이용되는 자원, 발생된 수입 또는 이들의 소정의 조합과 같은 다양한 성능 측정에 관해서 발생될 수 있음이 이해되어야 한다. 또한, 서비스 레벨 승인이 프런트 엔드 서버, 백 엔드 서버, 네트워크 접속 또는 디스크 스토리지 유닛과 같은 상이한 타입의 자원을 위한 상이한 타입의 위탁에 제공될 수 있다.
이하, 도 15를 참조하면, 국부 결정 소프트웨어 프로그램(70)의 바람직한 실시예의 블록도가 도시되어 있다. 일련의 측정 모듈(180, 181, 182, 183, 184) 각각은 국부 결정 소프트웨어 프로그램(70)이 실행되는 특정 서버의 동작에 대해 독립적인 평가를 수행한다. 이들 측정 모듈로부터의 출력은 국부 결정 소프트웨어 프로그램(70)의 통합기(aggregator) 모듈(190)에 제공된다. 예측기(predictor) 모듈(192)은 예측 응답 시간 및 각종 요구에 대한 확률을 발생한다. 서비스 레벨 승인 데이터베이스(152)로부터의 마스터 결정 소프트웨어 프로그램(72)에 의해 공 급되는 우선권 입력(194)에 있어서, 퍼지 추론 시스템(196)은 관리 그룹(52)에 대해 엔진 블레이드(104)를 부가하기 위한 요구가 이루어졌는지 여부를 결정하거나, 또는 관리 그룹(52)에 대해 엔진 블레이드를 포기 또는 제거하기 위한 제의가 이루어졌는지 여부를 결정한다. 이어서, 블레이드를 부가 또는 제거하기 위한 요구가 통신 채널(106)을 통하여 마스터 결정 소프트웨어 프로그램(72)으로 통신된다. 일실시예에 있어서, 통합기 모듈은 주어진 관리 그룹(52) 내의 각 서버(46)에 대해 실행되며, 예측기 모듈(192) 및 퍼지 추론 모듈(196)은 통신 채널(106) 양단에 설계된 서버(46)로 통신되는 각종 측정 모듈(180-184)의 출력을 갖는 주어진 관리 그룹(52) 내의 단일 서버(46)에 대해서만 실행된다. 다른 실시예에 있어서, 통합기 모듈(190), 예측기 모듈(192) 및 퍼지 추론 모듈(196)은 블레이드 부가 또는 추가 요구를 발생하는데 필요한 정보를 용장 또는 분배 처리하기 위한 주어진 관리 그룹내 하나 이상의 서버에 대해 실행될 수 있다.
통합기 모듈(190)은 다음 수학식에 따라 각종 측정 모듈(180-184) 양단의 밸런싱을 달성한다.
Figure 112003001723314-pct00001
Figure 112003001723314-pct00002
여기서, Tki는 측정 타입 k의 i 번째 요구에 걸린 시간이고, wk는 측정 타입 k에 대한 윈도우 크기이며, mink는 측정 타입 k에 대해 예측된 최소 시간이고, maxk는 측정 타입 k에 대해 허용되는 최대 시간이다. 이어서, 밸런스를 취한 요구 레이 트 Bk가 국부 결정 소프트웨어 프로그램(70)의 예측기 모듈(192) 및 퍼지 추론 모듈(196)로 전달된다. 측정 타입 k에 대한 윈도우 크기는 측정 모듈(180-184)에 의한 소정의 불필요한 침범을 최소화하도록 설정되는 반면, 이와 동시에 시기적절하고 적당한 응답이 관리 그룹(52)에 대한 사용 요구를 증가시킬 수 있게 한다.
도 16은 다양한 부하 조건하의 각종 측정 모듈(180-184)로부터의 작업 부하 측정의 샘플을 도시한다. 단일 작업 부하 측정은 예측 응답 시간의 일정하게 예측가능한 추정 및 그 응답 시간에 대한 확률을 제공하지 않음을 알 수 있다. 그렇기 때문에, 퍼지 추론 모듈(196)은 각종 요구에 대한 예측 응답 시간, 이들 요구의 우선권 및 이들의 발생 확률과 같은 3 개의 기초 파라미터를 고려하여야 한다. 퍼지 추론 모듈(196)은 이들 고려 사항 3 개 모두를 혼합하여, 블레이드를 관리 그룹(52)에 부가할 것인지 관리 그룹(52)으로부터 제거할 것인지 여부에 관한 결정을 행한다. 퍼지 추론 규칙의 일례는 다음과 같다.
if (우선권이 긴급) and (확률이 높음) and (예측 응답 시간이
매우 좋음) then (블레이드를 부가하기 위한 요구를 행함).
퍼지 추론 모듈(196)의 종료 결과는 부가 서버를 요구하는 요구의 등고선을 이 관리 그룹(52)에 대한 예측 응답 시간 대 그 응답 시간의 확률의 격자 위에 도시하는 결정면을 발생시키는 것이다. 도 17에는 이러한 결정면의 일례가 도시되어 있다.
본 발명의 일부의 상세한 설명은 저작권 보호에 관한 것이다. 본 저작권의 요구자는 미국 특허청의 파일 또는 기록에 나타나 있는 바와 같이, 본 발명의 상세한 설명의 팩시밀리 복제를 허용할 뿐, 모든 저작권을 보유한다.
비록 본 발명의 자동화 시스템의 바람직한 실시예가 기술되어 있다 하더라도, 당업자라면 본 발명의 범위가 특허청구범위에 의해 정의되는 다수의 변경예 및 변형예가 이루어질 수 있음을 이해할 수 있을 것이다.

Claims (26)

  1. 복수의 관리 그룹들로 조직된 복수의 서버들을 이용하여 인터넷에 대한 호스트 서비스의 동적 관리를 제공하도록 서비스 제공자를 운영하기 위한 자동화 방법에 있어서,
    상기 인터넷에 대한 호스트 서비스를 복수의 고객 계정들 각각에 대하여 제공하기 위해, 상기 복수의 서버들 중 일 서버 세트를 상기 복수의 고객 계정들 각각에 대하여 제공하는 단계로서, 상기 일 서버 세트는 상기 각각의 고객 계정에 대한 공통 관리 그룹에 할당되고 상기 각각의 고객 계정마다의 고유 소프트웨어 및 데이터에 액세스하도록 구성되는 것인, 상기 복수의 서버들 중 일 서버 세트를 상기 복수의 고객 계정들 각각에 대하여 제공하는 단계와;
    상기 복수의 관리 그룹들을 자동으로 모니터링하는 단계와;
    상기 자동 모니터링에 응답하여, 상기 복수의 관리 그룹들 중 제1 관리 그룹에 할당된 상기 서버 세트로부터 상기 복수의 관리 그룹들 중 제2 관리 그룹으로 적어도 하나의 서버를 자동으로 및 동적으로 재할당하는 단계
    를 포함하고, 상기 자동으로 및 동적으로 재할당하는 단계는,
    상기 적어도 하나의 서버가 상기 제2 관리 그룹에 대한 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 초기화 포인터를 설정하는 단계와;
    상기 적어도 하나의 서버가 상기 제2 관리 그룹에 참여하도록 상기 적어도 하나의 서버를 재초기화하는 단계를 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  2. 제1항에 있어서, 상기 복수의 고객 계정들 각각에 대한 상기 공통 관리 그룹에 할당된 상기 서버 세트는 인트라넷에 의해 함께 연동 결합되며, 상기 복수의 관리 그룹들을 자동으로 모니터링하는 단계는, 부분적 또는 전체적으로, 상기 공통 관리 그룹에 대한 인트라넷과는 별개인 통신 채널에 의해 수행되는 것인, 서비스 제공자 운영용 자동화 방법.
  3. 제1항에 있어서, 상기 제1 관리 그룹에 할당된 상기 서버 세트는 제1 사이트에 위치하고, 상기 제2 그룹에 할당된 상기 적어도 하나의 서버는 상기 제1 사이트로부터 지리적으로 원격지의 제2 사이트에 위치하며, 상기 자동 모니터링 단계는 적어도 상기 제1 관리 그룹에 대한 데이터를 상기 제2 사이트에 자동으로 복사하는 단계를 더 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  4. 제1항에 있어서, 상기 동적으로 재할당하는 단계는, 서비스 레벨 승인 데이터베이스에 정의된 각 고객 계정에 대한 파라미터와 조합하여 상기 자동 모니터링에 응답하여 수행되는 것인, 서비스 제공자 운영용 자동화 방법.
  5. 제1항에 있어서, 상기 자동 모니터링 단계는 상기 제2 관리 그룹내 서버 중 한 서버의 고장을 검출하고 상기 제1 관리 그룹내 서버 중 적어도 한 서버를 동적으로 할당하여, 상기 제2 관리 그룹내 고장난 서버를 교체하는 것인, 서비스 제공자 운영용 자동화 방법.
  6. 제1항에 있어서, 상기 자동 모니터링 단계는 상기 제2 관리 그룹내 서버에 대해 증가된 작업 부하를 예측하고 상기 제1 관리 그룹내 서버 중 적어도 하나를 동적으로 할당하여, 상기 제2 관리 그룹내 대량의 서버 사이에서 증가하는 작업 부하를 재분배하는 것인 서비스 제공자 운영용 자동화 방법.
  7. 제1항에 있어서, 상기 초기화 포인터 설정 단계는, 상기 초기화 포인터를 결정하기 위해 각 고객 계정에 대한 퍼스날리티 모듈에 유지되는 정보를 이용하는 것인, 서비스 제공자 운영용 자동화 방법.
  8. 제1항에 있어서, 상기 복수의 서버들 각각은 인터넷에 프로그램적으로 접속되며, 상기 동적으로 재할당하는 단계는, 상기 제1 관리 그룹에 할당된 상기 서버 세트로부터의 상기 적어도 하나의 서버를 상기 제2 관리 그룹의 일부로서 인터넷에 연동 접속되도록 스위칭하는 단계를 더 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  9. 제8항에 있어서, 상기 복수의 서버들 각각은 디스크 스토리지 유닛에도 프로그램적으로 접속되며, 상기 동적으로 재할당하는 단계는, 상기 제1 관리 그룹에 할당된 상기 서버 세트로부터의 상기 적어도 하나의 서버를 상기 제2 관리 그룹의 고객 계정마다의 고유 소프트웨어 및 데이터를 기억하기 위한 상기 디스크 스토리지 유닛의 일부에 연동 접속되도록 스위칭하는 단계를 더 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  10. 제1항에 있어서, 상기 동적으로 재할당하는 단계는, 상기 복수의 서버들 중 상기 적어도 하나의 서버가 각각의 고객 계정에 동적으로 재할당될 때, 상기 호스트 서비스에 대해 보다 높은 레이트로 고객 계정에 빌링하는 단계를 더 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  11. 복수의 고객 계정에 제공되는 인터넷에 대한 호스트 서비스의 동적 관리를 제공하기 위한 시스템에 있어서,
    인트라넷에 연동 접속된 적어도 5 개의 서버들을 포함하는 서버 세트로서, 각각의 서버는 인트라넷과 분리된 다른 서버들 중 적어도 하나를 통신 채널에 제공하는 호스트 관리 회로를 갖는 것인, 상기 서버 세트와;
    대응하는 서버를 모니터하고 상기 통신 채널을 가로질러 상태 정보를 통신하는 국부 결정 소프트웨어 프로그램을 실행하는 상기 서버 세트 중 적어도 4 개의 서버들과;
    제1 고객 계정에 대한 제1 관리 그룹에 할당되고, 상기 제1 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 구성되며, 상기 고객 계정에 대하여 상기 인터넷에 대한 호스트 서비스를 제공하는, 상기 서버 세트 중 적어도 2 개의 서버들과;
    제2 고객 계정에 대한 제2 관리 그룹에 할당되고, 상기 제2 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 구성되며, 상기 인터넷에 대한 호스트 서비스를 상기 고객 계정에 대하여 제공하는, 상기 서버 세트 중 적어도 2 개의 서버들과;
    마스터 결정 소프트웨어 프로그램을 실행하는 상기 서버 세트 중 적어도 하나의 서버로서, 상기 마스트 결정 소프트웨어 프로그램은 상기 서버 세트 중 다른 서버들로부터 상태 정보를 수집하고, 적어도 상기 상태 정보에 응답하여 선택된 적어도 하나의 서버를 상기 제1 관리 그룹으로부터 상기 제2 관리 그룹으로 동적으로 재할당하는 것인, 상기 마스터 결정 소프트웨어 프로그램을 실행하는 상기 서버 세트 중 적어도 하나의 서버
    를 포함하는 호스트 서비스 동적 관리 시스템.
  12. 제11항에 있어서, 상기 마스터 결정 소프트웨어 프로그램은, 상기 통신 채널을 이용하여 상기 선택된 적어도 하나의 서버가 상기 제2 관리 그룹에 대한 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 초기화 포인터를 설정하도록 상기 선택된 적어도 하나의 서버를 동적으로 재할당하고, 상기 선택된 적어도 하나의 서버가 상기 제2 관리 그룹에 참여하도록 상기 선택된 적어도 하나의 서버를 재초기화하는 것인 호스트 서비스 동적 관리 시스템.
  13. 제11항에 있어서, 상기 인터넷과 각 서버 사이에 연동 접속된 네트워크 스위치를 더 포함하고, 각 서버는 상기 마스터 결정 소프트웨어 프로그램의 제어하에서 상기 인터넷과 프로그램적으로 접속되는 것인 호스트 서비스 동적 관리 시스템.
  14. 제11항에 있어서, 상기 서버 세트의 모든 서버들에 프로그램적으로 접속된 디스크 스토리지 유닛을 더 포함하고, 상기 마스터 결정 소프트웨어 프로그램은, 상기 제2 관리 그룹의 고객 계정의 고유 소프트웨어 및 데이터를 저장하는 상기 디스크 스토리지 유닛의 일부에 연동 접속되도록 상기 선택된 적어도 하나의 서버를 스위칭하는 것인, 호스트 서비스 동적 관리 시스템.
  15. 제11항에 있어서, 상기 제1 관리 그룹에 할당된 복수의 서버는 제1 사이트에 위치하고, 상기 제2 관리 그룹에 할당된 복수의 서버는, 상기 제1 사이트로부터 지리적으로 원격지의 제2 사이트에 위치하며, 적어도 상기 제1 관리 그룹에 대한 데이터를 상기 제2 사이트에 자동으로 복사하기 위한 수단을 더 포함하는 것인, 호스트 서비스 동적 관리 시스템.
  16. 제11항에 있어서, 상기 마스터 결정 소프트웨어는,
    자원 데이터베이스와;
    서비스 레벨 승인 데이터베이스와;
    상기 자원 데이터베이스 및 상기 서비스 레벨 승인 데이터베이스에 액세스하며, 상기 선택된 적어도 하나의 서버를 상기 제1 고객 계정으로부터 상기 제2 고객 계정으로 동적으로 재할당할지 여부를 결정하기 위해 상기 상태 정보와 상기 자원 데이터베이스 및 상기 서비스 레벨 승인 데이터베이스 내의 정보를 비교하는 마스터 결정 논리 모듈과;
    상기 마스터 결정 논리 모듈에 연동 링크되며, 상기 마스터 결정 논리 모듈에 의해 지시받을 때, 상기 통신 채널을 이용하여 상기 선택된 적어도 하나의 서버가 상기 제2 관리 그룹에 대한 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 초기화 포인터를 설정하고, 상기 선택된 적어도 하나의 서버가 상기 제2 관리 그룹에 참여하도록 재초기화함으로써, 상기 선택된 적어도 하나의 서버를 동적으로 재할당하는 디스패치 모듈
    을 포함하는 것인 호스트 서비스 동적 관리 시스템.
  17. 제16항에 있어서, 상기 디스패치 모듈은 각 고객 계정에 대한 접속 규칙 세트 및 퍼스날리티 모듈 세트를 더 포함하는 것인, 호스트 서비스 동적 관리 시스템.
  18. 제11항에 있어서, 상기 국부 결정 소프트웨어 프로그램은, 상기 대응하는 서버에 대한 예측 응답 시간 및 확률을 결정하기 위해 예측기 루틴 내에 집합되는 출력들을 갖는 복수의 측정 모듈을 포함하는 것인, 호스트 서비스 동적 관리 시스템.
  19. 제18항에 있어서, 상기 국부 결정 소프트웨어 프로그램은, 서버를 상기 대응하는 서버와 관련된 관리 그룹에 대해 부가하거나 제거하라는 요구를 개시하기 위해 상기 예측기 루틴의 출력에 적어도 접속된 퍼지 논리 추론 시스템을 더 포함하는 것인, 호스트 서비스 동적 관리 시스템.
  20. 제19항에 있어서, 상기 마스터 결정 소프트웨어 프로그램은, 상기 선택된 적어도 하나의 서버를 상기 제1 관리 그룹으로부터 상기 제2 관리 그룹으로 동적으로 재할당할지 여부를 결정하기 위해 자원 데이터베이스 및 서비스 레벨 승인 데이터베이스 내의 정보를 이용하여 상기 국부 결정 소프트웨어 프로그램 전체에 대해 서버를 부가 또는 제거하라는 요구를 밸런싱(balancng)하는 것인, 호스트 서비스 동적 관리 시스템.
  21. 인터넷에 대한 호스트 서비스의 동적 관리를 제공하도록 서비스 제공자를 운영하기 위한 자동화 방법에 있어서,
    복수의 고객 계정들에 대해, 인터넷에 대한 호스트 서비스를 상기 각각의 고객 계정에 대하여 제공하기 위해, 상기 각각의 고객 계정에 대한 공통 관리 그룹에 할당되고 상기 각각의 고객 계정마다의 고유 소프트웨어 및 데이터에 액세스하도록 구성된 복수의 서버를 제공하는 단계와;
    상기 복수의 고객 계정 각각에 대한 소프트웨어 및 데이터에 액세스하도록 선택적으로 구성될 수 있는 복수의 가상 서버의 풀을 확립하는 단계와;
    각 관리 그룹을 자동으로 모니터링하는 단계와;
    상기 자동 모니터링에 응답하여, 제1 관리 그룹의 복수의 서버에 참여하기 위해 적어도 하나의 가상 서버를 자동으로 할당하는 단계를 포함하고,
    상기 자동으로 할당하는 단계는,
    상기 적어도 하나의 가상 서버가 제2 관리 그룹에 대한 고객 계정의 고유 소프트웨어 및 데이터에 액세스하도록 초기화 포인터를 설정하는 단계와;
    상기 적어도 하나의 가상 서버가 상기 제1 관리 그룹에 참여하도록 상기 적어도 하나의 가상 서버를 재초기화하는 단계
    를 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  22. 제21항에 있어서, 상기 복수의 가상 서버의 풀의 적어도 일부는 상기 자동 모니터링에 응답하여 필요한 만큼 생성되는 것인, 서비스 제공자 운영용 자동화 방법.
  23. 제22항에 있어서, 상기 제2 관리 그룹의 복수의 서버들 중 선택된 적어도 하나의 서버를 자동으로 할당해제(deallocate)하는 단계와, 상기 자동 모니터링에 응답하여 상기 선택된 적어도 하나의 서버를 상기 가상 서버의 풀에 할당하는 단계를 더 포함하는 것인, 서비스 제공자 운영용 자동화 방법.
  24. 제21항에 있어서, 상기 초기화 포인터 설정 단계는, 각 관리 그룹의 고유 퍼스날리티 모듈 내에 유지되는 정보를 이용하는 것인 서비스 제공자 운영용 자동화 방법.
  25. 제21항에 있어서, 상기 초기화 포인터 설정 단계는, 상기 가상 서버가 할당된 관리 그룹과 관련된 고객 계정이 아닌 임의의 고객 계정과 관련된 소프트웨어 및 데이터에 상기 가상 서버가 액세스하지 못하도록 하는 것인, 서비스 제공자 운영용 자동화 방법.
  26. 제21항에 있어서, 하나 이상의 가상 서버가 상기 제1 관리 그룹에 동시에 할당되는 것인 서비스 제공자 운영용 자동화 방법.
KR1020037000778A 2000-07-17 2001-06-28 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템 KR100840960B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US21860200P 2000-07-17 2000-07-17
US60/218,602 2000-07-17
US09/710,095 US6816905B1 (en) 2000-11-10 2000-11-10 Method and system for providing dynamic hosted service management across disparate accounts/sites
US09/710,095 2000-11-10
PCT/US2001/020571 WO2002007037A1 (en) 2000-07-17 2001-06-28 Method and system for providing dynamic hosted service management

Publications (2)

Publication Number Publication Date
KR20030019592A KR20030019592A (ko) 2003-03-06
KR100840960B1 true KR100840960B1 (ko) 2008-06-24

Family

ID=26913078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037000778A KR100840960B1 (ko) 2000-07-17 2001-06-28 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템

Country Status (7)

Country Link
EP (1) EP1312007A4 (ko)
JP (1) JP2004519749A (ko)
KR (1) KR100840960B1 (ko)
CN (1) CN1285055C (ko)
AU (1) AU2001273047A1 (ko)
CA (1) CA2415770C (ko)
WO (1) WO2002007037A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US7765299B2 (en) 2002-09-16 2010-07-27 Hewlett-Packard Development Company, L.P. Dynamic adaptive server provisioning for blade architectures
WO2004038555A2 (en) 2002-10-22 2004-05-06 Isys Technologies Robust customizable computer processing system
CA2503791A1 (en) 2002-10-22 2004-05-06 Jason A. Sullivan Non-peripherals processing control module having improved heat dissipating properties
KR101259706B1 (ko) 2002-10-22 2013-05-06 제이슨 에이. 설리반 향상된 방열 특성을 갖는 비주변 처리 제어 모듈
US7953860B2 (en) 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US7437460B2 (en) 2003-08-14 2008-10-14 Oracle International Corporation Service placement for enforcing performance and availability levels in a multi-node system
US7552171B2 (en) 2003-08-14 2009-06-23 Oracle International Corporation Incremental run-time session balancing in a multi-node system
US7937493B2 (en) 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US8365193B2 (en) 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7441033B2 (en) 2003-08-14 2008-10-21 Oracle International Corporation On demand node and server instance allocation and de-allocation
US7664847B2 (en) 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US7516221B2 (en) 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
JP4805150B2 (ja) * 2003-08-14 2011-11-02 オラクル・インターナショナル・コーポレイション オンデマンドノードならびにサーバインスタンス割当および割当解除
US7437459B2 (en) 2003-08-14 2008-10-14 Oracle International Corporation Calculation of service performance grades in a multi-node environment that hosts the services
CN100547583C (zh) 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US20060064400A1 (en) 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US8554806B2 (en) 2004-05-14 2013-10-08 Oracle International Corporation Cross platform transportable tablespaces
JP2006085209A (ja) * 2004-09-14 2006-03-30 Hitachi Ltd 計算機システムのデプロイメント方式
JP4734259B2 (ja) * 2004-10-18 2011-07-27 富士通株式会社 運用管理プログラム、運用管理方法および運用管理装置
JPWO2006043308A1 (ja) 2004-10-18 2008-05-22 富士通株式会社 運用管理プログラム、運用管理方法および運用管理装置
EP1814027A4 (en) 2004-10-18 2009-04-29 Fujitsu Ltd PROGRAM, METHOD AND INSTALLATION FOR OPERATIONAL MANAGEMENT
US9176772B2 (en) 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US7526409B2 (en) 2005-10-07 2009-04-28 Oracle International Corporation Automatic performance statistical comparison between two periods
DE102006033863A1 (de) 2006-07-21 2008-01-24 Siemens Ag Verschaltungsschnittstelle für flexibles Online/Offline-Deployment einer n-schichtigen Softwareapplikation
US8909599B2 (en) 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
US8095970B2 (en) 2007-02-16 2012-01-10 Microsoft Corporation Dynamically associating attribute values with objects
JP5056504B2 (ja) 2008-03-13 2012-10-24 富士通株式会社 制御装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8595267B2 (en) * 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
TWI437426B (zh) 2011-07-08 2014-05-11 Quanta Comp Inc 伺服器機櫃系統
US9733983B2 (en) 2011-09-27 2017-08-15 Oracle International Corporation System and method for surge protection and rate acceleration in a traffic director environment
US20130308266A1 (en) * 2011-11-10 2013-11-21 Jason A. Sullivan Providing and dynamically mounting and housing processing control units
US10063450B2 (en) * 2013-07-26 2018-08-28 Opentv, Inc. Measuring response trends in a digital television network
GB2517195A (en) * 2013-08-15 2015-02-18 Ibm Computer system productivity monitoring
US10764158B2 (en) 2013-12-04 2020-09-01 International Business Machines Corporation Dynamic system level agreement provisioning
US10057337B2 (en) * 2016-08-19 2018-08-21 AvaSure, LLC Video load balancing system for a peer-to-peer server network
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
FR3071630B1 (fr) * 2017-09-25 2021-02-19 Schneider Electric Ind Sas Procede de gestion de modules logiciels embarques pour un calculateur electronique d'un appareil electrique de coupure
US12007941B2 (en) 2017-09-29 2024-06-11 Oracle International Corporation Session state tracking
US11936739B2 (en) 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0833514A2 (en) * 1996-09-27 1998-04-01 Sony Corporation Data decoding system and method, transfer device and method, and receiving device and method
EP0873009A2 (en) * 1997-04-14 1998-10-21 Samsung Electronics Co., Ltd. Multimedia system for transferring and receiving program number and methods therefor
JPH1127635A (ja) 1997-07-04 1999-01-29 Sony Corp 電子機器制御システムおよび方法、再生装置、出力装置、並びに伝送媒体
US5938732A (en) 1996-12-09 1999-08-17 Sun Microsystems, Inc. Load balancing and failover of network services
US6504996B1 (en) 1998-06-19 2003-01-07 Samsung Electronics Co. Ltd. Apparatus for transmitting information via a network to a device that can display a user interface, and method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0694837A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
US6230183B1 (en) * 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0833514A2 (en) * 1996-09-27 1998-04-01 Sony Corporation Data decoding system and method, transfer device and method, and receiving device and method
US5938732A (en) 1996-12-09 1999-08-17 Sun Microsystems, Inc. Load balancing and failover of network services
EP0873009A2 (en) * 1997-04-14 1998-10-21 Samsung Electronics Co., Ltd. Multimedia system for transferring and receiving program number and methods therefor
JPH1127635A (ja) 1997-07-04 1999-01-29 Sony Corp 電子機器制御システムおよび方法、再生装置、出力装置、並びに伝送媒体
US6504996B1 (en) 1998-06-19 2003-01-07 Samsung Electronics Co. Ltd. Apparatus for transmitting information via a network to a device that can display a user interface, and method thereof

Also Published As

Publication number Publication date
EP1312007A1 (en) 2003-05-21
CN1285055C (zh) 2006-11-15
CN1441933A (zh) 2003-09-10
CA2415770C (en) 2010-04-27
EP1312007A4 (en) 2008-01-02
WO2002007037A1 (en) 2002-01-24
JP2004519749A (ja) 2004-07-02
AU2001273047A1 (en) 2002-01-30
KR20030019592A (ko) 2003-03-06
WO2002007037A9 (en) 2004-03-04
CA2415770A1 (en) 2002-01-24

Similar Documents

Publication Publication Date Title
KR100840960B1 (ko) 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템
US6816905B1 (en) Method and system for providing dynamic hosted service management across disparate accounts/sites
US8538843B2 (en) Method and system for operating an E-commerce service provider
US7844513B2 (en) Method and system for operating a commissioned e-commerce service prover
US6597956B1 (en) Method and apparatus for controlling an extensible computing system
CN101118521B (zh) 跨越多个逻辑分区分布虚拟输入/输出操作的系统和方法
US20050080891A1 (en) Maintenance unit architecture for a scalable internet engine
Appleby et al. Oceano-SLA based management of a computing utility
US7370013B1 (en) Approach for determining an amount to bill a customer for the use of resources
US7146233B2 (en) Request queue management
Moreno-Vozmediano et al. Orchestrating the deployment of high availability services on multi-zone and multi-cloud scenarios
US20040088414A1 (en) Reallocation of computing resources
EP3811206A1 (en) Network-accessible computing service for micro virtual machines
US9483258B1 (en) Multi-site provisioning of resources to software offerings using infrastructure slices
JP2004508616A (ja) 拡張可能コンピューティングシステムの制御方法および装置
CN100421382C (zh) 高扩展性互联网超级服务器的维护单元结构及方法
US7558858B1 (en) High availability infrastructure with active-active designs
Castets et al. IBM TotalStorage Enterprise Storage Server Model 800
EP2098956A1 (en) Computing system and method for managing a server pool

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee