이전 글에서 가상화와 하이퍼바이저에 대해서 알아보았다.

 

하이퍼바이저는 다시 가상화 방식에 따라 Full Virtualization과 Para Virtaulization으로 분류된다.

 

Full Virtualization (전가상화)

하드웨어를 완전히 가상화하는 방식이다. 전부 가상화하기 때문에 Guest OS가 Host 시스템과 완전히 분리되어 실행된다. 따라서 Guest OS는 자신이 VM의 OS인지 인지하지 못한다. 그러므로 Guest OS는 하이퍼바이저의 존재를 알 필요가 없다.

 

Hardware와 Guest OS 사이에 Hypervisor가 분명 존재하지만, VM 입장에서는 가상화된 하드웨어를 진짜(물리) 하드웨어로 생각하고 있기 때문에, 실제 물리 자원에 대해 요청을 보낸다고 생각하게 된다. 원래 system call에 의해 App → Kernel → Hardware 순서로 서비스를 요청하는데, 이 과정을 하이퍼바이저 단에서 처리해 주는 것이다. 하이퍼바이저 관리용 가상머신이 실행되며, 모든 가상머신들의 하드웨어 접근이 해당 관리 머신을 통해 이루어진다.

 

Hardware Assisted Full Virtualization vs Software Assisted Full Virtualization

Full Virtualization을 구현하는 방법을 하드웨어 지원 전가상화소프트웨어적 전가상화로 나뉜다. 사실 전가상화는 하드웨어 지원 전가상화와 동일한 개념으로 언급된다.

 

하드웨어 지원 전가상화의 경우, Trap과 Emulation을 이용해 Guest OS의 Application이 직접 하드웨어의 리소스를 요청해 사용하는 구조이다.

 

소프트웨어적 전가상화를 처리하는 경우, Binary Translation을 이용해 각 단계에서 모든 명령에 대해 일일히 가상화하는 방법으로 진행된다.

 

Dual-mode operation

OS는 Dual-mode operation(이중 동작 모드)라는 것을 지원한다. 사용자와 OS는 시스템 자원을 공유하는데, 사용자가 메모리 내의 주요 자원들을 망가뜨릴 수 있기 때문에 이를 보호하고자 마련된 장치이다.

이중 동작 모드는 사용자모드와 커널모드로 구성되어 있다.

사용자가 사용하는 application이 사용자모드에서 작동되거나 OS에게 system call을 하는 경우, 커널모드로 바꿔 요청된 서비스를 실행한 후에 다시 사용자모드로 전환되는 구조이다.

 

Trap & Emulation

일단 pass

 

Binary Translation

Guest OS는 다양한 종류의 OS가 올라갈 수 있기에, 가상화된 하드웨어 요청을 할 때 OS마다 인터페이스가 각기 다르다. 이런 다양한 형식을 하나의 형식으로 번역해주는 작업 Binary Translation이라고 한다. 당연히 이 과정에서도 오버헤드가 발생한다.

 

 

 

Para Virtualization (반가상화)

Full Virtualization의 경우 거쳐야 할 단계가 많아 오버헤드가 발생하며, 성능이 느려진다. 그래서 이를 해결하고자 Para Virtualization이 등장했다.

반가상화의 핵심은 Hypercall이다. 반가상화에 사용되는 Guest OS는 Hypercall이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청을 날린다. 방식은 사실 OS에서 application이 kernel에게 system call로 서비스를 요청하는 방식과 동일하다. 요청을 날리는 주체가 Guest OS이고, 받는 대상이 하이퍼바이저라는 점이 다를 뿐이다.

 

 

전가상화에서 Guest OS는 자신이 Guest OS인지 모른다. 하지만 반가상화에서는 Guest OS가 Hypervisor에 직접 Hypercall을 날려야 되므로, 자신이 Guest OS라는 사실을 인지해야 한다. 따라서 반가상화 하이퍼바이저에 올라가는 Guest OS는 커널을 수정해, Guest용 OS를 따로 만들어야 한다.

 

 

정리

