메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

가상 시스템 발견 및 자체 연결 자동화하기

플러그 앤 플레이를 사용하여 가상 시스템을 발견하고 연결하기

Giuseppe Ciano, Chief Designer of Tivoli Cloud Solutions, IBM
Giuseppe Ciano joined IBM in 1997 as a software engineer in the Rome SWG Tivoli Lab. He as been working for 11 years as developer and designer of different products in the Tivoli portfolio. He is currently chief designer of Tivoli Cloud Solutions like IBM Service Delivery Manager product. He is also the designer of StereoCable.
Maurizio Simeoni, Staff Engineer, Tivoli, IBM
Maurizio Simeoni graduated in telecomunications engineering at the University of Roma "La Sapienza". He is a staff engineer at IBM Rome Tivoli. He currently works on IBM Service Delivery Manager. He has over 10 years of experience in developing and supporting software applications. He contributed to the design and development of StereoCable.
Alessio D'Amico, IT Architect for IBM Tivoli Services, IBM
Alessio D'Amico joined IBM in 1999 as a software engineer in the Rome SWG Lab. During his career, he gained experience in the full project life cycle from project management, business analysis, design and build through implementation. Currently he is responsible for designing and implementing the service management and cloud computing solution based on the Tivoli products portfolio. His main areas of expertise cover system management, provisioning, service management, virtualization, and cloud computing.
Dr. Antonio Perrone, Senior Software Engineer, IBM
Antonio Perrone graduated cum laude in information sciences in 1989 at the University of Bari, Italy. He joined IBM in 1990, where he has held several positions in development and support. He has been with the IBM Tivoli division since 1996, where he is currently an architect in the network performance management area. His interests include systems management, performance and availability, knowledge representation, data integration, transaction and process modeling, and software development.
Luigi Pichetti, Senior Technical Staff Member, Tivoli, SPDA, IBM
Luigi Pichetti is the Tivoli architect for CloudBurst and for IBM Service Delivery Manager, solutions that offer services and benefit of virtual appliance initiatives. He leads the image-based installation initiative which aims to leverage virtualization technologies like the Activation Engine and StereoCable as alternate, efficient means to ship products. Luigi has 19 years of experience in developing and designing enterprise applications in the system-management arena; prior to this, he was lead on the architecture team for Tivoli Configuration Manager and Common Inventory Technology componentry.
Francesco Dauri, Team Leader TWS Test L3, IBM
Francesco Dauri spent a year as DB2 consultant in the Information Management group with a focus on DB2 High Availability, data tuning, and optimization. For four years he worked as software engineer on the Tivoli Workload Scheduler product in the verification team. His skills include the Test discipline (CVT, IVT; SVT, etc.), agile methodology, usability test discipline, and user interface design focusing on the Rich Internet Application using Flex technology.

요약:  가상 데이터 센터에서는 복합 어플라이언스의 전개 및 해제를 수행하려면 여러 구성 단계를 실행해야 합니다. 재구성 요구사항에는 서로 다른 가상 시스템(VM)에서 실행 중인 동일한 제품과 서로 다른 VM에서 실행 중인 서로 다른 제품의 서로 다른 컴포넌트 간 통신을 설정 및 제거하는 것이 포함됩니다. 일반적으로 이 프로세스는 정적 값이 포함된 사전정의된 스크립트의 호출을 사용하여 유연성이 결여되고 수동 작업의 부담이 컸습니다. 이 기사에서는 가상 데이터 센터에서 복합 가상 어플라이언스의 자동화된 플러그 앤 플레이 지원인 StereoCable을 통해 이 문제를 해결하도록 제안합니다. 이 방법을 사용하면 VM이 사전정의된 연결 정책을 기반으로 서로를 발견하여 자동으로 연결될 수 있습니다.

원문 게재일:  2010 년 11 월 01 일 번역 게재일:   2011 년 2 월 22 일
난이도:  중급 원문:  보기 PDF:  A4 and Letter (198KB | 19 pages)Get Adobe® Reader®
페이지뷰:  2813 회
의견:  


