3 min to read
[Cloud]5. 가상화 기술 소개1
[1. Virtualization Overview]
서버의 가상화(Virtualization) 기술이란 무엇인가?
- 데이터의 크기, 사용자 증가에 따른 리소스 증가에 맞는 환경을 구축해주기 위해 가상화 기술이 필요하다
- 하나의 물리적 서버에 논리적인 OS 인스턴스를 만드는 기술
- 모든 하드웨어들이 가상화될 수 있다. (물리적 하드웨어와 관계없이 동일하게 보이는 하드웨어)
- 각각의 가상 머신들은 독립적이어야 하고 유저는 가상화되었다는 사실을 몰라야 한다.
why virtualize
- 하드웨어를 더 효율적으로 활용하기 위해
- 효율적인 리소스 관리
- 긴 기간 리소스와 수요를 매칭
- 빠르고 신속한 서버 리소스를 공급해줘야함
- Testing & Troubleshooting
- 효율적인 중복성(redundancy) 제공
- application 이 다운되지 않고 하드웨어 유지
- 시스템을 이미징을 통해서 단순화 시킴
- 재난 복구
HW Utilization Facts
- 미시간 주의 정보시스템 데이터센터의 28서버 관찰(가상화를 위해 관찰)
- 44GB RAM, 138.15Ghz CPU, 1323GB HD
- 99% 시간동안 메모리는 45%나 사용되지 않음
- 동시에 25% 메모리가 사용되지 않음
- 99%시간동안 CPU는 85%가 사용되지 않음
- 동시에 81% CPU가 사용되지 않음
- 하드웨어 공간 68%가 사용되지 않음 -> 데이터센터에 너무나 많은 자원 낭비가 있다.
Virtualization vs Consolidation(통합)
- 가상화 서버 : OS 분리
- Consolidation : 한개로 통합
- 가상화 서버는 각각 관리되어야 한다.
- Consolidation 어플리케이션은 충돌이 날 수 있다.
Strategy for web hosting
- Consolidating service는 cost를 줄일 수 있다.(관리해야 할 여러 머신이 하나로 관리되기 때문에)
Tactics(전략)
- 공유된 환경은 통합(Websphere, PHP…)
- 1~2개의 머신에 윈도우와 리눅스의 기능을 모아 놓는 것이 가능한지 조사해보자
- co-location serviec(유저가 자기 컴퓨터를 관리해달라는 서비스) 도 가상화 옵션으로 조사해보자
Virtualization Defined
- 가상화는 컴퓨팅의 여러 요소들을 포함하는 리소스의 추상화를 의미한다
- 우리의 목적 : 한개의 물리적 머신이 여러개의 가상 머신으로 동시에 동작할 수 있게 지원
왜 가상화인가?
- 너무 많은 서버들이 일은 별로 하지 않음
- 하드웨어가 노후화 되고 사용기간이 다 끝나가는 경우
- 뛰어난 성능의 하드웨어가 요구함(무중단 서버 등)
- 공유된 환경에서의 유연성
[2. Traditional Server]
예전 서버의 개념
- Web 서버, App 서버, DB 서버 등이 각각 존재
- 만약 App 서버가 문제가 생기면 기능을 못함(다른 서버들을 활용하지 못함)
- 특정 서비스(Web, App, DB 등)를 위해 하나의 하드웨어 리소스들이 할당
- 서버들은 기능별로 할당
- 특정 서버 공간이 가득차거나 오버헤드가 발생했을 때 관리자는 새로운 서버를 추가할 수밖에 없었음
- 한 서비스의 하드웨어가 failure가 되면 시스템은 다운됨
- 시스템 관리자는 장애에 대처하기 위해 클러스터를 구성해야 함. 그러나 클러스터를 구성해도 확정성에는 문제가 있음
- 장점 :
- 개념이 단순함
- 배포가 쉬움
- backup이 쉬움
- 한 서버에서 정해진 서비스가 여러개 실행될 수 있다.
- 단점 :
- 하드웨어 유지보수가 비싸다
- 동적 확장성이 낮다
- 같은 기능의 서버를 복제하기가 쉽지 않다
- Redundancy(중복) 구현이 어렵다
- 하드웨어가 낡으면 위험요소가 많다
- 대부분의 프로세서들의 사용량이 낮다
[3. Virtual Server]
가상서버의 개념
- 하드웨어와 OS사이에 가상화Layer를 둠
- N개의 OS환경에 M개의 하드웨어를 둘 수 있음
- Virtual Machine Monitor(VMM) Layer가 Guest OS와 하드웨어 사이에 존재
- 서버 소프트웨어(OS, application, storage 등)들을 하드웨어로부터 분리시켜서 encapsulation
- 서버에 필요한 모든 것이(OS, app, storage 등) 가상화 솔루션 위의 파일(이미지)로 관리
- 가상화서버는 한개 혹은 여러개의 호스트에서도 수행되어야 함
- 가상화서버는 기능별로 하나의 리소스를 공유하지만 여러개의 서버를 만들수는 있다
- 환경이 제대로 구성이 되면 가상화 서버는 재난 등으로부터 안전해질수 있다
- 호스트가 삭제되거나 신규 추가되는 등 원하는대로 관리할 수 있다
- 가상서버는 쉽게 확장할 수 있다(가상머신에 할당된 리소스들을 수정할 수 있음)
- 서버 템플릿(이미지)를 만들어 놓고 필요한 만큼 활용할 수 있다
- 원하는대로 host대 host로 migrate 시킬 수 있다
- 장점
- resource pooling(리소스를 모을 수 있다)
- highly redundant
- highly available
- rapidly deploy new servers
- easy to deploy
- reconfigurable while services are running
- optimizes physical resources by doing more with less
- 단점
- Slightly harder to conceptualize(개념잡기가 어려움)
- Slightly more costly(하드웨어, OS, app, abstraction layer)
가상화를 위한 연구
- 물리 머신의 숫자를 줄여야함
- 고립된 환경 & 하드웨어는 공유
- 가지고 있는 capacity를 잘 쓸수 있어야 함
- 인프라 요구를 줄이기 위한 Network리소스 가상화 & SAN Interface
- 유지관리를 위한 경제성 확보 필요
가상화 소프트웨어
- MS Virtual PC 2004
- VMWare workstation 5
- MS Virtual Server 2005 Standard/Enterprise
- VMWare GSX Server 3.1
- VMWare ESX Server 2.5
More Software Options
- 많은 가상화 상품들이 이용 가능함
- 리눅스에도 여러 가상화 기술이 결합되어 좋은 성능을 발휘할 수 있게 됨
*출처 :
- 클라우드 컴퓨팅 핵심기술 요소의 이해 사내교육 참고
Comments