0부터 시작하는 KVM 공부 - 클라우드 컴퓨팅의 시작 & 서비스 & 가상화 & 노드

Jaehong Lee·2022년 8월 10일
0
post-thumbnail

1. 클라우드 컴퓨팅의 시작

  • 클라우드 컴퓨팅은 자원 재판매에서 시작되었다

  • 최초의 컴퓨터 ( PC ) 는 Personal Computer 로 독립적인 장비였다. 허나, inter communication 이 요구되면서 Network 라는 개념이 등장하였다

    1. 처음에는 PC 와 PC 를 랜카드를 통해 직접 연결하는 방식을 사용하였다. 허나, 다수의 PC 가 있을시 이 방법은 랜카드가 여러개 필요하므로 물리적인 한계가 발생하였다
    2. 물리적인 한계를 극복하기 위해 Multi Access 를 위한 장비인 HUB -> Switch -> Router 들이 등장하였다. 이를 통해 다수의 PC 들을 연결할 수 있었다
    3. 다수의 PC 가 자료를 공유하기 위해서 Server / Client 개념이 장하였다. 이제 공유하기 위한 자료를 하나의 PC 에서 공유하는 것이 아닌, Server 에 자료를 두고, 다른 PC 들이 해당 Server 에 접속해서 필요한 자료를 공유 받는 방식을 사용할 수 있게 되었다
    4. 인터넷 ( 공중망 ) 이 등장하여, Server 의 자료를 인터넷에 공개할 자료를 공개하여 User 들과 자료를 공유할 수 있게 되었다. 이를 위해서는 안정적인 전원 공급과 공간, 관리 인원 , 공인 Ip 등을 필요로 하며, 이를 Server 를 가지고 있는 회사 내에서 관리를 했다
    5. 허나, 회사 내에서 Server 를 운영하는 것이 어려워지면서, Server 를 DataCenter 에 보관하여 관리를 위임하였다
  • DataCenter 입장에서는 점점 많은 Server 가 위임되면서 공간, 관리 인원 등의 문제가 대두되었다. 특히 공간 문제가 크게 다가왔다

    • 때마침, 가상화의 개념이 도입되었다. 기존에 Unix 계열에서만 제공되던 가상화 기술이 x86 칩셋 ( 범용 CPU ) 에서 가상화가 가능해지면서, 공간 활용율이 증가하여 공간 문제를 해소할 수 있게 되었으며, 이를 통해 전원에 대한 비용도 감소하게 되었다
  • DataCenter 에서는 더 많은 사용자들을 위해 물리 자원의 부족이나 준비 시간에 대비하여, 미리 자원을 준비해둔다

    • 허나, 이 준비된 자원을 모두 사용하는 것이 아니므로, 남는 자원이 존재하였으며, 사용하지 않는 자원에 대한 전원 낭비가 발생했다
    • 이를 해결하기 위해, 남는 자원을 외부에 재판매하면서 클라우드 컴퓨팅이 시작되었다

2. 클라우드 컴퓨팅 서비스

  • 자원을 외부에 재판매 하는데 어떤 것을 재판매 하느냐? 이는 판매하는 자원에 따라 구분 되며 NIST 에서 정의하였다
    • IaaS
    • PaaS
    • SaaS

IaaS - Infrastructure as a Service

  • Infra를 서비스로 제공하며, Server ( 컴퓨터 ) / 방화벽 / Switch / Router 와 같이 물리적인 장비들이 클라우드에 존재하며, 이를 인터넷을 통해 클라우드에서 제공해준다. 사용자는 필요한 장비들을 인터넷을 통해 클라우드에서 임대하여 사용할 수 있다

PaaS - Platform as a Service

  • 개발 환경을 서비스로 제공한다. 표준화된 환경을 제공해준다

SaaS - Software as a Service

  • Software 를 클라우드 상에서 제공해준다. 클라우드 상에 Software 가 설치되어 있으며, 사용자는 인터넷에 접속하여 클라우드 상에서 필요한 Software 를 임대하여 사용할 수 있다