하이퍼바이저 가상화(Type1)

  • 전가상화 : Guest OS의 수정이 필요없도록 하드웨어 전체를 가상화하는 기술
  • 반가상화 : Guest OS를 수정하여 특정 명령이 수행될 때 Hypercall을 호출하여 하이퍼바이저가 실행되도록 하는 기술

 

 

 

 

 

 

 

참고링크

가상화 (Virtualization)

가상화란?

쉽게 말하면, 물리적인 하드웨어를 논리적으로 구분하는 것

 

서버의 CPU와 메모리 등의 자원을 최대한 활용할 수 있는 방법을 생각했을 때, 간단하게 생각하면 동시에 여러 개의 서버를 한번에 올리면 되지 않을까 싶다. 하지만, 서로 영향을 받게 되고, 보안 문제나 서버가 다운되면 모든 서비스가 중단되는 위험이 있다. 그래서 가상화의 개념이 등장하였다.

 

VM과 컨테이너

가상화의 핵심은 Isolation이다. 논리적으로 격리가 제대로 이루어지면, 각각의 가상 환경에서 문제가 생겨도, 다른 영역에 영향을 미치지 않는다.

 

가상화는 크게 2가지 유형으로 나뉘는데, 가상머신(vm)과 컨테이너(container)이다. 클라우드 환경에서 서비스를 운영하고자 한다면 꼭 알아두어야 하는 개념이다.

가상화 관점에서 두 개의 차이점을 간단하게 설명하자면, 가상머신은 하이퍼바이저를 이용하여 리소스 전체를 가상화하는 방법이고, 컨테이너는 OS 수준에서 프로세스를 컨테이너 형태로 격리하는 방법이다.

 

두 방식은 차이점이 확실하여 그에 따른 장단점도 분명하기 때문에, 각각의 기술에 대한 배경과 철학을 이해하면 좋을 것이다. 이번에는 하이퍼바이저 가상화에 대해 다루어보겠다.

 

 

하이퍼바이저 (Hypervisor)

하이퍼바이저란?

가상화에서 계속 하이퍼바이저라는 단어를 언급했는데, 하이퍼바이저란 대체 무엇일까?

 

  • 가상 머신(VM)을 생성하고 구동하는 소프트웨어
  • 가상 머신 모니터(VMM)라고도 불림
  • 하이퍼바이저 운영 체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원함
  • 서로 다른 여러 개의 운영 체제를 나란히 구동할 수 있음

 

아직 잘 이해가 안 된다면, Hypervisor라는 이름을 뜯어보자!

In general, operating systems are referred as supervisors.
As a hypervisor software is a supervisor of a “supervisor”, it is called hypervisor.

일반적으로 운영체제를 supervisor라고 부르는데, 하이퍼바이저는 supervisor의 supervisor라고 한다.

 

 

Type 1 vs Type 2

가상화는 크게 Type1와 Type2로 분류된다.

Type1 방식은 Native 혹은 베어메탈(Bare Metal)형 하이퍼바이저 가상화라고도 부른다. 베어메탈이란 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태이다. Type1은 베어메탈 하드웨어 위에 직접 설치되어 구동된다. ESX-i(vmware), Xen, KVM, XenServer(citrix), Hyper-V(Microsoft) 등이 있다. 하이퍼바이저는 전가상화와 반가상화로 나뉜다.

 

Type2 방식은 Host 가상화라고 부른다. 베어메탈 하드웨어 위에 Host OS가 설치되고, 그 위에 하이퍼바이저가 실행되는 형태이다. 테스트 환경을 구성할 때 자주 사용하는 Oracle VirtualBox나 VMware Workstation이 여기에 해당된다.

 

Type2 방식 Host OS라는 하나의 레이어가 더 존재하므로, 성능 면에서 Type1이 Type2보다 유리하다. 실제 IDC 클라우드화 시키는데 사용되는 하이퍼바이저도 모두 Type1 방식이다.

 

 

 

 

 

 

참고링크

인프라 엔지니어가 갖춰야 할 것

도큐먼트 읽는 힘 기르기

새로운 하드웨어와 소프트웨어를 도입할 때마다 도큐먼트를 읽어야 함

업그레이드를 할 때 구 버전과 신 버전을 비교해야 함