가상 어플라이언스는 하나의 유닛으로 패키지, 업데이트, 유지보수 및 관리되는 하나 이상의 가상 시스템으로 구성된 사전 빌드된 소프트웨어 솔루션이다. 기존 하드웨어 어플라이언스와는 달리 이러한 소프트웨어 어플라이언스를 사용하면 고객이 사전 통합된 솔루션 스택을 쉽게 취득, 전개 및 관리할 수 있다. 이를 통해 수익 창출 기간이 단축되고 소프트웨어 개발, 배포 및 관리가 단순해진다.

가상 어플라이언스는 애플리케이션 빌더가 애플리케이션을 위해 소프트웨어 스택을 최적화하고 턴키 소프트웨어 서비스를 일반 사용자에게 전달할 수 있도록 하기 때문에 소프트웨어 배포 패러다임을 바꾸고 있다.

현재의 가상 어플라이언스에는 단일 가상 시스템(VM)만 포함되어 있지만 최신 엔터프라이즈 애플리케이션은 복수의 티어를 사용하여 서비스 지향 아키텍처(SOA)를 모델링한다(각 티어에는 하나 이상의 시스템이 포함되어 있음). 단일 VM 모델은 이 유형의 애플리케이션을 위해서는 충분하지 않다. 소프트웨어 어플라이언스 형식으로 멀티티어 서비스를 배포하려면 협력할 수 있는 더 많은 VM으로 구성된 복합 가상 어플라이언스가 필요하다.

예를 들어, 세 개의 티어로 구성된 일반적인 웹 애플리케이션을 생각해 보자. 이러한 세 개의 티어는 프리젠테이션 로직을 구현하는 웹 티어, 비즈니스 로직을 구현하는 애플리케이션 서버 티어백엔드 데이터베이스 티어이다. 직접적인 구현에서는 이를 세 개(각 티어에 대해 하나)의 가상 시스템으로 나눈다. 이 방법으로 애플리케이션은 단일 실제 호스트의 부분에서 세 개의 실제 호스트로 확장할 수 있다.

가상 데이터 센터에서는 복합 어플라이언스의 전개 및 해제를 수행하려면 가상 어플라이언스를 시작하여 실행하기 위해 여러 구성 단계를 실행해야 한다.

  1. 네트워크 정보(IP, 호스트 이름, 비밀번호 등)와 같은 OS별 매개변수를 지정하기 위해 필요한 재구성
  2. 다음 항목 사이의 통신을 구축/제거하기 위해 필요한 재구성:
    • 서로 다른 가상 시스템에서 실행 중인 동일한 제품의 서로 다른 컴포넌트
    • 서로 다른 가상 시스템에서 실행 중인 서로 다른 제품

활성화 엔진이란?

활성화 엔진은 전개 후 어플라이언스의 첫 번째 부팅 중에 활성화되는 가상 어플라이언스에 임베드된 소프트웨어이다.

여러 기술에서 이 가상 기스템 활성화 엔진 개념을 사용하는 예제는 다음 웹 사이트에서 확인할 수 있다.

글머리 기호 목록에 설명된 첫 번째 문제점은 전개 후 어플라이언스의 첫 번째 부팅 중에 활성화되는 가상 어플라이언스에 임베드된 소프트웨어인 활성화 엔진 기술을 사용하여 해결된다. 가상 어플라이언스를 대상 시스템에 구성하기 위해 활성화 엔진과 사용자 정의 플러그인을 작성하여 제공할 수 있다.

두 번째 글머리 기호 목록에 설명된 문제점은 해결되지 않았다. 오늘날 재구성은 수동으로 수행되거나 입력에 정적 값이 포함된 사전정의된 스크립트를 호출하여 수행된다. 이 기사에서는 가상 데이터 센터에서 복합 가상 어플라이언스의 플러그 앤 플레이 지원을 통해 이 문제를 해결하도록 제안한다. 이 방법으로 가상 시스템은 사전정의된 더 유연한 일부 연결을 기반으로 서로를 발견하여 자동으로 연결할 수 있다. StereoCable은 활성화 엔진을 보완하며 활성화 엔진과 쉽게 공존할 수 있다. 실제로 부팅 시 StereCable을 자동으로 구성하기 위해 AE를 이용할 수 있다.

StereoCable의 설계 원칙

시스템 아키텍처와 플로우에 대해 설명하기 전에 이 기사의 주요 개념인 StereoCable에 대해 소개한다.

StereoCable 정의하기