3. 클라우드와 가상화

클라우드는 무조건 가상화는 아니지만, 가상화와 함께 구성해야 효과적이다!

  • 클라우드를 가상화와 함께 구성한다면
    1. Application 을 24 시간 Online 유지가 가능
    2. 동작 중인 Server 의 Region 간 이동이 가능
    3. On-Demand 서비스 가 가능 ( 사용자가 Request 하는 즉시 최단 시간 내에 Service 를 제공 가능 )

이 가상화를 위한 도구가 HyperVisor 이다

  • HyperVisor 는 물리 자원에 접근하여 CPU , RAM , NIC 등을 추상화하고, 이를 결합하여 온전한 형태의 Server 가 되도록 가상화를 제공한다
  • HyperVisor Type 1 : HyperVisor 가 물리 자원 바로 위에 배치되며, 이를 Bare Metal HyperVisor 라고 한다. Type 1 에는 KVM , VMware ESXI , XenServer , Hyper-V 등이 있다
  • HyperVisor Type 2 : HyperVisor 가 Host OS 위에 배치되며, 이를 Host Based HyperVisor 라고 한다. Type 2 에는 VMware WorkStation , Virtual Box , VirtualPC 등이 있다
  • HyperVisor 를 통해 만들어진 가상 머신은 XML 영역과 Disk 영역으로 나뉘어지며, 주로 Disk 영역은 외부 공유 Storage 의 Persistent Volume 을 사용 한다. 이를 통해 Data 를 영구적으로 저장할 수 있으며, 가상 머신을 Migration 을 하고자 할 때 XML 파일을 이동시켜도, 해당 Server 가 동일한 외부 공유 Storage 와 연결이 되있다면, 동일한 Disk 영역인 Persistent Volume 를 사용하므로, 동일한 가상 머신이 생성되어 Migration 이 된다
    • 만약, local Disk 를 Disk 영역으로 사용하게 되면, 다른 Server 에 가상 머신 Migration 이 불가능하다. Migration 시 XML 파일을 옮기는데, 이 XML 파일에 정의된 Disk 영역이 옮겨진 Server 에는 존재하지 않기 때문이다. 이를 위해서는 local Disk 도 Storage Migration 을 해야 하는데, 이 과정은 효율적이지 않다

4. 클라우드 환경의 노드

클라우드 환경을 구축하기 위한 노드

  • Control
  • Compute
  • Network
  • Storage
  • Control Node : 사용자 인증 / 인가 , 모니터링 을 하며, 사용자가 Request 한 작업 지시를 받아 이를 Compute Node 에 전달해준다. DataBase 도 Control Node 에 위치한다

  • Compute Node : Control 로부터 전달 받은 작업을 수행한다. HyperVisor 가 위치한다

  • Network Node : 가상 머신들이 배치되며, 외부 사용자들에게 연결된다. DHCP / NAT / 방화벽 등의 Service 를 제공해준다

  • Storage Node : Compute Node 의 HyperVisor 가 Request / 작업 지시 간 Disk Volume 공간을 제공해준다

클라우드 환경 네트워크

  • 클라우드 환경은 외부 사용자를 위한 Internet / 내부 사용자를 위한 Storage Subnet / 관리를 위한 Internal Api & Admin Subnet / 사용자 구분을 위한 Tenant Network 로 구성된다

    • 클라우드는 Multi Tenancy / Multi Tenant 환경 이라고 한다. 이 Tenant 와 유사한 의미로 프로젝트가 있다
    • Tenant Network 는 사용자 별로 작업 공간을 구분하기 위한 Network 이다
  • Storage Subnet 은 외부에 공개되면 안되기에 Internet 과 연결되있지 않으며, External Network Access 를 위한 Network Node 와 연결되있지 않다

  • Internal Api & Admin Subnet 를 통해 관리 및 서비스 제공을 한다. 내부 사용자들은 주로 Api 를 통해 요청한다

profile
멋진 엔지니어가 될 때까지

0개의 댓글