치명적인 버그가 있어서 최신 버전이 공개되었다면 도큐먼트를 읽은 후 도입을 검토해야 함

 

카탈로그 읽는 힘 기르기

하드웨어와 소프트웨어를 선택할 때 카탈로그를 참고함

각 전문 용어의 의미를 이해하고, 각각 기기에 어느 정도의 성능이 있는지 파악해야 함

자신이 담당하는 서브에 어느 기종이 가장 적절한지 판단해야 함

 

 

 

소규모 인프라와 대규모 인프라

소규모 인프라

  • IT 인프라의 모든 것을 적은 인원이 다룸
  • 기획, 설계, 장비 구입, 구축, 운영까지 모두 경험할 수 있음
  • 비용 대비 효과를 위한 장비 튜닝 기회

 

대규모 인프라

  • IT 인프라를 많은 인원이 분담해서 구축, 관리함
  • 개인의 업무 범위가 한정된 만큼 특정 분야에 대한 고급 스킬이 필요함
  • 외부 업체와 외주업자를 최대한 활용하고, 어떤 수단을 쓰더라도 시스템이 정지하지 않도록 안정적인 운영 필요
  • 소규모 인프라에서 다루지 않는 하드웨어나 솔루션 사용
  • 영업과 오퍼레이터 등에 대한 지시 경험을 해볼 수 있음

 

 

 

인프라 엔지니어 육성

기술적 호기심이 높은 사람

  • 새로운 주제를 계속 던져주면 호기심을 연결되어 기술력이 향상됨
  • 자신의 성장과 비교해서 주위의 성장이 더딘 것에 불만을 가질 수 있음
  • 지도자로서 주위 사람의 기술 수준을 끌어 올리는 역할을 담당하게 하거나, 주위에 신경 쓰지 않고 더욱 기술력 향상을 목표로 삼도록 하기

 

기술적 호기심이 낮은 사람

  • 기술을 업무를 위한 수단으로 보기 때문에 어디까지나 업무의 일환으로 기술을 습득하도록 하는 게 효과적
  • 다양한 일을 경험하게 한 다음 이론 강의나 자격시험처럼 체계적인 지식 학습 하기

 

일반론

  • 사람은 어떤 일을 잘할 수 있게 되면 그 일이 점점 더 좋아짐
  • 다양한 일을 시켜보고 적성에 맞는 중신으로 교육하면 동기 부여가 잘 된 엔지니어로 성장할 수 있음

 

솔루션

여러 장비를 효율적으로 관리하기 위해서 감시 솔루션을 이용

 

감시 솔루션

형태는 2가지로 나뉜다.

  • SNMP(Simple Network Management Protocol)를 이용하는 형태
  • 각 서버에 에이전트 프로그램을 설치해서 그 자료를 수집하는 형태

 

종류

  • 오픈 소스
  • 상용 소프트웨어

 

나기오스 Nagios

2002년 에탄 갈스타드를 중심으로 개발되어 역사가 오래되고 국내에 많은 사용자가 있음

신뢰도가 높고 자유로운 커스터마이징 가능

 

  • 웹 설정 화면이 없고, 설정을 텍스트 파일로 저장
  • 장애 발생 이력을 텍스트 파일로 저장
  • 감시 설정은 플러그인으로 추가함. 플러그인은 직접 만들 수도 있고, 전용 커뮤니티에 공개되어 있음

https://www.nagios.org/

 

Nagios - The Industry Standard In IT Infrastructure Monitoring

Nagios provides enterprise-class Open Source IT monitoring, network monitoring, server and applications monitoring. Download Nagios Today!

www.nagios.org

 

자빅스 Zabbix

2001년 공개된 라트비아 공화국의 자빅스 SIA사가 개발하는 성능 감시 솔루션