StereoCable은 다음과 같이 서로 다른 가상 시스템에서 실행 중인 두 엔티티 사이의 역할 기반 협업을 설정하는 방법에 대해 설명하는 아티팩트이다.

(PRODA_UI,PRODA_SERVER) ... (PRODA_SERVER,PRODB_SERVER) ... (PRODA_UI,PRODB_SERVER)

StereoCable 아티팩트는 다음 두 부분으로 구성된다(여기서는 각각을 역할이라고 부름).

  • 소켓 역할. 소켓은 다른 엔티티와의 협업을 설정하기 위해 엔티티에서 제공해야 하는 정보에 대해 설명한다. VM에 특정 환경의 소켓 역할이 지정되면 VM은 소켓 정의에 필요한 정보를 공개한다.
  • 플러그 역할. 플러그는 서로 다른 가상 시스템에서 실행 중인 다른 엔티티와의 협업을 설정하기 위해 VM에 있는 엔티티가 실행해야 하는 조치에 대해 설명한다. VM에 특정 환경의 플러그 역할이 지정되면 VM은 다음을 수행한다.
    1. 동일한 환경에서 해당 소켓 역할을 수행하는 VM을 찾는다.
    2. 공개된 소켓 정보를 검색한다.
    3. 플러그 정의에 설명된 조치를 실행한다.

StereoCable 아티팩트를 표시하기 위해 XML 스키마가 정의되었다. 목록 1은 StereoCable 정보의 예이다.


목록 1. XML로 된 StereoCable 정보

<StereoCable>
  <StereoCableID>StereoCableID1</StereoCableID>
    <Description>PRODA UI Automatic Reconfiguration</Description>
    <PlugSection>
      <Description>PRODA UI Server</Description>
      <PlugID>PRODA_UI</PlugID>
      <ConfigurationActions>
        <ConfigurationAction>
          <Description>Description</Description>
          <ID>ID</ID>
          <Trigger>Deployment</Trigger>
          <Action>
            <ActionType>script</ActionType>
            <ActionDetail>
              <ConfigurationParameters>
              	<ConfigurationParamter>
              		<ConfigurationName>host</ConfigurationName>
              	</ConfigurationParamter>
              	<ConfigurationParamter>
              		<ConfigurationName>port</ConfigurationName>
              	</ConfigurationParamter>
              	<ConfigurationParamter>
              		<ConfigurationName>name</ConfigurationName>
              	</ConfigurationParamter>
              	<ConfigurationParamter>
              		<ConfigurationName>user</ConfigurationName>
              	</ConfigurationParamter>
              </ConfigurationParameters>
              <Operation>/pino/driver4/scripts/PRODAUI.sh</Operation>
            </ActionDetail>
          </Action>
        </ConfigurationAction>
      </ConfigurationActions>
    </PlugSection>
    <SocketSection>
      <Description>PRODA Master</Description>
      <SocketID>PRODA_SERVER</SocketID>
      <PublishedParameters>
        <ConfigurationParameter>
          <ConfigurationName>host</ConfigurationName>
          <ConfigurationValue>nc125050.romelab.it.ibm.com</ConfigurationValue>
        </ConfigurationParameter>
        <ConfigurationParameter>
        	<ConfigurationName>port</ConfigurationName>
        	<ConfigurationValue>31117</ConfigurationValue>
                     </ConfigurationParameter>
        <ConfigurationParameter>
        	<ConfigurationName>name</ConfigurationName>
        	<ConfigurationValue>PRODA-istributed</ConfigurationValue>
</ConfigurationParameter>
        <ConfigurationParameter>
        	<ConfigurationName>user</ConfigurationName>
        	<ConfigurationValue>PRODA85mdm</ConfigurationValue>
</ConfigurationParameter>
      </PublishedParameters>
    </SocketSection>
</StereoCable>

StereoCable 컴포넌트

그림 1에서는 StereoCable 시스템의 컴포넌트를 보여 준다.


그림 1. StereoCable 컴포넌트
StereoCable 컴포넌트

