본문 바로가기
데이터분석/ADP

PART02.2장 데이터 처리 기술( 클라우드 인프라 기술)

by Mr.꾸 2022. 6. 3.
반응형

PART02.2장 데이터 처리 기술( 클라우드 인프라 기술)


클라우드 컴퓨팅


  • 개념 및 특징
    • 동적으로 확장할 수 있는 가상화 자원들을 인터넷으로 서비스하는 기술
    • Iaas, Paas, Saas
    • VMware, Xen, KVM 등 : Iaas에 주로 사용
    • AWS의 EMR은 하둡을 온디멘드로 이용
  • 서버 가상화의 개념 및 특징
    • 정의 : 서버와 OS 사이에 적절한 계층을 추가해, 사용자에게 논리적인 자원만을 보여주는 기술
    • 특징
      1. 하나의 서버에 여러 개의 애플리케이션, 미들웨어, OS들이 영향을 미치지 않으며 동시에 쓸 수 있음
      2. 인프라 종류에 따라 서로 다른 기술 및 분류체계 사용
    • x86은 하드웨어 제조사가 다양, 때문에 가상화 기술도 업체에 따라 다양
    • CPI 제공업체는 하드웨어 차원의 CPU 가상화
    • VMware 등은 소프트웨어 기반의 가상화
  • 서버 가상화 기술의 효과
    • 가상 머신 사이의 데이터 보호 : 가상 머신 사이에는 정상적인 네트워크 접속만 허용
    • 예측하지 못한 장애로부터 보호 : 다른 가상 머신에는 영향을 미치지 않음
    • 공유 자원에 대한 강제 사용의 거부 : 가상 머신 별 자원 할당
    • 서버 통합
    • 자원 할당에 대한 증가된 유연성 : 자원 요구량에 맞춰 자원 재배치
    • 테스팅
    • 정확하고 안전한 사이징 : 필요한 만큼 할당 및 추가
    • 시스템 관리 : 하드웨어 장애/로드밸런싱/업그레이드 등 쉽게 함.

CPU 가상화


  • 하이퍼바이저의 개념 및 특징
    • 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하도록 하기 위한 논리적은 플랫폼
    • 서버 가상화의 핵심기술, x86 계열 서버 가상화는 소프트웨어 기반
  • 기능
    • 에뮬레이션 / 실행환경 격리 / 자원 할당 / 소프트웨어 스택 보존
  • 기술 분류
    • 플랫폼별
      1. x86 : VMware. Ms Virtual Server, Xen
      2. 유닉스 : IBM Power Hypervisor
      3. 메인프레임 : z/VM과 하드웨어 펌웨어로 분류되는 PR/SM
    • 하이퍼바이저 위치와 기능에 따른 분류
      1. 하이퍼바이저가 물리적인 하드웨어 또는 호스트 운영체제와의 관계에서 어디에 위치하는지에 대한 분류
      2. 베어 메탈 하이퍼바이저 - 하드웨어와 호스트 운영체제 사이에 위치
        - 반가상화와 완전 가상화로 구분
      3. 호스트 기반 하이퍼바이저 : 호스트 운영체제와 게스트 운영체제 사이
    • 권한 명령어 처리방법에 따른 분류 : 게스트 OS에서 하드웨어에 접근할 때
    • 가상화 방식의 분류
      1. 완전 가상화
        - 우선순위가 낮은 가상 머신에서는 실행되지 않는 privileged명령어에 대해 trap 발생
        - VMware ESX Server, MS Virtual Server  등
        - 모든 H/W 자원을 하이퍼바이저가 직접 제어, 관리하기에 어떤 OS라도 수정하지 않고 설치 가능
        - 하이퍼 바이저가 직접 자원을 제어하기 때문에 성능 저하, Para Virtualization보다 느림
      2. 하드웨어 지원 가상화
        - Intel VT-x, AMD-V 하드웨어에서 제공하는 가상화
        - 가상 머신에서 HW 자원 명령을 내릴 수 있음
        - CPU에 Ring-1 계층, 하이퍼바이저는 Ring-1 계층
        - 게스트 OS는 Ring 0 계층
        - 주의점 : 하드웨어 지원 가상화의 경우 CPU 사용률이 높아짐, 서버 통합을 목적으로 하는 경우 비효율적
      3. 반가상화
        - ring 0 계층의 하이퍼바이저에게 hypercall을 통해 하드웨어로 명령 수행
        - 게스트 OS가 hypercall을 하기 위해 수정 필요
        - 자원의 변화와 같은 통적 가상화 환경에 유연하게 적응
        - VMI라는 표준 인터페이스
      4. Monolithic VS Microkernel
        - 하드웨어에 대한 드라이버가 어느 계층에 있냐는 구분
          ① Monolithic : 모든 드라이버를 하이퍼바이저 계층 소유
                              성능은 조금 향상될 수 있지만, HW추가나 업데이트가 필요한 경우 하이퍼바이저가 수정되어함. 장애 발생 가능성 높음
          ② Mircokernel : 드라이버를 각 가상 머신에서 소유, Xen에서는 호스트 OS 가 가짐
                                게스트와 호스트는 격리되어 있길래 하이퍼바이저(혹은 VMBus)를 이용
                                HW 추가에 따른 하이퍼바이저 변경 없음, 장애 확률 낮음
      5. 호스트 기반 가상화
        - 완전한 OS가 설치되고 그 위에 하이퍼바이저 설치
        - 단일 운영체제의 취약성
      6. 컨테이너 기반 가상화
        - 호스트 OS 위에 운영환경 계층을 추가하여 운영환경만을 가상화한 방식
        - 가상화를 지원하는 계층을 하이퍼바이저가 아닌 가상 운영환경이라 함
        - openVZ 등
        - 가상화 수준이 낮아 빠른 성능
        - 격리 수준이 낮아 자원 격리 잘 안됨
        - 호스트 OS의 문제를 다 받음