다른 감시 시스템에는 없는 고급 감시, 경고, 가시화 기능을 가지고 잇음

 

  • 서버 및 네트워크 디바이스의 오토 디스커버리
  • 로우 레벨 디스커버리
  • 중앙 웹 관리 인터페이스로부터의 분산 감시
  • 폴링과 트래핑 지원
  • 서버 운영체제로는 리눅스, 솔라리스, HP-UX, AIX, FreeBSD, OpenBSD, OS X 지원
  • 고성능 전용 에이전트
  • 에이전트 없는 감시
  • 암호화로 보호된 사용자 인증
  • 유연한 사용자 퍼미션 관리
  • 웹 인터페이스
  • 사전 정의된 이벤트를 메일 기반의 유연한 경고 기능으로 통지
  • 감시 대상 리소스의 고급 표시 기능
  • 감사 로그

https://www.zabbix.com/

 

Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

Zabbix is a mature and effortless enterprise-class open source monitoring solution for network monitoring and application monitoring of millions of metrics.

www.zabbix.com

 

캑타이 Cacti

2001년 이안 베리가 공개하고, 현재는 The Cacti Group이 관리하는 감시 솔루션

오픈 소스 웹 기반 네트워크 모니터링 및 그래프 도구 

MTRG라고 불리는 감시 솔루션의 대체 도구로 유명함

 

캑타이를 사용하려면 다음과 같은 오픈 소스 필요

  • Cacti
  • RRDTool
  • NET-SNMP
  • APM(Apache, PHP, MySQL)

https://www.cacti.net/

 

Cacti® - The Complete RRDTool-based Graphing Solution

About Cacti Cacti provides a robust and extensible operational monitoring and fault management framework for users around the world. Is also a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functiona

www.cacti.net

 

자산 관리 도구

회사 조건에 맞는 도구를 사용

자체 개발하거나 불편함을 감수하고 엑셀이나 액세스를 통해 관리하기도 함

 

 

배포 시스템

여러 서버에 동시에 같은 소스 코드와 설정 파일 등을 배포할 때 사용

배포 자체는 리눅스에서는 rsync 명령 윈도우에서는 robocopy 명령 사용

배포 이력 관리를 위해 배포 시스템을 만들거나 배포 기능에 특화된 오픈 소스를 이용할 수 있음 (Saltstack 같은)

 

 

보안

서버 단위 보안 대책 : 백신 등의 소프트웨어를 서버에 설치

IT 인프라 전체에서 하는 대책 : LAN 내에 방화벽이나 IDS(Intrusion Detection System, 침입 감시 시스템)를 설치

 

 

퍼실리티 관리 시스템

데이터 센터의 물리적 환경을 감시하는 시스템

서버 랙의 온도와 각 랙의 전기 사용량, 다양한 세서를 실시간으로 감시하고 관리

 

 

스토리지 관리 시스템

스토리지를 집중적으로 관리하는 시스템

각 스토리지의 가동 상황이나 사용 상황을 감시

가상 스토리지를 동적으로 생성하고 용량을 확장/축소, 삭제

 

 

 

보안

전체적인 관점에서

인프라 전체의 보안 수준을 항상 파악하여 취약성을 발견하는 즉시 대책 세우기

실시간으로 컴퓨터 바이러스, 부정 침입, 외부로부터의 공격 감지하기

 

기업의 보안 대책은 직접적인 이익을 낳는 것이 아니므로 투자 대비 효과 계산이 어려움

보험과 같은 개념

완벽한 상태란 없음

 

기업이 지키고자 하는 것이 무엇인지 명확히 해야함

 

일반적으로 지켜야 할 정보

  • 고객 데이터 전반
  • 매출 정보
  • 각종 문서
  • 각종 소스 코드
  • 직원 데이터 전반

 

보안 방법

  • 보안 담당자와 서버 담당자의 연계
  • 외부 보안 업체 활용
  • 데이터 해시화 암호화

3장. 운영체제

 

리눅스

  • 레드햇 계열 : RHEL, CentOS, Fedora, Vine Linux, Scientific Linux, Oracle Linux 등
  • 데비안 계열 : Debian, Ubuntu, KNOPPIX, Linux Mine 등

윈도우 서버

  • 윈도우 서버에서 실행되는 소프트웨어를 사용할 때
  • 닷넷(.NET) 프레임워크를 사용할 때
  • 액티브 디렉터리 환경을 사용할 때

유닉스

  • 대부분 엔터프라이즈 서버용으로 사용
  • AIX, Solaris, HP-UX

+ Recent posts