StereoCable 시스템은 다음 항목으로 구성된다.

  • StereoCable 엔진: XML 형식으로 표시된 StereoCable 정보에 따라 지정된 역할을 처리하기 위해 VM에서 로드된 소프트웨어 엔티티이다. 이 엔진은 VM 이벤트를 처리할 수도 있다. 예를 들어, 적절한 구성 조치를 취하기 위해 새 VM의 전개 또는 기존 VM의 제거를 수행할 수 있다.
  • StereoCable 레지스트리: 사용 가능한 소켓을 추적하여 사전정의된 제한조건에 따라 요청 시 플러그에 제공하는 저장소이다. 일부 벤더 가상화 구현에 있는 VM은 이 유형의 정보를 직접 공개하고 공유할 수 있기 때문에 이 항목은 필수 요소는 아니다.
  • StereoCable 사용자 인터페이스/명령행 인터페이스: VM, 플러그 및 소켓 정보에 대해 작업하는 데 사용되고 이들의 상호 관계를 표시하는 소프트웨어 엔티티이다. UI는 StereoCable 레지스트리와 직접 VM에 연결되는 정보에 액세스할 수 있다.

(이 기사에서 제공하는 StereoCable 구현에는 VMware 지원(특히 VMware ESX 3.5 및 vSphere 4)이 포함된다. 활성화 엔진은 VMware VI SDK API를 사용하여 연결되며 StereoCable 레지스트리는 VMware VirtualCenter이다. 지원되는 게스트 운영 체제는 SLES10이다.)

다음으로 StereoCable이 조치를 처리하는 방법에 대해 살펴본다.


StereoCable 처리

StereoCable 사용 시 만나게 되는 두 가지 유형의 프로세스인 엔진 시작 프로세스와 StereoCable 아티팩트가 기존의 VM 연결 발견 및 재구성 프로세스와 비교하여 가지는 자동화 장점인 StereoCable의 동적 처리에 대해 살펴보자. 우리는 이 섹션에 대해서는 프로세스에 대해 설명하는 데 필요한 일련의 단계 및 순서도를 제공하는 것이 더 명확하고 간결하다고 생각했다.

StereoCable 시작 및 동적 처리의 주요 단계

엔진 시작 프로세스는 다음 단계를 통해 진행된다.

  1. StereoCable 엔진이 레지스트리에 연결되어 역할 및 StereoCable을 검색한다. 예를 들어, 컴퓨터 및 기타 디바이스가 사전 구성 없이 LAN에서 서비스를 찾을 수 있도록 하는 SLP(Service Discovery Protocol)와 같이 엔진에서 사용하는 프로토콜이 허용하는 경우에는 이 단계에 레지스트리 자동 발견이 포함될 수 있다.
  2. VM이 속하는 환경과 VM 역할을 검색한다.
  3. VM과 관련된 StereoCable을 검색한다.
  4. StereoCable 엔진이 StereoCables.xml 파일에 포함된 StereoCable을 처리한다.
  5. 해당 VM에 대한 전체 StereoCable 기능을 사용 불가능으로 설정한다.
  6. 소켓 역할이 VM 역할 중 하나와 동일한 경우 StereoCables.xml에 있는 모든 소켓 역할에 대해 다음을 수행한다.
    1. 종속성이 OK인지 확인한다. OK가 아닌 경우에는 소켓을 작업 큐에 추가한다.
    2. XML 파일에 설명된 대로 소켓 속성을 검색한다.
    3. 소켓 속성을 공개한다.
    4. 소켓이 현재 활성 상태라는 정보를 공개한다.
    5. 공개된 소켓에 대한 이벤트를 전송한다.
    6. 소켓을 StereoCable 활성 테이블에 추가하고 소켓이 연결되는 대상에 대한 정보도 지정한다.
  7. 해당 VM에 대한 전체 StereoCable 기능을 사용 가능으로 설정한다.
  8. 플러그 역할이 VM 역할 중 하나와 동일한 경우 StereoCables.xml에 있는 모든 플러그 역할에 대해 다음을 수행한다.
    1. 종속성이 OK인지 확인한다. OK가 아닌 경우에는 플러그를 작업 큐에 추가한다.
    2. XML 파일에 설명된 관련 소켓 정보(역할 등)를 검색한다.
    3. 적절한 소켓을 제공하고 동일한 환경에 속하는 VM을 발견한다.
    4. 발견한 모든 VM에 대해 다음을 수행한다.
      1. XML 파일에 정의된 규칙에 따라 선택할 VM을 결정한다(복수의 VM이 발견된 경우).
      2. 소켓 상태가 활성인 경우 공개된 소켓 속성을 검색한다.
      3. 구성 조치를 호출하여 검색된 정보를 매개변수로 전달한다.
      4. 플러그가 이제 활성 상태이며 소켓이 연결되는 대상에 대해 설명한다는 정보를 공개한다.
      5. 공개된 플러그에 대한 이벤트를 전송한다.
      6. 플러그를 StereoCable 활성 테이블에 추가하고 소켓이 연결되는 대상에 대한 정보를 지정한다.
    5. 사용 가능한 VM이 없거나 VM이 사용 가능하지만 소켓이 활성 상태가 아닌 경우 처리를 위해 StereoCable을 작업 큐에 추가하여 필요한 테스트 환경과 역할을 지정한다.

