티스토리 뷰

컴퓨터공학

클라우드 컴퓨팅 기술 정리

데니 Denny 2019. 12. 3. 10:12
반응형
SMALL

이번 포스트에서는 클라우드 컴퓨팅에서 사용되는 기술들에 대해 살펴보도록 하겠습니다.

1. Hypervisor (하이퍼바이저)

하이퍼 바이저 (Hypervisor)는 호스트 컴퓨터에서 다수의 운영체제(Operating System)를 동시에 실행하기 위한 논리적인 플랫폼 (Logical Platform) 을 의미합니다. 이를 다른 말로 VMM (Virtual Machine Monitor) 라고도 합니다.

하이퍼 바이저 (Hypervisor)는 대표적으로 두 가지 타입으로 구분되는데 이를 Type1, Type2라고 합니다.

Hypervisor TYPE

1) Bare Metal Hypervisor (Type 1)

Bare Metal은 단어 뜻으로는 그저 맨 쇳덩이라는 뜻이지만 IT 분야에서는 어떠한 Software(소프트웨어)도 담겨있지 않은 Hardware(하드웨어)를 의미합니다. 운영체제(Operating System)가 프로그램을 제어하듯이 하이퍼바이저(Hypervisor)가 해당 Hardware(하드웨어)에서 직접 실행되며 가상머신 내의 Guest Operating System(Guest OS) Hardware(하드웨어) 위에서 2번째 수준으로 실행됩니다.

2) Hosted Hypervisor (Type 2)

Hosted Hypervisor(호스트된 하이퍼바이저) 타입에서 Hypervisor(하이퍼바이저)는 일반 프로그램과 같이 Host OS(Operating System)에서 실행되며 Virtual Machine 내부에서 동작되는 Guest Operating System은 Hardware에서 3번째 수준으로 실행됩니다. 

사례로는 VMWare Workstation, VMWare Server, Virtual Box 등이 있습니다.

 

2. Virtualization (가상화)

컴퓨터의 CPU(중앙처리장치), Memory, Storage 등의 물리적 구성은 숨기고, 가상적인 Hardware(하드웨어) 환경을 여러 만든 , 개별 가상 머신이 각각 CPU, Memory, Storage 등을 갖추고 있는 것처럼 보이게 하는 것을 말합니다.

즉, 물리적은 구성을 논리적인 구성으로 만드는 것을 가상화라고 하며 물리적인 여러 대 PC를 가상적인 한 대로 보이게 하거나 물리적인 한 대의 PC를 논리적인 여러 대로 보이도록 하는 것 모두를 포함합니다. (물리적인 것을 논리적인 것으로 구성한다고 이해하면 됩니다.)

Virtualization

1) 가상화의 필요성 (High Availability)

가상화는 시스템 자원 (Storage, Network, Server 등)의 효율성을 극대화하기 위해서 필요합니다. 시스템 자원은 실제로 사용 하고 있는 상태(busy state) 보다 쉬고 있는 상태(idle state) 인 경우가 대부분이기 때문에 사용도가 낮은 시스템을 가상화처리하여 사용하게 된다면 낭비되는 자원을 효과적으로 컨트롤할 수 있게 되며 이는 결국 TCO(Total Cost of Ownership) 절감의 효과를 얻을 수 있다는 장점이 있습니다.

 

2) 가상화 방식 - 전가상화(Full Virtualization)

전가상화에서는 Guest OS의 커널 수정 없이 기존의 App을 그대로 수행할 수 있습니다. Hypervisor(VMM)는 실제의 I/O 디바이스를 에뮬레이션 하고, GuestOS 요청을 해석하여 하드웨어로 전송하게 됩니다. 결과적으로 GuestOS 하드웨어를 직접 제어 한다고 인식은 하고 있으나 실제로는 Hypervisor(하이퍼바이저)를 통해 에뮬레이션하는 것이기 때문에 구현에 따라서 성능 저하가 발생할 수 있습니다.

  • 하드웨어를 완전히 가상화
  • Operating System의 제약 없이 사용할 수 있음
  • 게스트 OS는 자신이 가상머신 위에서 작동하고 있는 것 (인식 불가)
  • 시스템에 물리적인 가상화 기능 필요
  • 게스트 OS에서 물리자원 직접 접근 불가
    • 반드시 하이퍼바이저를 통해 접근해야함 - 성능 저하

3) 가상화 방식 - 반가상화(Para Virtualization)

반가상화에서는 Hypercall이라고 부르는 인터페이스를 통하여 GuestOS는 Hypervisor(VMM)에 요청을 보내게 됩니다. 코드의 해석작업이 Hypercall에 의해 수행되고 Hypervisor에서는 그 과정이 생략되기 때문에 시스템 성능이 상대적으로 뛰어나다고 할 수 있습니다.

  • 게스트 OS가 자신이 가상머신 위에서 동작하고 있다는 것을 인식
  • OS 제약이 없음
    • OS의 제약, 커널을 수정해야 함
  • 게스트 OS에서 물리자원 직접 접근 가능
    • 성능 개선
  • 바이너리 변환 (Binary Translation)
  • HVM(Hardward Virtual Machine)

반가상화, 전가상화, OS Level 가상화

출처 : https://byungjun0689.github.io/2.%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B0%80%EC%83%81%ED%99%94%EC%99%80-Docker-2/

4) 서버 가상화 (Server Virtualization)

기존의 물리 서버 환경의 컴퓨터 네트워크 관리자는 하나의 App 혹은 Task에 하나의 전용 서버를 할당함으로써 App.에서 발생하는 문제의 원인을 쉽게 발견할 수 있었고 네트워크 구성도 용이하였으나 컴퓨터의 자원을 효율적으로 사용하지 못한다는 단점이 있습니다. 또한 네트워크의 규모가 커지고 복잡해지면서 서버가 가지는 물리적인 공간은 매우 커지고 이로 인해 상당한 전력 소모와 발열이 있습니다.

