20210705 (월) 가상화 기초
가상화 :물리적인 리소스를 논리적으로 변경함으로써 리소스의 낭비 최소화가 목적
운영체제의 역할 - 시스템의 물리적인 리소스를 관리하고 어플리케이션의 리소스 접근/사용을 지원
시스템 가상화에서 HV의 역할
- 각각의 가상머신마다 각각의 OS/APP이 동작하므로
- 각 운영체제(게스트OS)의 직접적인 접근을 차단 (트랩)
- 가상머신 내부의 요청에 대해서 실제 운영체제(호스트OS)에 재요청 해주는 작업 수행(에뮬레이터)
- 가상머신 간의 격리 기능 제공 (결함 격리 : fault isolation)
하이퍼 바이저 종류
Virtual Box, VMware Workstation, KVM 등
가상화 종류
- 시스템 가상화 : 시스템(서버)를 논리적으로 분할해서 사용하는 기술
* VM을 통한 가상머신
* 호스트 가상화/ 서버 가상화 → 하이퍼바이저 사용
* 컨테이너 가상화 → 도커/쿠버네티스
*
- 네트워크 가상화 : 네트워크 장치 가상화, 기능 가상화
* 장비 : SDN (Software Define Network )
* 기능 : NFV (Network Function Virtualization 방화벽, 로드밸런서 등의 기능)
- 스토리지 가상화 : 스토리지를 논리적으로 분할/합쳐서 사용하는 기술
* SDS (Software Define Storage)
* LVM, RAID, Gluster, Ceph 스토리지
- 서버가상화 :
* 호스트 가상화 : 운영체제 설치 후 HV와 SW를 설치하는 방식
장점 : 관리 및 사용이 쉬움
단점 : 오버헤드가 크다. 시스템 리소스에 대한 제한.
* 하이퍼바이저 가상화 : 운영체제 없이, HW 위에 바로 하이퍼바이저를 설치
장점 : 호스트 가상화보다 오버헤드 적다.
시스템 리소스 제한이 적음 (상대적으로 많은 리소스 사용 가능)
성능이나 보안에 유리
단점 : 시스템 사용에서 제약사항이 많아진다. (OS에서 기본제공 앱 등이 없으므로)
* 컨테이너 가상화 : 어플리케이션만 격리하는 가상화 방식으로 별도의 OS가 없다.
장점 : 배포가 빠르고 많은 배포가 가능하다. 오버헤드가 매우 적다.
단점 : OS가 없다
※ 전 가상화, 반 가상화
※ type1 / type2 : http://cloudrain21.com/hypervisor-types 참고
<오픈스택>
클라우드 컴퓨팅
- 사용자의 요청에 따라(on-demand) 공유된 컴퓨터의 자원/데이터를 제공
- 인터넷(네트워크)만 가능하면 어디서든 요청
-
클라우드 서비스 모델
- SaaS (Software as a Service) : 사용자가 특정 어플리케이션을 그대로 사용만 하는 방식 (ex.구글드라이버 등)
- PaaS (Platform as a Service) : 사용자가 플랫폼을 이용해서 어플리케이션 개발/테스트
운영체제까지 구성해서 제공하는 방식 - 개발자가 테스트용으로 자주 사용
- IaaS (Infrastructure as a Service) : 사용자에게 리소스를 제공 (CPU/RAM/DISK)
리소스를 할당해놓고 사용자는 할당된 리소스를 활용하여 직접 시스템을 만드는 방식
클라우드 서비스 종류
- Public Cloud : AWS, Azure, GCP등 (하드웨어,보안 등 관리X)
사용자가 관리하는 것 없이 비용지불 후 리소스 사용.
보안구성 - 공급업체에서 담당, 보안문제 발생하면 많은 사용자가 영향을 받게 됨.
→ 시스템 내부적으로 보안 규정 등을 별도로 적용할 필요가 있음.
장점 : 사용자측면에서 관리 범위가 작다.
- Private Cloud : 오픈스택 등
직접 관리해야해서 복잡하고 어려움
초기 구축 비용이 많이 든다 (고용에 의한 인건비 등)
유지 비용은 상대적으로 적다.
보안 위험에 대해 관리자의 역량에 의존하게 됨. (우수할수도, 취약할수도)
- Hybrid Cloud : 두 가지를 혼합한 방식
오픈스택 : 오픈소스 클라우드 소프트웨어
Dashboard : 웹기반의 그래픽환경 관리방식
Openstack : 명령어 방식
RESTful API : http 기반의 애플리케이션을 통한 통신방식 - 서비스간의 연동에서 주로 사용
핵심 서비스
- Keystone : 사용자 인증
- Nova : 인스턴스를 생성/관리
- Glance : 이미지 관리
- Horizon : 대시보드 ( 웹 인터페이스 ) 관리 방법 제공
- Swift : 오브젝트 스토리지 관리 서비스
- Cinder : 블록 스토리지 관리 서비스 (디스크)
- Neutron : 네트워크 관리 서비스
- Heat : 오케스트레이션 서비스 (리소스 관리)
- Ceilometer : 데이터 미터링 서비스 사용량 측정 및 과금 정책 수립
gnocchi : 시계열 데이터베이스
aodh : 알람 서비스
panko : 메타데이터 저장
- Magnum : 컨테이너를 관리하는 서비스