다음 단계(이전 단계가 끝난 위치에서 시작)에서는 StereoCable 동적 처리의 작동 방식에 대해 설명한다.

  1. 특정 역할을 가진 VM을 위해 VM 관련 이벤트(VM 전개, VM 해제)와 StereoCable 이벤트(소켓 작성됨, 소켓 제거됨, 소켓 업데이트됨)를 주기적으로 수집한다.
  2. 작업 큐에 있는 모든 플러그 역할에 대해 다음을 수행한다.
    1. 새 VM이 발견되어 활성 요청 소켓을 공개하는 경우
      1. 소켓 상태가 활성인 경우 공개된 소켓 속성을 검색한다.
      2. 검색된 정보에서 구성 조치를 호출하여 매개변수로 전달한다.
      3. 플러그가 이제 활성 상태이며 소켓이 연결되는 대상에 대해 설명하는 정보도 공개한다.
      4. StereoCable 작업 큐에서 플러그를 제거한다.
      5. 플러그를 StereoCable 활성 테이블에 추가하고 소켓이 연결되는 대상에 대한 정보도 지정한다.
      6. 공개된 플러그에 대한 이벤트를 전송한다.
    2. VM이 데이터 센터에서 제거되고 StereoCable 활성 테이블에 저장된 플러그에서 현재 사용하는 소켓을 공개하는 경우 다음을 수행한다.
      1. 소켓과 관련된 정보를 매개변수로 전달하여 구성 제거 조치를 호출한다.
      2. StereoCable 활성 테이블에서 플러그를 제거한다.
      3. 플러그를 StereoCable 작업 큐에 추가한다.
      4. 플러그가 이제 비활성 상태이며 연결이 끊겼다는 정보를 공개한다.
      5. 공개되지 않은 플러그에 대한 이벤트를 전송한다.

이러한 단계는 다음과 같은 순서도에 설명되어 있다.


StereoCable이 시작 및 동적 처리를 수행하는 방법
StereoCable이 시작 및 동적 처리를 수행하는 방법

(이 순서도의 확대 이미지 보기)

UI와 CLI는 데이터 센터의 VM 간 StereoCable 연결을 표시하고 설정된 연결에 대한 자세한 정보와 관련 플러그 및 소켓에 대한 세부사항도 제공한다.

StereoCable 동적 처리 정보

StereoCable 연결은 일단 설정되고 나면 이벤트를 처리하는 엔진의 기능으로 인해 매우 동적인 특성을 가진다.

  • 이 엔진은 연결을 활성화하거나 제거하거나 다시 활성화하기 위해 이벤트(예: 소켓 공개됨 또는 제거됨)를 처리할 수 있다.
  • 또한 엔진은 소켓이 공개, 업데이트 또는 제거될 때 사용자에게 변경사항을 알리기 위해 이벤트를 생성한다.

그림 2에서는 엔진이 이벤트를 처리하는 방법을 보여 준다.


그림 2. 이벤트 처리하기
이벤트 처리하기

StereoCable 연결 작성하기

이 섹션에서는 서로 다른 가상 시스템에 설치된 두 제품(앞의 제품은 에이전트 역할을 하고 뒤의 제품은 서버 역할을 함) 사이의 StereoCable 연결을 작성, 전개, 설정 및 확인하는 데 필요한 단계에 대해 설명한다. 이는 클라이언트-서버 연결의 한 가지 예에 불과하고 StereoCable은 복잡한 통합 시나리오에서 서버 간 연결을 설정하는 데도 사용할 수 있다.

StereoCable 연결 정의하기