서버 가상화는 하나의 물리 서버를 여러 개의 논리적인(가상) 서버로 전환하고 각 논리적인 서버는 마치 독립적인 물리적인 서버처럼 동작하게 됩니다. 자체 OS를 구동할 수 있기 때문에 물리 서버의 자원의 양을 초과하지 않는 범위 내에서 최대 개수의 가상 서버를 구축할 수 있습니다.

서버 가상화( Server Virtualization )

파티셔닝

단일 물리 시스템에 다수의 가상 머신 구동

 

격리

동일 서버상의 각각 가상머신은 다른 가상머신과 격리되며 독립됨

 

캡슐화

전체 시스템(OS, App. 등) 파일로 캡슐화

 

하드웨어 독립

가상 머신은 수정/변경없이 다른 하드웨어 서버에서 구동

 

5) 스토리지 가상화 (Storage Virtualization)

Storage Virtualization (스토리지 가상화)는 여러 기종의 Storage 공존으로 인해 스토리지 관리를 위한 기술적인 복잡도와 그에 대한 업무부담 증가하게 되어 나타나게 되었습니다. 여러 기종의 Storage 제품을 하나의 통합된 Storage Pool로 관리하고, File System을 통합하여 관리함으로써 Storage(스토리지) 사용률의 향상, Storage 자원 운영의 단순화 및 효율화를 실현할 수 있습니다.

6) 네트워크 가상화 (Network Virtualization)

Network Virtualization

네트워크 가상화는 서버 가상화와 마찬가지로 다수의 물리적 자원을 하나의 논리적 장치로 사용하거나 하나의 물리적 자원을 복수의 서로 다른 용도로 분할 하는 것을 지칭합니다. Firewall(방화벽), Router(라우터), Switch(스위치)와 같은 물리적인 네트워크 자원들을 마치 하나의 자원처럼 사용하는 것을 말합니다. 대규모 네트워크에 폐쇄형 사설 네트워크를 생성하는 VPN(Virtual Private Network), VLAN(Virtual LAN) 등이 대표적인 네트워크 가상화라고 할 수 있습니다.

 

네트워크 가상화는 전용 네트워크 연결방식(직접 케이블로 연결하는 방식)과는 달리 사용 가능한 전체 자원에 대하여 요구하는 대역폭(Bandwidth)을 할당해 네트워크 성능을 보다 효율적으로 사용할 수 있습니다. 즉, 가상화가 그런 것 처럼 유휴자원의 낭비를 줄여준다는 것이 포인트라고 할 수 있습니다.

3. Provisioning (프로비저닝)

프로비저닝(Provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말합니다. 급격한 서비스환경의 변화에 맞추어 IT서비스 또한 선제적이고 실시간 적으로 변경이 요구되게 되는데 , 급격한 IT서비스 변경에는 IT 자원의 가용성 저하를 발생시킬  있기 때문에, 적절한 시스템 구성을 확보하고, 시스템 상태를 모니터링하고, 문제를 해결하기 위한 개선 도구를 사전에 제공하는 것이 필수입니다. 그렇기 때문에 프로비저닝이 필요합니다.

1) 프로비저닝의 종류

서버 자원 프로비저닝

서버의 CPU, Memory 등의 자원을 할당해서 운영할 수 있도록 준비해 놓는 것

 

OS 프로비저닝

OS를 서버에 설치하고, 구성 작업을 통해 OS가 가동되도록 준비해 놓는 것

 

소프트웨어 프로비저닝

소프트웨어 (WAS, DBMS, 어플리케이션 포함)를 시스템에 설치/배포 하고 필요한 구성 셋팅 작업을 통해 실행 할 수 있도록 해 놓는 것

 

스토리지 프로비저닝

낭비되거나 사용되지 않는 스토리지를 식별하고 공통 풀에 가져다 놓을 수 있는데 이 후, 스토리지에 대한 요구가 접수되면 관리자는 이 공통 풀에서 스토리지를 꺼내 사용할 수 있어, 스토리지의 효율을 높일 수 있는 인프라 구축 가능

 

계정 프로비저닝

사용자가 접근하는 자원(Resource) 범주가 변경 되었을때 HR 담당자와 IT관리자는 적절한 승인절차 , 이메일/그룹웨어/ERP 다양한 어플리케이션에 필요한 계정을 생성 하거나 접근 권한을 변경해 주는데 이러한 일련의 과정을 지칭함

2) 자동 / 수동 프로비저닝 (Automatic / Manual Provisioning)

위와 같은 프로비저닝 작업을 자동화 툴을 사용하여 자동으로 수행하게 된다면 자동 프로비저닝이라고 하며 시스템 담당자가 직접 수행하게 된다면 수동 프로비저닝이라고 합니다. 자동 프로비저닝을 추구합니다.

3) 운영체제 프로비저닝 (Operating System Provisioning)

OS Provisioning

Operating System Provisioning은 각 Operating System의 특성에 맞는 환경 안에서 수행됩니다. AIX 설치를 위해서는 NIM, Windows 설치를 위해서 MS ADS 혹은 IBM RDM, Redhat IBM RDM이나 Redhat kickstart, Solaris Jumpstart 그리고 HP-UX 위해서는 Ignite 환경을 이용하여 각각의 Operating System Provisioning 작업이 수행됩니다.

 

반응형
LIST

'컴퓨터공학' 카테고리의 다른 글

분산 파일 시스템 - Hadoop  (0) 2019.12.04
클라우드 시스템 개요  (0) 2019.12.02
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함