메모리 가상화 : VMware 기법


  • 개념 및 특징
    • 가상 주소 : 하나의 프로세스가 가리킬 수 있는 최대 크기, 32비트는 4GB까지
    • 가상 주소 값의 위치(VPN : Virtual Page Number)를 실제 물리적인 주소 값 위치(MPN)를 page table을 이용해 매핑
    • TLB(Translation Lookaside Buffer)가 매핑 연산을 하드웨어적으로 도움
    • 핵심 모듈인 VMkernel
      1. Service Console, 디바이스 드라이버들의 메모리 영역을 제외한 나머지 전체 메모리 영역을 관리, 가상 머신에 할당
    • Shadow Page Table로 가상 메모리 주소와 물리 메모리 주소의 중간 변환 과정을 가로챔
      1. 실제 존재하는 것처럼 게스트 OS에게 매핑해주는 역할
  • 가상 머신 메모리 할당 문제를 해결하기 위한 방법
    • Mermory ballooning
      1. VMkernel은 예약된 메모리보다 더 많이 사용하는 가상 머신의 메모리 영역에 빈 값을 채워 게스트 OS가 swapping 하도록 함.(메모리 비움)
    • Transparent page sharing
      1. 동일한 내용을 담고 있는 페이지는 물리적인 메모리 영역에 하나만 존재시키고 공유
    •  Memory Overcommitment : 권장 안 함

I/O 가상화


  • I/O 병목현상이 문제, I/O 자원의 공유 및 파티셔닝 필요
  • 가상 디스크 어댑터, 이더넷 등이 필요
  • 가상 이더넷
    • 에뮬레이션 기능 사용
    • 별도의 물리적 어댑터와 케이블 없이 네트워크 이중화, 안정적 단절 등 가능
  • 공유 이더넷
    • 물리적 네트워크 카드 공유
    • 병목현상 발생
  • 가상 디스크 어댑터
    • 자원 획득 방법
      1. 내장 디스크 : 가상 I/O 레이어가 내장 디스크 소유 -> 논리적 디스크 드라이브로 나눔
      2. 외장 디스크 : 가상 I/O 레이어가 파이버 채널을 통해 외장 디스크의 LUN 획득
        -> 논리적 디스크로 나누지 않고 바로 각 가상 머신에 분배 -> SCSI 디스크로 나타남

 

728x90

댓글