StereoCable 연결은 플러그와 소켓이라는 두 개의 부분으로 구성되며 XML 형식으로 지정된다. 목록 2에서는 StereoCable 연결 정의를 보여 준다.


목록 2. XML로 된 StereoCable 연결 정의

<tns:StereoCablesxmlns:tns="http://ibm.com/stereocables"            
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://ibm.com/stereocables StereoCables.xsd ">
    <StereoCable>
      <StereoCableID>AGENT-SERVER</StereoCableID>
      <Description>Agent Server Connection</Description>
      <PlugSection>
        <Description>Agent Plug</Description>
        <PlugID>AGENT</PlugID>
        <ConfigurationActions>
          <ConfigurationAction>
            <Description>Agent configuration</Description>
           <ID>ConfigurationActionID1</ID>
          <Trigger>Deployment</Trigger>
          <Action>
            <ActionType>script</ActionType>
            <ActionDetail>
              <ConfigurationParameters>
                <ConfigurationParameter>
                  <ConfigurationName>hostname</ConfigurationName>
                </ConfigurationParameter>
                <ConfigurationParameter>
                  <ConfigurationName>port</ConfigurationName>
                </ConfigurationParameter>
              </ConfigurationParameters>
              <Operations>
                <Operation>agent_config.sh</Operation>
                <OS>Linux</OS>
              </Operations>
            </ActionDetail>
         </Action>
       </ConfigurationAction>
      </ConfigurationActions>
    </PlugSection>
     <SocketSection>
       <Description>Server Socket</Description>
       <SocketID>SERVER</SocketID>
       <PublishedParameters>
         <ConfigurationParameter>
           <ConfigurationName>hostname</ConfigurationName>
           <ConfigurationType>ActionBased</ConfigurationType>
           <Action>
             <ActionType>script</ActionType>
             <ActionDetail>
               <ConfigurationParameters>
                 <ConfigurationParameter>
                   <ConfigurationName>hostname</ConfigurationName>
                   <ConfigurationValue>hostname</ConfigurationValue>
                   <ConfigurationType>UserDefined</ConfigurationType>
                 </ConfigurationParameter>
               </ConfigurationParameters>
               <Operations>
                 <Operation>getNetworkConf.sh</Operation>
                 <OS>Linux</OS>
               </Operations>
               <Operations>
                 <Operation>getNetworkConf.sh</Operation>
                 <OS>AIX</OS>
                </Operations>
             </ActionDetail>
           </Action>
        </ConfigurationParameter>
        <ConfigurationParameter>
          <ConfigurationName>port</ConfigurationName>
         <ConfigurationValue>2000</ConfigurationValue>
        </ConfigurationParameter>
      </PublishedParameters>
    </SocketSection>
  </StereoCable>
</tns:StereoCables>

이 예제에서는 플러그가 에이전트이고 서버가 소켓이다.

PlugSection은 서버/소켓에 연결하기 위해 에이전트/플러그에서 실행하는 조치를 지정한다. 예제에서는 소켓에서 공개하는 호스트 이름 및 포트를 입력으로 간주하여 전개 시에 agent_config.sh라는 스크립트가 실행된다.

SocketSection은 소켓에서 공개하는 정보(특히 에이전트/플러그에 필요한 호스트 이름 및 포트)에 대해 설명한다. 호스트 이름은 포트가 XML 파일에 정적으로 정의되어 있는 동안 getNetworkConf.sh 스크립트를 실행하여 동적으로 검색된다.

StereoCable 정의가 포함된 StereoCables.xml 파일은 에이전트 시스템과 서버 시스템 둘 다에 전개된다.

StereoCable 엔진 전개하기

엔진을 전개하려면 StereoCable 엔진 파일을 다운로드하여 에이전트 시스템 디렉토리와 서버 시스템 디렉토리 둘 다에 압축 해제해야 한다. 그림 3과 같이 진행된다.


그림 3. 엔진 전개하기
엔진 전개하기

이 예제에서는 엔진이 Java 디렉토리 아래의 Java™ 런타임(이 경우에는 Java 2 Technology Edition, 버전 5.0, 64비트 Runtime Environment for Linux® on an AMD64)을 사용하도록 구성된다. 다른 아키텍처를 가진 경우에는 conf/environment.properties 파일에서 경로를 지정한다. 이 엔진은 Java 2 Technology Edition, 버전 5.0 64비트 Runtime Environment for Linux on AMD64 아키텍처를 사용하여 테스트되었다.

