Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

시다바리

[Documents] Linux on POWER: 개발자를 위한 개요서 본문

My Documents

[Documents] Linux on POWER: 개발자를 위한 개요서

호서아빠 2008. 9. 17. 11:33

Linux on POWER: 개발자를 위한 개요서


Calvin Sze | 리눅스 컨설턴트, IBM
Chakarat Skawratananond | Linux on POWER 기술 컨설턴트, IBM
Brent Baude | Linux on POWER 기술 컨설턴트, IBM


리눅스는 최대 가용성과 유연성은 물론, 오픈 표준을 비즈니스 솔루션에 가져왔다고 할 수 있다. POWER 프로세서 기반 서버 제품군의 입증된 퍼포먼스와 신뢰성을 추가하면, 애플리케이션은 Linux on POWER의 결합된 이점들을 거둘 수 있을 것이다. Linux on POWER 하드웨어와 소프트웨어 환경을 소개하고 애플리케이션 개발자들에게 필요한 정보를 제공한다.


머리말

다음은 이 글에서 다룰 주제들이다.

  • POWER5™와 POWER5+™ 아키텍쳐의 장점
  • Linux on POWER5 프로세서 기반 서버(최근에 발표된 IBM System p5™ 서버 제품군, PowerPC?? 970- 및 970FX-based eServer™ BladeCenter™ JS20 서버 포함)
  • IBM?? Virtualization Engine™ 기술 및 리눅스 사용자들이 이를 활용하는 방법
  • 최신 버전의 IBM 지원 리눅스 배포판: SUSE LINUX Enterprise Server 9(SLES9)과 Red Hat Enterprise Linux Advanced Server 4(RHEL AS4)
  • 각 플랫폼에 사용할 수 있는 컴파일러와 소프트웨어

    Linux on POWER 개요

    IBM eServer OpenPower, IBM eServer p5, IBM eServer i5, IBM System p5 Express 서버는 최신 POWER5와 POWER5+ 아키텍쳐에 기반하고 있다.

    POWER5 프로세서 기반 서버들은 64-way way Symmetric multi-processor(SMP)까지 확장되고 두 개의 64-bit 프로세서 코어를 갖고 있다.

    POWER5+ 프로세서는 90 나노미터(nanometer) 기술을 사용한다. 이로서 크기에서는 37%나 감소되었고 POWER5보다 주파수도 15% 높아졌고 버스 비율도 높아졌다.
    POWER5+ 프로세서 기반 서버는 모델에 근거하여 다음의 프로세서/메모리 패키징 모듈 중 하나를 포함하고 있다.

    Dual-core: 두 개의 64-bit 프로세서 코어
    Quad-core: 네 개의 64-bit 프로세서 코어
    Multi-chip: 여덟 개의 64-bit 프로세서 코어
    그림 1 POWER5+ 프로세서 기반 서버에서 사용할 수 있는 세 가지 패키징 옵션들이다.


    그림 1. 하드웨어 관리 콘솔(HMC)

    POWER5와 POWER5+ 프로세서의 장점이 많다.

    Simultaneous multi-threading(SMT)
    POWER5 코어에서 두 개의 다른 명령어 시퀀스를 동시에 실행할 수 있다.

    가상화 엔진
    서버, 스토리지, 네트워킹 리소스들을 하나의 가상 환경에 모아 멀티 애플리케이션 환경과 운영 체계들 전반에 걸쳐 사용되도록 최적화 한다.

    메인프레임 중심의 신뢰성(R), 가용성(A), 서비스(S) (RAS) 기술
    - 서비스 프로세서(Service processors): 서비스 프로세서는 부팅하는 동안 서베일런스(감시)와 오류 기록 기능들을 구현하는 개별 마이크로프로세서이다. 서비스 프로세서의 서베일런스 모니터는 부트 펌웨어에서 "하트비트(heartbeats)"를 자동으로 검사한다. 하트비트가 디폴트 기간 동안 탐지되지 않으면 서비스 프로세서는 시스템 파워를 사이클링하고 시스템 부팅이 성공할 때 까지 재부팅을 시도한다.

    - 서비스 프로세서 페일오버(Service processor failover): 서비스 프로세서 페일오버 기능은 다음과 같은 eServer p5 모델에서 사용할 수 있다. p5 570, p5 590, p5 595에서 사용할 수 있으며, 페일오버(Failover) 지원이 필요하다.

    - First Failure Data Capture(FFDC): FFDC는 소프트웨어에 의해 사용되어 지속적인 오류와 중요한 소프트웨어 사고를 기록한다. FFDC는 오류들을 제휴시키는 방식을 통해 소프트웨어가 오류의 결과를 그 원인과 연결하여 오류의 근본적인 원인을 빠르게 찾을 수 있도록 한다. IBM Chipkill™ 메모리: Chipkill 메모리를 사용하여 컴퓨터 마더보드와 펌웨어가 컴퓨터의 메모리와 관련된 문제들을 탐지하고 메모리의 문제 요소들을 선택적으로 작동정지 시킨다.

    - 에러 검사와 정정(ECC) 메모리: 이 메모리 카드는 싱글 에러(single-error) 정정 및 더블 에러(double-error) 탐지 ECC 회로를 갖고 있어 싱글 비트 메모리 오류를 정정 할 수 있다. 더블 비트 탐지를 통해서 데이터 무결성을 관리할 수 있다. ECC 회로의 정정 범위를 넘어선 다중 에러들을 탐지 및 보고한다. 이 메모리 칩은 특정 메모리 모듈의 오류가 ECC 내의 싱글 비트에만 영향을 미치게 하고, 완전한 칩 오류(Chipkill 복구)가 있는 상태에서도 에러 수정과 지속적인 실행이 가능하도록 한다.

    - Dynamic Processor Deallocation and logical partition(LPAR) 에러 단속: 프로세서가 복구 가능한 에러의 한계에 도달하면 이벤트가 기록된다. 에러가 기록되는 것 외에도, OS가 계속 실행하는 동안에 프로세서는 시스템에서 표시 및 설정이 해제된다. 이 기능을 통해 예상치 못한 시스템 중지까지 방지하면서 프로세서는 나중에 복구된다.

    - 동적 펌웨어 관리: 동적 펌웨어 관리로 시스템에 영향을 주지 않고 펌웨어를 픽스(fix)할 수 있다.

    - Hot I/O drawer: Hot I/O drawer로는 시스템에 영향을 주지 않고 원격 I/O drawer를 설치할 수 있다.

    RAS에 대한 보다 자세한 정보는 IBM eServer pSeries 690 RAS 웹 페이지를 참조하기 바란다.(하단 참고자료 참조).


    IBM eServer BladeCenter JS20은 64-bit PowerPC 970과 970FX 프로세서에 기반하고 있다. 기능은 VMX(Multimedia extension) 실행에만 적용된다. VMX는 SIMD(Single Instruction Multiple Data) 구현들 중 하나이다. 일반적으로 하나의 명령어로는 하나의 태스크를 수행한다. SIMD 명령어 역시 일반적으로 하나의 태스크를 수행하지만 다중의 데이터도 한번에 처리할 수 있다. 애플리케이션(특히 멀티미디어와 그래픽 프로그램)이 이 기능을 활용한다면 퍼포먼스가 상당히 높아질 것이다.


    IBM System p5

    IBM System p5 Express 서버군은 중소기업과 대기업의 부서 및 지사를 위해 설계된 저렴한 고성능 엔트리 레벨(entry-level) 서버이다. 혁신적인 IBM 기술력으로 유닉스와 리눅스 애플리케이션들이 하나의 System p5 Express 서버에서도 실행될 수 있게 되었다. 이들 서버들은 POWER5와 POWER5+ 기술이고, 작은 폼 팩터를 갖고 있으며 InfiniBand 기술과 PCI-X 266 어댑터가 제공된다.

    표 1에 IBM System p5 Express 모델의 특징을 요약했다

    표 1. IBM System p5 모델

      p5 505 Express p5 520 Express p5 550 Express & 550Q Express
    프로세서 1.5 또는 1.65 GHz POWER5 프로세서 1.9 GHz POWER5+ 프로세서 1.5 또는 1.9 GHz POWER5+ 프로세서
    프로세서 구성 1- way, 2-way 2-way 2- way, 4-way Dual-Core Module, 4-way, 8-way Quad-Core Module
    메모리 최대 32 GB 최대 32 GB 최대 64 GB
    랙-마운트 또는 데스크사이드 랙-마운트(1U) 랙-마운트(4U) 또는 데스크사이드 랙-마운트(4U) 또는 데스크사이드
    내부 스토리지 최대 600 GB 최대 16.8 TB 최대 31.2 TB
    통합 이더넷 포트 두 개의 Ethernet 10/100/1000 Mbps 포트 두 개의 통합 1 기가비트(Gigabit) 이더넷 포트 두 개의 이더넷 10/100/1000 Mbps 포트
    PCI-X 슬롯 3 6 5


    모든 IBM System p5 Express 서버는 SUSE LINUX Enterprise Server(SLES), Version 9, Service Pack 2, Red Hat Enterprise Linux Advance Server(RHEL AS), Version 4, Update 1를 구동한다.


    IBM eServer OpenPower

    현재 사용할 수 있는 두 개의 eServer OpenPower 모델이 있다. 바로 OpenPower 710과 OpenPower 720이다. 이 서버들은 장기간 리눅스를 사용하려는 사용자들과 엔터프라이즈급의 신뢰성과 가상화를 갖춘 가격/퍼포먼스를 원하는 사람들을 주 타겟으로 한다. 리눅스는 eServer OpenPower 시스템에서 지원되는 유일한 운영 체계이다.

    표 2에는 710 모델과 720 모델의 특징을 요약해 놓았다.

    표 2. IBM eServer OpenPower 710과 720

      OpenPower 710 OpenPower 720
    프로세서 1.65 GHz POWER5 프로세서 1.50 GHz 1-way, 1.65 GHz 2-way, 4-way POWER5 프로세서
    프로세서 구성 1-way, 2-way 1-way, 2-way, 4-way
    메모리 최대 32 GB 최대 64 GB
    랙-마운트 또는 데스크사이드 랙-마운트 랙-마운트 또는 데스크사이드
    내부 스토리지 최대 570 GB 최대 1.1 TB
    빌트인 이더넷 포트 듀얼 이더넷 10/100/1000 Mbps 포트 듀얼 이더넷 10/100/1000 Mbps 포트
    PCI-X 슬롯 3 5


    IBM eServer p5

    IBM eServer p5 서버는 엔터프라이즈급 UNIX?? 사용자와 확장성 및 신뢰성을 갖춘 리눅스 및 AIX 서버를 찾는 사람들을 대상으로 한다. IBM i5/OS™ 지원은 eServer p5 제품군의 일부 모델에서 가능하다.

    표 3에 IBM eServer p5 520, IBM eServer p5 550, IBM eServer p5 570, IBM eServer p5 575의 특징들을 요약했다.

      p5 520 p5 550 p5 570 p5 575 Cluster Node
    프로세서 1.65 GHz POWER5 프로세서 1.65 GHz POWER5 프로세서 1.65 GHz 또는 1.90 GHz POWER5 프로세서 1.5 GHz 또는 1.90 GHz POWER5+ 프로세서
    프로세서 구성 1-way, 2-way 2-way, 4-way 2-way, 4-way, 8-way, 12-way, 16-way 8-way, 16-way SMP
    메모리 최대 32 GB 최대 32 GB 2GB ~ 512 GB 최대 256 GB
    랙-마운트 또는 데스크사이드 랙-마운트 또는 데스크사이드 랙-마운트 또는 데스크사이드 랙-마운트 24 인치 프레임 패킹
    내부 스토리지 최대 1.1 TB 최대 1.1 TB 구현 블록 당 최대 880 GB용 6개의 무정지(hot-swappable) 드라이브 베이주1 (3.5 TB(4 모듈); 16-way) 최대 2.9 TB용 두 개의 표준 무정지 베이
    통합 이더넷 포트 두 개의 이더넷 10/100/1000 Mbps 포트 두 개의 이더넷 10/100/1000 Mbps 포트 구현 블록 당 두 개의 통합 1 기가비트 이더넷 포트 네 개의 10/100/1000 Mbps 이더넷 포트
    PCI-X 슬롯 6 5 구현 블록 당 6개 4

    주1 - 한 개의 구현 블록 또는 모듈은 최대 4-way를 호스팅하기 때문에 16-way 머신은 네 개의 구현 블록 또는 모듈을 갖고 있다는 의미이다.
    IBM eServer p5 510, IBM eServer p5 595, IBM eServer p5 595 모델 역시 사용할 수 있다. 자세한 정보는 IBM eServer p5 & pSeries 홈페이지를 참조하기 바란다.(하단 참고자료 참조)


    IBM eServer p5

    IBM eServer i5는 차세대 IBM eServer iSeries 서버이다. eServer i5 서버는 IBM i5/OS, IBM AIX 5L, Microsoft?? Windows?? 리눅스 솔루션을 위한 온 디맨드 컴퓨팅 환경을 제공한다. 이러한 통합 서버들은 복잡성을 줄이고 서버 통합을 통해 생산성을 높이기 위해 설계되었다. eServer i5 모델에는 eServer i5 520, eServer i5 550, eServer i5 570이 포함된다. 구성면에서는 pSeries와 비슷하지만 차이점도 있다. eServer p5와 eServer i5간 주요한 차이점은 서비스 파티션을 정의하는데 있다. 간단히 말해서, 서비스 파티션은 POWER 프로세서 기반 펌웨어인 POWER Hypervisor를 업데이트 할 수 있는 파티션이다. 이것은 IBM 가상화 엔진의 핵심이다. eServer i5 리눅스 파티션은 서비스 파티션으로 설계될 수 없지만 eServer p5 리눅스 파티션은 서비스 파티션으로서 설계될 수 있다. eServer i5에 대한 자세한 정보는 Linux on iSeries 웹 사이트를 참조하기 바란다.(하단 참고자료 참조)


    IBM eServer BladeCenter JS20

    eServer BladeCenter JS20은 큰 풋프린트를 사용자에게 제공한다. 최대 84개의 2-way 블레이드가 42U 랙에 설치될 수 있다. 이로서 공간과 냉각의 필요성이 줄어든다. 모듈식의 디자인이기 때문에 안전하고 비용 효율적으로 확장할 수 있다.

    표 4는 eServer BladeCenter JS20의 특징을 요약한 것이다.

    표 4. IBM eServer BladeCenter JS20

    eServer BladeCenter JS20
    프로세서 1.6GHz, 2.2 GHz PowerPC 970, 970FX 프로세서
    프로세서 구성 1-way, 2-way
    메모리 최대 4 GB
    랙-마운트 또는 데스크사이드 랙-마운트
    내부 스토리지 최대 60 GB
    통합 이더넷 포트 두 개의 Ethernet Gigabit Ethernet 포트


    eServer BladeCenter JS20에 대한 자세한 정보는 IBM eServer Bladecenter JS20 홈페이지를 참조하기 바란다.(하단 참고자료 참조)

    표 5는 POWER 프로세서 기반 서버에서 지원되는 OS를 정리한 것이다. 이 표는 각 시리즈의 OS 지원에 대한 일반적인 내용을 표시한 것이다. 어떤 OS는 특정 모듈에서 지원되지 않을 수도 있고 옵션이 필요할 수도 있다. 자세한 내용은 IBM eServer 웹 페이지를 참조하기 바란다.(하단 참고자료 참조)

    표 5. 각 시리즈에서 지원되는 OS
      SLES 8(Linux) SLES 9(Linux) RHEL AS 4(Linux) AIX 5L (5.2 & 5.3) i5/OS Windows
    System p5 Express No Yes Yes Yes No No
    eServer OpenPower No Yes Yes No No No
    eServer p5 No Yes Yes Yes Yes No
    eServer i5 No Yes Yes Yes No Yes
    eServer BladeCenter Yes Yes Yes Yes Yes No


    가상화(Virtualization)

    IBM 가상화 엔진은 이종의 분산 환경에서 리소스 풀을 모으고 통합된 논리적 뷰를 제공하는 포괄적인 시스템 기술 및 서비스이다. 가상화 엔진 시스템 기술은 선택적으로 사용할 수 있으며(가상화가 통합 기능으로 되어 있는 eServer i5 servers 제외), 논리적 파티셔닝, 마이크로 파티셔닝(Micro-partitioning), 동적 논리적 파티셔닝(Dynamic logical partitioning), 가상 스토리지, 가상 이더넷(Virtual Ethernet) 등이 포함된다. 가상화는 eServer BladeCenter JS20에서는 불가능 하다.

    Linux on POWER 에서 현재 지원되는 가상화 엔진 기술에는 다음과 같은 것들이 포함된다.


    파티션 매니저(Partition managers)

    하드웨어 관리 콘솔(HMC)과 통합 가상화 매니저(IVM)를 통해 파티션 관리자는 서버상의 파티션의 설정과 작동을 관리할 수 있다. 각각은 IBM 가상화 환경의 중요한 부분으로 작용한다. HMC가 32-bit Intel?? 기반 데스크탑 PC와 DVD-RAM 드라이브로 구성되어있는 반면 IVM은 파티션 관리에 사용되는 웹 기반 인터페이스이다. IVM에는 Virtual I/O 서버(VIOS)가 함께 제공되며 System p5 p550Q Express 서버까지 엔트리 서버용으로 사용할 수 있다.

    HMC와 IVM이 수행할 수 있는 기능들이 몇 가지 있다.

  • 다중 파티션 환경의 생성 및 관리
  • 호스트 파티션의 전원 켜기 및 끄기
  • 각 파티션을 위한 가상 OS 세션 터미널 디스플레이
  • 각 파티션을 위해 가상의 작동자 패널 디스플레이
  • 하드웨어 조건에서 변경 사항 탐지, 보고, 저장
  • 핵심 서비스로서 올바른 서비스 전략을 결정하고 Service Agent Call-Home 기능을 실행

    그림 2는 세 개의 파티션들로 이루어진 서버에 물리적으로 연결된 HMC이다. HMC는 POWER 하이퍼바이저를 통해 이 파티션들을 관리한다.


    그림 2. 하드웨어 관리 콘솔(HMC)

    그림 3은 IVM이다. 가상 I/O 서버와 함께 설치되었다. IVM은 웹 인터페이스를 통해 파티션을 관리한다. 지원되는 서버에 가상 I/O 서버를 설치할 때, 그 서버에 HMC가 없다면 IVM은 자동으로 실행된다. IVM은 HMC와 공존할 수 없다.


    그림 3. 통합 가상화 매니저(IVM)

    IVM이 물리적 HMC 없이 LPAR과 가상화를 지원하지만 HMC 서비스 기능의 일부를 제공한다. 표 6은 HMC와 IVM의 비교표이다.

    표 6. HMC와 IVM의 비교
      HMC IVM
    관리 시스템의 전원 켜기/끄기 Yes No (AMSI가 대신함)
    시스템 당 VIO 서버 4 1
    시스템 당 가상 이더넷 4,094 4
    클라이언트 파티션 당 가상 이더넷 어댑터 65,534 2
    클라이언트 파티션 당 가상 SCSI 어댑터 65,534 1
    Dynamic LPAR Yes No
    클라이언트 파티션이 물리적 장치를 갖고있는지의 여부 Yes No
    Capacity on demand(CoD) Yes No
    동시 관리 지원 Yes No

    논리적 파티셔닝(LPAR)

    논리적 파티셔닝(Logical partitioning)으로 여러 OS들이 하나의 하드웨어 플랫폼에 동시에 상주할 수 있다. 시스템 리소스들이 구분되기 때문에 파티션들은 서로 인터페이싱 할 수 없다. 이 시스템에서 LPAR을 관리하려면 하드웨어 관리 콘솔(HMC)를 통해서 가능하다.


    마이크로-파티셔닝(Micro-partitioning)

    마이크로-파티셔닝(Micro-partitioning)으로 한 프로세서의 10분의 1을 차지하는 리눅스 파티션이 한 프로세서의 100분의 1만큼 작아질 수 있다


    동적 논리적 파티셔닝(Dynamic LPAR)

    동적 논리적 파티셔닝(Dynamic LPAR)으로 프로세서와 I/O 슬롯들이 2.6 커널을 실행하는 리눅스 파티션에서 재부팅 할 필요 없이 추가 및 제거될 수 있다. POWER Hypervisor 펌웨어에 의해 eServer OpenPower, eServer p5, eServer i5에서 구현된다. 하드웨어 리소스 관리, 파티셔닝, Capacity Upgrade on Demand(CUoD)을 제공한다. 메모리의 동적인 이동은 현재 지원되지 않는다. Dynamic LPAR은 가용 용량을 사용하거나 동적 매칭에 놀라운 유연성을 제공한다.


    공유 프로세서 풀

    공유 프로세서 풀은 다중의 논리적 파티션들 사이에서 공유될 수 있는 프로세싱 용량을 제공하는 물리적 프로세서 그룹이다. 이러한 공유 프로세서 기능으로 부분적인 프로세서를 논리적 파티션에 할당할 수 있다. 공유 프로세서를 사용하여 어떤 파티션에서든 최소한 0.10 프로세싱 단위가 설정될 수 있다. 지원 가능한 최대 논리적 파티션의 수는 서버 모델의 프로세서의 수에 따라 다르다. 시스템 한계는 254이다.

    그림 4. 공유 프로세서


    그림 4는 i5/OS 또는 AIX 5L을 구동하는 4-way 머신의 설치 방법을 그림으로 나타낸 것이다. 여기에는 세 개의 논리적 파티션도 있다. 두 번째 파티션이 금융 트랜잭션을 처리하는 트랜잭션 서버라고 가정해 보자. 이 트랜잭션 애플리케이션이 AIX 5L 또는 i5/OS와 인터랙팅하여 데이터베이스의 정보를 저장 및 불러올 수 있다. "Report"라고 표시된 파티션은 트랜잭션 서버의 자매 애플리케이션이고 금융 리포트를 만들어 낸다. 이 기업은 로드 밸런스를 위해 트랜잭션과 리포트 파티션을 분리했다. 트랜잭션 서버는 시간과 응답에 민감한 반면 리포트 생성은 피크 타임(peak time)이 아닌 때에 수행될 수 있기 때문이다. 마지막 파티션은 기업의 자체 개발 및 테스트 파티션이다. 이 파티션은 자사의 엔지니어들을 위한 개발 공간이다. 이 프로세서가 워크로드에 기반하여 네 개의 파티션들을 어떻게 구분하는지를 주목하라.

    공유 프로세싱 풀의 파티션들은 제한(capped) 또는 비제한(uncapped) 공유 모드를 취한다. 제한 파티션은 논리적 파티션이 할당된 프로세싱 용량을 절대로 초과해서는 안된다는 것을 의미한다. 사용되지 않는 프로세싱 리소스는 공유 프로세싱 풀에서 비제한 파티션에서만 사용된다.

    파티션의 프로파일을 정의할 때 파티션이 제한인지 비제한인지를 지정할 수 있다. 파티션을 정의하면서 프로세서 파워의 수와 최소/최대 프로세서 값을 설정할 수 있다.

    그림 5. 워크로드에 기반한 프로세서 파워의 동적 이동


    수요에 따라 프로세서를 동적으로 이동할 수 있다는 것이 얼마나 좋은 것인지를 그림을 보면 알 수 있다. 그림 2에서 보듯, 트랜잭션 서버에 한 개 반의 프로세서(최소)가 할당되었다. 또한 수요에 따라 두 번째 파티션의 반과 세 번째 프로세서의 전체를 소비할 수도 있다. 리포트가 피크 타임 외 시간에 실행되면 시스템이 더 많은 유휴 시간을 갖는 동안 리포트 파티션과 애플리케이션들은 최대 두 개의 가상 프로세서를 소비할 수 있지만 한 프로세서의 4분의 3 정도이다. 테스트 파티션에도 똑같이 적용된다. 엔지니어가 애플리케이션들을 컴파일 해야 한다고 가정해 보자. 유휴 프로세싱 파워가 있는 동안 컴파일이 수행된다면 테스트 파티션은 최대 세 개의 가상 프로세서를 소비할 수 있고 컴파일을 보다 빠르게 수행할 수 있다.

    POWER Hypervisor는 비제한 파티션에 의해 사용되지 않는 프로세싱 리소스들을 활용한다. 동적 LPAR과는 달리 이 기능은 2.4와 2.6 커널 모두에서 지원된다. 이 예제에서 프로세서 공유에 대한 인스턴스들은 유휴 시스템의 일부에 기반하기 때문에 다른 파티션들은 가용 리소스들을 사용할 수 있다. 하지만 다중 파티션들이 동시에 더 많은 프로세싱 파워를 필요로 할 때도 있다. 리포트 서버와 트랜잭션 서버 모두 워크로드 정점에 다다라서 더 많은 프로세서 파워가 필요할 경우를 생각해 보자. 트랜잭션 서버에서 적시에 응답을 받는 것이 중요하기 때문에 이 트랜잭션 서버가 리포트 파티션 전에 가상 프로세싱 파워를 받는 것을 선택하게 될 것이다. 이것은 프로세싱 파워의 가중치를 설정할 때 중요하다. 공유 프로세싱 풀에서 각 비제한 파티션에 설정할 수 있는 비제한 가중치는 0에서 255 범위에서 결정된다. 비제한 가중치를 설정함으로서 사용가능한 비사용 용량이 비제한 가중치 설정 값에 비례하여 논리적 파티션에 분산된다. 디폴트 비제한 가중치 값은 128이다.

    트랜잭션 서버와 리포트 서버 모두 피크(peak)에 다다를 경우 프로세서의 할당 방법을 결정하도록 가중치가 설정된다. 예를 들어, 그림 6은 트랜잭션 서버의 가중치가 두 개의 프로세서 단위로 설정되고 리포트 설정이 하나로 설정된 모습이다. 피크 시 사용할 수 있는 세 개의 프로세싱 단위에서 POWER Hypervisor가 두 개의 프로세서 단위를 트랜잭션 서버에 할당하고 하나는 리포트 서버에 할당한다는 것을 의미한다.

    그림 6. 가중치는 프로세서 할당을 결정하도록 설정된다.



    가상 스토리지

    스토리지와 I/O의 경우 리눅스는 다양한 실제 장치 및 가상 장치를 활용할 수 있다. 이러한 유연성 때문에 리눅스 파티션 설정은 매우 비용 효율적이다. 디스크의 경우 리눅스 논리적 파티션은 세 개의 다른 스토리지 옵션을 지원한다.

  • 파티션 전용의 SCSI 어댑터와 드라이브를 사용하는 내부 스토리지
  • 파티션 전용의 SAN 어댑터를 사용하는 외부 스토리지
  • 다른 파티션에서 가상 SCSI 어댑터와 스토리지를 사용하는 가상 스토리지

    가상 디스크

    가상 스토리지로 POWER5 프로세서 기반 시스템 내에서 다중 파티션들이 스토리지를 저장할 수 있다. 한 개의 파티션 즉 I/O 서버 파티션은 물리적 어댑터와 (내/외부)스토리지를 갖고 있다. 가상 어댑터로 다른 파타션들 즉 I/O 클라이언트 파티션들이 I/O 서버 파티션에서 스토리지를 사용할 수 있다. I/O 서버 파티션들은 AIX 5L, 리눅스(2.6 kernel), i5/OS 이다.

    디스크 드라이브에 대한 비용을 절약하는 것은 가상 디스크가 가진 유일한 장점은 아니다. 작은 머신에서 디스크와 컨트롤러를 추가하기는 어려운 일이고 확장 유닛도 구매해야 한다. 또한 가상 디스크도 호스팅 시스템에 의해 관리, 백업, 복제될 수 있다. 그림 7은 호스팅 파티션이 리눅스 파티션에 가상 디스크를 어떻게 제공하는지를 보여주고 있다.

    그림 7. 다른 리눅스 파티션에 가상 디스크를 제공하는 AIX 5L 또는 I5/OS 파티션



    CD-ROM, Tape, DVD-ROM

    AIX 5L V5.3, Linux(2.6 kernel), 또는 리눅스 파티션을 갖고있는 i5/OS가 갖고 있는 SCSI 장치들도 공유할 수 있다. 이것은 이전 섹션에서 설명했던 가상 디스크 기능과 비슷하게 작동된다. AIX 5L V5.3, Linux(2.6 kernel), i5/OS가 CD-ROM, 테이프 장치, DVD-ROM 드라이브를 갖고 있다면, 그리고 호스팅 파티션이 이 장치를 적극적으로 사용하지 않는다면 리눅스는 이들이 물리적으로 리눅스 파티션에 부착되어있는 것처럼 이 장치들을 사용할 수 있다.


    가상 이더넷(VLAN)

    Linux on POWER5 프로세서 기반 시스템들은 직접적으로 연결된 네트워크 인터페이스를 통해서나 또는 가상 이더넷 인터페이스를 통해서 TCP/IP 연결을 만든다. 가상 이더넷은 하나의 기가비트 이더넷 어댑터와 같은 작동을 한다. POWER5 프로세서 기반 서버의 파티션들은 가상 이더넷 통신 포트를 통해 TCP/IP를 사용하여 다른 것들과 통신한다.

    최대 4,094개의 가상 이더넷 랜(VLAN)을 정의할 수 있다. 각 파티션은 최대 65,534 개의 가상 이더넷 어댑터를 가상 스위치에 연결할 수 있다. 각 어댑터는 21개의 VLAN들에 연결될 수 있다. 가상 이더넷을 실행하고 설정할 때에는 특별한 하드웨어나 소프트웨어가 필요하지 않다. 파티션을 위해 특정 가상 이더넷을 실행한 후에 ethXX라는 이름이 붙은 네트워크 장치가 그 파티션에 만들어진다. 그렇게 되면 TCP/IP를 설정하여 다른 파티션들과 통신한다.

    "공유 프로세서 풀"의 예제 (상단 그림4 참조) 를 다시 생각해 보자. 시나리오에 따르면, 트랜잭션 서버는 정보를 저장 및 검색하기 위해 AIX 5L 또는 i5/OS 파티션에서 데이터베이스를 사용한다. 이것은 매우 전형적인 가상 이더넷의 사용법이다. 통신은 매우 빨리 이루어지고 부가적인 하드웨어도 필요없다. 그림 8은 두 개의 가상 이더넷 랜을 추가하는 예제이다.

    그림 8. VLAN을 통해 파티션들은 빠르고 효과적으로 다른 파티션들과 통신한다.


    이더넷은 물리적 네트워크와도 통신한다. 이를 위해서는 최소한 한 개의 파티션에 물리적 이더넷 어댑터와 다른 파티션에 연결되는 가상 어댑터를 갖추어야 한다.(그림 9) 두 개의 어댑터를 갖고 있는 파티션은 물리적 이더넷과 가상 이더넷 간 트래픽을 라우팅 한다.

    그림 9. 물리적 네트워크와 가상 네트워크 연결을 가진 파티션은 물리적 LAN으로 트래픽을 라우팅한다.


    파티션을 물리적 네트워크에 연결하는 일반적인 방법은 파티션들 중 한 파티션에서 방화벽을 실행하는 것이다. 방화벽 파티션에서, 물리적 네트워크로 직접 연결되는 네트워크 인터페이스 카드를 가질 수 있다.(그림 9) 다른 파티션들은 VLAN과 방화벽을 통해 트래픽을 전달하여 물리적 네트워크와 통신한다. VLAN은 리눅스, i5/OS, AIX 5L V5.3에서 사용할 수 있다.


    Linux on POWER 운영 환경 개요

    POWER와 PowerPC 아키텍쳐에서 실행되는 많은 리눅스 배포판들이 있다. IBM은 최근 POWER 프로세서 기반 서버에 다음과 같은 배포판을 지원하기 시작했다.

  • SUSE LINUX Enterprise Server(SLES): Version 9가 최신 버전이고 이 글에서는 SLES9라고 통칭하겠다.
  • Red Hat Enterprise Linux Advance Server(RHEL AS): Version 4가 최신 버전이고 RHEL4로 통칭하겠다.
    이 두개의 최신 버전 배포판들은 리눅스 2.6 커널에서 구현된다. 2.4 커널 버전 보다 기능적인 부분에서 많이 향상되었다. 또한 앞서 언급했던 새로운 POWER5 가상화 기능들을 수행하고 있다.

    바이너리 호환성(Binary compatibility)

    바이너리 호환성이란 여러 리눅스 배포판에서 바이너리를 실행시킬 수 있는 기능이다. 이러한 환경은 같은 배포판의 다른 버전이 되거나 전혀 다른 배포판이 될 수도 있다. 예를 들어, SLES9를 실행하는 POWER4 프로세서 기반 시스템에서 컴파일 및 실행되었던 바이너리는 SLES9를 실행하는 POWER5 프로세서 기반 시스템에서도 실행될 수 있다. 또 다른 예를 들자면, RHEL3을 실행하는 POWER4 프로세서 기반 시스템에서 컴파일 및 실행되었던 바이너리를 SLES9를 실행하는 POWER5 프로세서 기반 시스템에서 같은 바이너리를 실행할 수 있다.

    하드웨어 명령어 세트의 관점에서 볼 때, POWER4하드웨어에서 컴파일된 코드는 POWER5와 PowerPC 970(FX) 하드웨어에서도 어떤 변경 없이도 실행될 가능성이 높다. 하지만 하드웨어 버전들 간 애플리케이션의 바이너리 호환성을 결정하는 것은 지원되는 gcc, libc, middleware, Java, 배포판 레벨이다. 설치된 배포판이 POWER4 하드웨어와 POWER5 하드웨어에서 정확히 같다면 각 하드웨어 플랫폼에서 컴파일된 애플리케이션은 호환된다.

    Red Hat은 32-bit와 64-bit를 지원하고 RHEL3과 RHEL4간 포워드 및 백워드 호환성이 있는 반면, SLES 8에서 SLES 9로 마이그레이션 할 때 SLES 8은 32-bit 백워드 호환만 지원한다. 32-bit 모드에서 POWER 프로세서 기반 시스템용 SLES 8에서 개발된 애플리케이션들은 SLES 9에 전개될 때 호환성을 확인하기 위해 회귀 검사를 해야한다. SLES 8에서 개발된 모든 64-bit 애플리케이션들의 경우 재컴파일과 회귀 검사는 SLES 9로 이동할 때 필요하다. 다음 표에 RHEL3과 RHEL4 그리고 SLES 8과 SLES 9의 포워드 및 백워드 호환성을 정리했다.

    표 7. 리눅스 배포판들 간 포워드 및 백워드 호환성

    배포판 32-bit 64-bit
    RHEL3 - RHEL4 Yes Yes
    RHEL4 - RHEL3 Yes Yes
    SLES8 - SLES9 Yes No
    SLES9 - SLES8 No No
    32-bit와 64-bit 모두 eServer OpenPower, eServer p5, eServer i5, eServer BladeCenter JS20 서버상의 같은 64-bit 리눅스 커널에서 완전히 지원된다. 더욱이 64-bit 시스템 상에서 32-bit 애플리케이션을 실행할 때 예상되는 퍼포먼스 패널티도 없다. POWER5와 PowerPC 970(FX) 칩은 두 개의 유형들을 지원한다.

    SLES 9과 RHEL4 모두 2.6 커널 기반이다.


    2.6 커널의 특징

    2.6 커널은 최신 리눅스 커널이다. 2.6 커널을 실행하면 2.4에서는 가능하지 않았던 많은 새로운 기능들을 활용할 수 있다. 리눅스 배포자들은 어떤 커널을 릴리스하고 지원할 것인지를 결정하는 것이 중요해졌다. 따라서 여러분의 배포판이 2.4 커널을 실행해야 한다면 다음의 2.6 커널 기능들을 사용할 수 없다.


    PCI hot plug

    새로운 PCI hot plug 어댑터를 OS 운영 중에 PCI 슬롯에 삽입할 수 있다. 이 어댑터는 현재 설치되었거나 다른 유형의 PCI 어댑터와 같은 형이 될 수도 있다. 새로운 리소스들은 재시작 하지 않고 OS와 애플리케이션에 적용될 수 있다. 결점이 많은 PCI hot plug 어댑터를 같은 유형의 다른 것으로 대체할 수 있다. 이때 시스템을 끌 필요가 없다. 어댑터를 교환할 때 기존 장치 드라이버는 어댑터를 지원한다. 같은 유형이기 때문이다. 장치 설정과 장치에 대한 구성 정보는 대체된 장치에서도 보존된다.


    가상 메모리(VM)

    .6 커널은 가상 페이지-물리적 페이지 매핑에 효율적인 알고리즘을 구현한다. 이를 리버스 매핑(reverse mapping)이라고 한다. 이를 통해 보다 지능적인 메모리 스와핑 결정을 내릴 수 있다. 특정 부하량에서 VM 작동이 놀랍게 향상된다.


    스케줄러(Scheduler)

    2.4 커널에 사용되는 스케줄러는, 프로세스가 타임 슬라이스를 완료하고 재계산을 기다리면, SMP 시스템의 대부분의 CPU들을 유휴 상태로 만든다. 게다가 가끔, 유휴 CPU가 대기 프로세스를 실행하기 시작하면 프로세서들 간 프로세스들을 바운스(bounce)한다. 2.6 커널의 새로운 스케줄러는 이러한 문제들을 해결했다. 이 새로운 스케줄러는 로드 밸런싱과 인터랙티브 애플리케이션의 퍼포먼스도 향상시켰다.


    커널 선점

    2.4 커널에서는 커널 모드에서 실행중인 태스크를 선점하는 것이 불가능하다. 태스크가 자발적으로 CPU를 양도하기 전까지는 시스템 호출을 사용하여 커널 모드에 들어가는 사용자 태스크도 마찬가지다. 2.6 커널에서, 커널 태스크는 선점될 수 있다. 이로서 사용자 인터랙티브 애플리케이션의 퍼포먼스도 높아질 뿐만 아니라 임베디드 장치와 실시간 시스템들도 혜택을 누리게 되었다.


    쓰레딩 모델

    2.6 커널은 최신 리눅스 커널이다. 2.6 커널을 실행하면 2.4에서는 가능하지 않았던 많은 새로운 기능들을 활용할 수 있다. 리눅스 배포자들은 어떤 커널을 릴리스하고 지원할 것인지를 결정하는 것이 중요해졌다. 따라서 여러분의 배포판이 2.4 커널을 실행해야 한다면 다음의 2.6 커널 기능들을 사용할 수 없다.


    Block I/O

    Block I/O는 2.6 커널에서 재작성 되었다. 이로서 퍼포먼스와 에러 핸들링이 향상되었다. 새로운 Block I/O 버퍼로 PAGE_SIZE 보다 큰 사이즈의 I/O 요청이 가능해 졌다. SCSI 지원도 향상되었다.


    비동기식 I/O(AIO)

    비동기식 I/O 연산이 사용자 레벨의 쓰레드를 기반으로 지원되고 있지만, 이러한 기능의 구현은 2.6 커널이 최초이다. AIO 연산은 백그라운드에서 실행되고 사용자 애플리케이션을 막지 않는다. I/O 연산과 애플리케이션이 동시에 실행될 수 있기 때문에 퍼포먼스도 향상된다. 웹 서버, 데이터베이스, 파일 서버 같은 많은 애플리케이션들은 프로세싱과 I/O를 병행하는 기능을 활용한다.


    기타

    앞서 설명한 것 외에도 2.6 커널은 많은 분야에서 향상되었다.

  • 사용자와 그룹의 수가 65,000에서 40억으로 증가했다.
  • PID의 수가 32,000에서 십억으로 증가했다.
  • 최대 16 TB의 파일 시스템을 지원한다.
  • 오픈 파일의 수의 한계가 사전 설정에 더 이상 필요하지 않다.

    컴파일러(Compilers)

    Linux on POWER에 사용할 수 있는 컴파일러는 다음과 같다.

  • IBM XL C/C++
  • IBM XL Fortran
  • GNU Compiler Collection (GCC)

    고성능 컴파일러인 IBM XL C/C++ Version 7.0은 RHEL4와 SLES9에 사용할 수 있고, POWER5 프로세서 기반 시스템에 퍼포먼스 향상도 가져왔다. -qarch와 -qtune 옵션들은 각 아키텍쳐를 최적화하는데 사용된다. 예를 들어, POWER5를 최적화 하려면 -qarch=pwr5와 -qtune=pwr5 옵션을 사용해야 한다.

    IBM XL C/C++ 컴파일러의 -qaltivec 옵션은 IBM eServer BladeCenter JS20 서버의 PowerPC 970과 970FX 프로세서상에서 VMX 기능을 실행하는데 사용된다.

    GNU Compiler Collection에는 많은 다양한 프로그래밍 언어용 컴파일러가 포함되어 있다. 3.3 버전으로 업그레이드 되면서 많은 부분 향상되었다. gcc에 POWER 프로세서 식의 최적화가 이루어졌다.

    -mcpu=power5와 -mtune=power5 플래그가 이제 지원된다. POWER5 아키텍쳐 전용의 명령어가 되었다. 또한 벡터화 된 코드의 퍼포먼스를 높일 수 있는 IBM PowerPC 970과 970FX 프로세서를 위한 VMX 벡터 확장도 이루어졌다.

    IBM XL C/C++ 컴파일러가 더욱 향상된 POWER5 하드웨어 기능을 사용하기 때문에 이것으로 컴파일된 프로그램의 퍼포먼스도 나아졌다. gcc를 사용하여 컴파일된 프로그램들은 이식성이 더 강해졌다.

    다음 표에서는 GCC와 XL C/C++에서 일반적으로 사용되는 컴파일러 옵션들을 비교했다.

    표 8. GCC와 XL C/C++에서 일반적으로 사용되는 컴파일러 옵션
    GCC XL C/C++ 설명
    -v -v, -V, -# VERBOSE 모드를 시작한다.
    -m32, -m64 -q32, -q64, OBJECT_MODE 환경변수 32-bit 또는 64-bit 객체 생성. GCC 64-bit 컴파일러는 /opt/cross/bin에 배치된다.
    -fsyntax-only -qsyntaxonly 객체 파일을 만들지 않고 구문 검사를 수행한다.
    -fpic -qpic=small 공유 라이브러리에서 위치 독립적인 코드를 생성한다. XL C/C++에서 Global Offset Table의 크기는 64 Kb 미만이다. ?qpic이 어떤 하위옵션 없이 지정된다면 -qpic=small로 간주된다. -qmkshrobj 컴파일러 옵션이 지정되면 -qpic 옵션이 실행된다.
    -fPIC -qpic=large Global Offset Table의 크기가 64 Kb 미만이 되도록 한다.
    -pthread -qthreaded or _r invocation mode 멀티 쓰레디드 환경에서 실행하는 프로그램을 만든다.
    -fno-rtti -qnortti 예외 핸들링과 typeid와 dynamic_cast 연산자가 사용할 수 있도록 run-time type ?qrtti identification(RTTI)의 생성을 억제한다. XL C/C++에서 디폴트는 -qnortti이다.
    -static -qstaticlink 이 옵션으로 생성된 객체는 공유 라이브러리와 연결되지 않는다.
    -static-libgcc -qstaticlink=libgcc 정적 버전의 libgcc와 연결하도록 컴파일러에 명령한다.
    -shared ?qmkshrobj 공유 객체를 만들도록 컴파일러에 명령한다.
    -shared-libgcc -qnostaticlink=libgcc libgcc의 공유 버전과 연결되도록 컴파일러를 명령한다.
    -Wl,-rpath -Wl,-rpath or ?R 런타임 링커에서 검색된 디렉토리를 지정하는데 사용되는 콜론 분리형 디렉토리 리스트로 전달한다.
    -fno-implicit-templates, -frepo -qtempinc,
    -qtemplateregistry,
    -qtemplaterecompile
    템플릿 인스턴스화.
    -w -w 경고 메시지 차단.
      -warn64 긴 정수를 자르기 위해 검사 실행.
      -qinfo=<…> 정보 메시지 생성.
    -fpack-struct -qalign=bit_packed bit_packed 정렬 규칙 사용.
      -qalign=linuxppc 디폴트 GCC 정렬 규칙을 사용하여 GCC 객체들과의 호환성을 유지한다. (디폴트)
    -O,-O2,-O3 -O,-O2,-O3,-O4,-O5 최적화 레벨.
      -qarch, -qtune, -qcache 특정 프로세서용 최적화 옵션.


    XL C/C++ 컴파일러에 대한 자세한 내용은 "Linux on POWER용 IBM XL C/C++ Advanced Edition V7.0 사용 방법: GCC 사용자 가이드" (developerWorks, 2004년 12월)를 참조하기 바란다.

    소프트웨어와 미들웨어

    IBM은 DB2?? Universal Database, Tivoli??, WebSphere??, Java™등 많은 소프트웨어들을 Linux on Power에 포팅해 왔다. 자세한 내용은 IBM Middleware Available on Linux matrix(하단 참고자료)를 참조하기 바란다.

    SAP, Informix, Sybase 같은 많은 기업들도 그들의 소프트웨어들을 Linux on POWER에 포팅하고 있다. 자세한 내용은 Linux on POWER 애플리케이션 웹 페이지를 참조하기 바란다.(하단 참고자료 참조)


    요약

    지금까지 최신 latest IBM POWER5, POWER5+, PowerPC 970(FX) 프로세서 기반 시스템들을 소개하고, 주요 기능들을 설명했다. 아울러 IBM 가상화 엔진과 이를 사용하는 방법도 소개했다. 또한 System p5, eServer OpenPower, eServer p5, eServer i5, eServer BladeCenter JS20용 리눅스 배포판을 정리해 보았다.


    감사의 말

    이 글에 도움을 준 Linda Kinnunen, Chakarat Skawratananond, Matt Davis에 감사의 말을 전한다.


    참고자료

    - Participate in the discussion forum.
    - Reliability, Availibility, Serviceability (RAS) technology.
    - IBM eServer p5 and pSeries systems
    - eServer i5 information
    - eServer BladeCenter JS20
    - Linux on IBM eServer Web page
    - "POWER상의 리눅스에서 IBM XL C/C++ Advanced Edition V7.0 사용하는 방법: GCC 사용자 가이드" (developerWorks, December 2004)
    - IBM Middleware Available on Linux matrix
    - Linux on POWER applications Web page
    - Linux on POWER ISV Resource Center
    - Linux on Power Architecture Developer's Corner
    - developerWorks Linux zone
    - developerWorks blogs
    - Linux on Power blogs




    제공 : DB포탈사이트 DBguide.net
    출처명 : 한국 IBM
  • Comments