개요개발환경으로 여러대의 온프레미스를 proxmox 서버로 하이퍼바이저를 구성하여 다양한 개발환경으로 사용중에 있다.오늘 비상전력 작업이 있어, 시스템 재기동을 함께 진행하였는데 proxmox가 재기동 후 몇몇 VM들이 실행되지 않는 현상이 발생하였다. 이에 proxmox VM 실행 오류 2가지의 해결 방법에 대해 알아보겠다. 1. VM is locked (snapshot)현재 100 VMID의 VM이 잠금 표시가 나타나며 실행되지 않는 상황이다.정확하게는 "VM is locked (snapshot)” 라고 에러가 나타나며 VM이 실행되지 않는데, 이는 표기 그대로 VM이 잠금 상태가 되었기 때문이다.주로 스냅샷 작업 도중 시스템이 중단되거나 재시작된 경우 발생할 수 있다고 한다.proxmox 서버에 ..
VMware vSphere 란? VMware 가 vSphere라는 이름을 붙이기 시작한 것은 버전 4부터이다. vSphere로 이름을 바꾸면서 vSphere를 클라우드 기반으로 만드는 클라우드 OS라고 정의했다. 기존 VI3의 하이퍼바이저 + 관리 툴 만으로 VMware가 생각하는 비전을 이루기에 부족하다고 생각했는지 이를 지원하는 패키지 여러가지 제품을 묶어서 패키지 형식으로 만든 것이 바로 vSphere 이라고 생각하면 된다. vSphere 6에 이르면서 호스트에서 지원하는 스펙 및 성능은 나날히 증가하여 현재는 vSphere의 핵심 하이퍼바이저인 ESXi 호스트의 메모리는 12TB까지 지원하며 CPU는 480개, 클러스터 구성 시 호스트는 64개까지 지원한다. 또한, 하나의 VM에서 지원하는 vCP..
하이퍼바이저를 이해하기 위해서는 운영체제의 유저 모드와 커널 모드를 이해해야한다. 그리고 가상화와 연관된 유저 모드와 커널 모드를 이해하기 위해서는 x86 CPU의 Protection Ring 모드를 이해해야 한다. 이는 유저모드와 커널모드가 RIng 모드의 전환과 밀접한 관계가 있기 때문이다. 베이메탈에 윈도우 OS, 리눅스 OS를 설치하면 하드웨어 - 운영체제 라는 2개의 층이 형성된다. OS가 설치되면 하드웨어의 주소를 직접 다루는 부분과 어플리케이션을 다루는 부분이 분리된다. OS에서 하드웨어를 직접 핸들링할 경우에 다루는 모드를 커널모드라고 부른다. 일반적 사용자 측면인 어플리케이션 측면에서 핸들링 하는 부분을 유저모드라고 한다. 가상화를 도입하게 되면 이 부분에서 문제가 발생하게 된다. 물리 ..
CPU의 인스트럭션 실행 (링(RIng) 구조) 전가상화와 반가상화를 이해하기 위해서는 링 구조에 대한 이해가 필요하다. 필요한 분량의 하드웨어 자원을 할당하기 위해 x86서버는 4개 (RIng 0-3)의 특권 명령을 운영체제와 어플리케이션 제공한다. 링 번호가 낮을수록 높은 권한을 가진 명령을 실행할 수 있다. 현재 가상화는 대부분 x86 서버에서 이루어지고 있다. x86 서버는 가상머신 hosted 방식과 다르게 하드웨어 위에서 곧바로 가상머신을 운영할 수 있게 디자인 되었기 때문에, 가상머신들은 그들 스스로가 컴퓨팅 하드웨어를 통제하고 있다고 여긴다. 응용프로그램은 Ring 3에서 실행되고, 운영체제는 Ring 0 에서 특권 명령 (privleged mode)을 사용하여 필요한 컴퓨팅 자원에 접근이..
하이퍼 바이저를 직역하면 ‘ 무언가를 뛰어넘는 가리개 막 ‘ 위키백과에서의 하이퍼바이저의 정의: 하이퍼바이저는 **호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼**을 말한다. 가상화 머신 모니터 (Vurtual Machine Monitor, VMM) 라고 부른다. 헬멧 등에서 바이저 : 여닫을 수 있는 부분 베어메탈(bare-metal)은 말 그대로 헐 벗은 금속이라는 의미이다.(의역하면 빈 깡통) 빈 깡통이니 OS가 설치되기 전의 서버라고 생각하면 된다. 옛날에는 이 서버에 OS를 직접 설치했으나 x86 서버 자체가 유닉스 서버 대비 중요도가 덜한 서비스에 사용되다 보니 OS 사용률이 평균 10%를 넘어서는 일이 많지 않았다. x86 가상화를 구현하는 핵심이 바로 하이퍼바이저고..
x86 가상화를 이해하기 위한 기초 지식 0. x86 가상화란? *x86 가상화는 x86 기반의 게스트 운영체제 (윈도우, 리눅스) 가 하이퍼바이저라고 하는 가상화 레이어 위에서 구동하는 방식이다. *x86은 80 x 86 이라는 인텔이 개발한 마이크로프로세서 계열을 통창하여 부르는 말이며, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조를 일컫는 말이다. x86 아키텍쳐는 CISC(Complex Instrucetion Set Computer) 기반으로 되어 있는데 CISC란 소프트웨어 특히, 컴파일러 작성을 쉽게 하기 위해 하드웨어화 할 수 있는 것은 가능한 모두 하드웨어에게 맡긴다는 원칙 아래 설계된 컴퓨터이다. 이에 반해 유닉스 시스템은 RISC(Reduced Instruction Set C..