StereoCable 전개하기

다음으로 StereoCables.xml 파일을 데이터 디렉토리에 복사한다(그림 4).


그림 4. StereoCable 전개하기
StereoCable 전개하기

역할 정의하기

conf/stereocables.properties 파일에서 각 시스템의 역할을 지정한다.


그림 5. 역할 정의하기
역할 정의하기

서버 시스템에서 소켓 키를 편집하여 sockets=SERVER를 반영한다. 에이전트 시스템에서 플러그 키를 편집하여 plugs=AGENT를 반영한다.

환경 정의하기

에이전트 시스템과 서버 시스템에서 동일한 환경을 지정한다(environment=TEST).

엔진 시작

엔진을 시작하려면 엔진을 실행하기 전에 일련의 엔진 등록을 수행한다.

서버 시스템을 등록하려면 다음을 수행한다.

$./vEngine.sh -reg
CTJES0003I Loading configuration.
CTJES0004I The configuration has been successfully loaded.
CTJES0001I Executing the operation: Registering the engine.
CTJES0002I Operation successfully executed: Registering the engine.

서버 시스템을 실행하려면 다음을 수행한다.

$./vEngine.sh -run

CTJES0003I Loading configuration.
CTJES0004I The configuration has been successfully loaded.
CTJES0001I Executing the operation: Run the engine.
CTJES0001I Executing the operation: Cable processing.
CTJES0005I Processing socket: SERVER.
CTJES0011I Publishing information.
CTJES0013I Sending event: Socket SERVER published.
CTJES0019I Processing event's type: STEREOCABLES_SOCKET_PUBLISHED.SERVER.
CTJES0020I Event processed.
CTJES0006I Socket SERVER successfully processed.
Socket processed:
  SERVER: Success
Plug processed:

CTJES0002I Operation successfully executed: Cable processing.

에이전트 엔진을 등록하려면 다음을 수행한다.

$./vEngine.sh -reg
CTJES0003I Loading configuration.
CTJES0004I The configuration has been successfully loaded.
CTJES0001I Executing the operation: Registering the engine.
CTJES0002I Operation successfully executed: Registering the engine.

에이전트 엔진을 실행하려면 다음을 수행한다.

$$./vEngine.sh -run
CTJES0003I Loading configuration.
CTJES0004I The configuration has been successfully loaded.
CTJES0001I Executing the operation: Run the engine.
CTJES0001I Executing the operation: Cable processing.
CTJES0005I Processing plug: AGENT.
CTJES0011I Publishing information.
CTJES0013I Sending event: plug AGENT published.
CTJES0019I Processing event's type: STEREOCABLES_PLUG_PUBLISHED.AGENT.
CTJES0020I Event processed.
CTJES0006I Plug AGENT successfully processed.
Socket processed:
  
Plug processed:
   AGENT: Success

CTJES0002I Operation successfully executed: Cable processing.

연결 확인하기

$script/Cli.sh -list 명령을 실행하여 환경에서 사용 가능한 StereoCable 연결과 공개된 정보를 나열할 수 있다.

CTJES0003I Loading configuration.
CTJES0004I The configuration has been successfully loaded.
CTJES0001I Executing the operation: Discovery machines.
CTJES0002I Operation successfully executed: Discovery machines.

-------------------------------------------------------------------
srv.ivm.com
-------------------------------------------------------------------
guestInfo.stereocables.env = TEST
guestInfo.stereocables.status = Enabled
guestInfo.stereocables.sockets = SERVER

guestInfo.stereocables.socket.SERVER.status=Active
guestInfo.stereocables.socket.SERVER.hostname=srv.ivm.com
guestInfo.stereocables.socket.SERVER.port=2000

guestInfo.stereocables.plugs =

-------------------------------------------------------------------
-------------------------------------------------------------------
agt.ivm.com
-------------------------------------------------------------------
guestInfo.stereocables.env = TEST
guestInfo.stereocables.status = Enabled
guestInfo.stereocables.sockets =

guestInfo.stereocables.plugs = AGENT
guestInfo.stereocables.plug.AGENT.status=Active
guestInfo.stereocables.plug.AGENT.connected=srv.ivm.com:SERVER

-------------------------------------------------------------------

여기서 알 수 있듯이 TEST 환경에서는 시스템 agt.ivm.com이 srv.ivm.com에 플러그인된다.


결론

다음 단계

자동 VM 발견, 구성 및 연결에 대해 더 많은 내용을 다루기 위해 우리는 StereoCable Zip 파일을 다운로드하여 이 기사에 언급된 다른 두 편의 developerWorks 기사를 읽어보도록 제안한다.

여기서는 가상 데이터 센터의 가상 시스템이 사전정의된 연결 정책에 따라 서로를 발견하여 자동으로 연결할 수 있는 방법인 새로운 개념에 대해 설명했고 이러한 시스템을 사용하기 위해 사용자가 사용할 수 있는 프로젝트에 대해 소개했다.

가상 어플라이언스는 애플리케이션 빌더가 애플리케이션을 위해 소프트웨어 스택을 최적화하고 턴키 소프트웨어 서비스를 일반 사용자에게 전달할 수 있도록 하기 때문에 소프트웨어 배포 방법을 변경할 수 있다. 클라우드 애플리케이션에서 이러한 수준의 서비스를 달성하는 데 필요한 한 가지 주요 단계는 가상 시스템 연결을 자동화하여 향상시키는 것이다.



다운로드 하십시오

설명이름크기다운로드 방식
Sample code for this articlestereocable.zip10KBHTTP

다운로드 방식에 대한 정보


참고자료

교육

토론

필자소개

Giuseppe Ciano joined IBM in 1997 as a software engineer in the Rome SWG Tivoli Lab. He as been working for 11 years as developer and designer of different products in the Tivoli portfolio. He is currently chief designer of Tivoli Cloud Solutions like IBM Service Delivery Manager product. He is also the designer of StereoCable.

Maurizio Simeoni graduated in telecomunications engineering at the University of Roma "La Sapienza". He is a staff engineer at IBM Rome Tivoli. He currently works on IBM Service Delivery Manager. He has over 10 years of experience in developing and supporting software applications. He contributed to the design and development of StereoCable.

Alessio D'Amico joined IBM in 1999 as a software engineer in the Rome SWG Lab. During his career, he gained experience in the full project life cycle from project management, business analysis, design and build through implementation. Currently he is responsible for designing and implementing the service management and cloud computing solution based on the Tivoli products portfolio. His main areas of expertise cover system management, provisioning, service management, virtualization, and cloud computing.

Antonio Perrone graduated cum laude in information sciences in 1989 at the University of Bari, Italy. He joined IBM in 1990, where he has held several positions in development and support. He has been with the IBM Tivoli division since 1996, where he is currently an architect in the network performance management area. His interests include systems management, performance and availability, knowledge representation, data integration, transaction and process modeling, and software development.

Luigi Pichetti is the Tivoli architect for CloudBurst and for IBM Service Delivery Manager, solutions that offer services and benefit of virtual appliance initiatives. He leads the image-based installation initiative which aims to leverage virtualization technologies like the Activation Engine and StereoCable as alternate, efficient means to ship products. Luigi has 19 years of experience in developing and designing enterprise applications in the system-management arena; prior to this, he was lead on the architecture team for Tivoli Configuration Manager and Common Inventory Technology componentry.

Francesco Dauri spent a year as DB2 consultant in the Information Management group with a focus on DB2 High Availability, data tuning, and optimization. For four years he worked as software engineer on the Tivoli Workload Scheduler product in the verification team. His skills include the Test discipline (CVT, IVT; SVT, etc.), agile methodology, usability test discipline, and user interface design focusing on the Rich Internet Application using Flex technology.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=, 리눅스, 자바
ArticleID=628346
ArticleTitle=가상 시스템 발견 및 자체 연결 자동화하기
publish-date=11012010
author1-email=pino.ciano@it.ibm.com
author1-email-cc=
author2-email=maurizio.simeoni@it.ibm.com
author2-email-cc=
author3-email=alessio.damico@it.ibm.com
author3-email-cc=
author4-email=antonio.perrone@it.ibm.com
author4-email-cc=
author5-email=luigi.pichetti@it.ibm.com
author5-email-cc=
author6-email=francesco.dauri@it.ibm.com
author6-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.