OpenVZ
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
OpenVZ는 리눅스 커널을 수정하여 가상화 환경을 제공하는 기술이다. 가상화, 격리, 자원 관리, 체크포인트 기능을 제공하며, 하이퍼바이저 방식의 가상화 기술보다 오버헤드가 적고 더 많은 환경을 가동할 수 있어 VPS(가상 사설 서버)에 활용된다. OpenVZ는 컨테이너 내에서 자체 리소스를 가지고 격리된 환경을 제공하며, 2단계 디스크 할당 제한, CPU 스케줄러, I/O 스케줄러, 사용자 빈 카운터 등의 자원 관리 기능을 제공한다. 또한, 체크포인트 및 실시간 마이그레이션 기능을 통해 컨테이너를 중단 없이 다른 서버로 이동할 수 있다. OpenVZ는 단일 Linux 커널을 사용하므로 Linux 환경에서만 사용 가능하며, 하드웨어 접근에 제한이 있고, 일부 VPN 기술만 지원하는 등의 한계가 있다.
더 읽어볼만한 페이지
- 자유 가상화 소프트웨어 - LXC
LXC는 리눅스 커널의 cgroup과 네임스페이스 격리 기능을 이용하여 운영 체제 수준의 가상화를 제공하는 기술로, IBM 연구원들이 개발했으며 보안 강화 및 LXD 컨테이너 관리자 프로젝트를 통해 발전해왔다. - 자유 가상화 소프트웨어 - 커널 기반 가상 머신
커널 기반 가상 머신(KVM)은 리눅스 커널의 가상화 확장 기능으로, CPU와 메모리 가상화를 지원하며 QEMU와 함께 완전한 가상화 솔루션을 구성하고 다양한 관리 도구를 제공한다. - 시스템 소프트웨어 - 유틸리티 소프트웨어
유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다. - 시스템 소프트웨어 - 가상 사설 서버
가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다. - 자유 소프트웨어 - 김프
김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다. - 자유 소프트웨어 - PHP
PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
| OpenVZ - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 개요 | |
| 이름 | OpenVZ |
| 종류 | 운영 체제 수준 가상화 |
| 개발 | |
| 개발자 | Virtuozzo 및 OpenVZ 커뮤니티 |
| 지원 기업 | 페러럴스 |
| 출시 | |
| 첫 출시일 | 2005년 |
| 최신 안정 버전 출시일 | 2016년 7월 25일 |
| 최신 버전 | 7.0 |
| 기술 정보 | |
| 프로그래밍 언어 | C |
| 운영 체제 | 리눅스 |
| 플랫폼 | x86, x86-64 |
| 라이선스 | |
| 라이선스 | GNU GPL v.2 |
| 웹사이트 | |
| 웹사이트 | OpenVZ 공식 웹사이트 |
| 기타 | |
| 상태 | 중단됨 |
2. 역사
(이전 출력이 없으므로, 수정할 내용이 없습니다. 원본 소스가 제공되면 해당 소스를 기반으로 '역사' 섹션을 작성할 수 있습니다.)
하이퍼바이저형(하드웨어 레벨) 가상화 소프트웨어인 VMware나 Xen에 비해 오버헤드가 적어, 더 많은 가상 환경을 가동시킬 수 있다. 이러한 특징 덕분에 가상 사설 서버 (VPS) 사용 비용을 절감할 수 있다.
3. 특징
OpenVZ는 체크포인트와 라이브 마이그레이션을 지원하여, 가동 중인 게스트 OS(컨테이너)를 다른 머신으로 옮길 수 있다. simfs를 사용하는 경우 메모리 내용 등만 저장되고 파일 시스템 내용은 저장되지 않지만, ploop을 사용하면 스냅샷을 찍어 파일 시스템 내용을 복원하거나 변경 차이만 관리할 수 있다.
RHEL 5 버전에서는 가상 메모리 단위로만 메모리 제한을 설정할 수 있었지만, RHEL 6 (Linux 커널 2.6.32)부터는 cgroups 개발이 진행되어 VSwap[10]을 사용할 수 있게 되었다. 이를 통해 물리 메모리나 스왑 메모리에도 제한을 걸 수 있다. 컨테이너 내에서 물리 메모리가 고갈되어 스왑 메모리를 사용하기 시작해도, 호스트의 물리 메모리가 남아있으면 바로 디스크에 쓰기가 시작되지 않고, 인위적으로 컨테이너 속도를 늦춰 스왑 아웃을 에뮬레이트한다. 호스트의 물리 메모리가 고갈되었을 때 비로소 디스크에 쓰기가 시작된다.
3. 1. 가상화 및 격리
OpenVZ는 가상 환경(Virtual Environments, VE) 지원을 위해 수정된 리눅스 커널을 사용한다. 이 커널은 가상화, 격리, 자원 관리, 체크포인트 등을 지원한다. 각각의 VE는 각 가상화 단위로 분리되며, 각각의 물리적 하드웨어를 가진 서버와 같이 작동한다. 각 컨테이너는 별개의 개체이며 실제 서버와 거의 동일하게 작동하며 다음과 같은 기능을 갖는다./proc 및 /sys, 가상화된 잠금 등을 제공한다.init부터 시작). PID는 가상화되어 init PID가 1이 된다.iptables) 및 라우팅 규칙을 가질 수 있다.3. 2. 자원 관리
OpenVZ의 자원 관리는 2단계 디스크 할당량, 공정 CPU 스케줄러, 디스크 I/O 스케줄러, 사용자 빈 카운터(User Beancounters)의 네 가지 구성 요소로 이루어진다.[4][5] 이러한 자원은 컨테이너 실행 중에 변경될 수 있어 부팅할 필요가 없다.
| 파라미터 | 설명 |
|---|---|
| numproc | 프로세스 수 |
| numtcpsock | TCP 소켓 수 |
| numothersock | TCP 이외의 소켓 수 |
| vmguarpages | 메모리 보장 페이지 수 |
3. 3. 체크포인트 및 라이브 마이그레이션
실시간 마이그레이션 및 체크포인팅 기능은 2006년 4월 중순에 OpenVZ용으로 출시되었다. 이를 통해 컨테이너를 종료하지 않고 한 물리 서버에서 다른 물리 서버로 컨테이너를 이동할 수 있다. 이 프로세스는 체크포인팅이라고 알려져 있다. 컨테이너는 정지되고 전체 상태가 디스크의 파일에 저장된다. 이 파일은 다른 머신으로 전송될 수 있으며 컨테이너는 거기서 정지 해제(복원)될 수 있다. 지연 시간은 대략 몇 초이다. 상태가 일반적으로 완전히 보존되기 때문에 이 일시 중지는 일반적인 계산 지연처럼 보일 수 있다.[10]4. 다른 가상화 기술과의 비교
VMware, Xen, KVM과 같은 가상화 기술은 전체 가상화를 제공하여 여러 운영 체제와 다른 커널 버전을 실행할 수 있지만, OpenVZ는 단일 Linux 커널을 사용하므로 Linux만 실행할 수 있다. 모든 OpenVZ 컨테이너는 동일한 아키텍처 및 커널 버전을 공유한다. 이는 게스트가 호스트와 다른 커널 버전을 필요로 하는 상황에서는 단점이 될 수 있다. 그러나 진정한 하이퍼바이저의 오버헤드가 없기 때문에 매우 빠르고 효율적이다.[1]
OpenVZ의 메모리 할당은 소프트 방식으로 이루어지며, 한 가상 환경에서 사용되지 않은 메모리는 다른 환경이나 디스크 캐싱에 사용될 수 있다. 이전 버전의 OpenVZ는 공통 파일 시스템을 사용했지만, 현재 버전의 OpenVZ는 각 컨테이너가 자체 파일 시스템을 가질 수 있도록 허용한다.[2]
하이퍼바이저형(하드웨어 레벨) 가상화 소프트웨어인 VMware나 Xen에 비해 오버헤드가 적다고 여겨지며, 가동시킬 수 있는 환경의 수가 더 많다. 더 고밀도화할 수 있기 때문에 가상 사설 서버(VPS) 사용에 있어서 비용 절감을 꾀할 수 있다.
체크포인트와 라이브 마이그레이션에도 대응하고 있다. 게스트 OS(컨테이너)가 가동 중인 채로 다른 머신으로 옮길 수 있다. simfs를 이용하는 경우, 메모리 내용 등만 저장되고, 파일 시스템 내용은 저장되지 않지만, 파일 시스템에 ploop을 사용한 경우에는 스냅샷을 찍을 수 있으며, 그 경우 파일 시스템 내용을 복원하거나 변경 차이만 관리할 수 있다.
RHEL 5 버전에서는 가상 메모리 단위로만 메모리 제한을 걸 수 있었지만, RHEL 6에서 Linux 커널 2.6.32가 되면서 cgroups 개발이 진행되어 VSwap[10]을 사용할 수 있게 되었고, 물리 메모리나 스왑 메모리에도 제한을 걸 수 있게 되었다. 컨테이너 내에서 물리 메모리가 고갈되어 스왑 메모리를 사용하기 시작해도, 호스트의 물리 메모리가 남아있는 경우에는 실제로 바로 디스크에 쓰기가 시작되는 것이 아니라, 인위적으로 컨테이너의 속도를 늦춰 스왑 아웃을 에뮬레이트하고, 정말로 호스트의 물리 메모리가 고갈되었을 때 처음으로 디스크에 쓰기가 시작된다.
5. 한계
OpenVZ는 컨테이너가 하드웨어에 독립적으로 작동하도록 컨테이너의 실제 물리적 장치에 대한 접근을 기본적으로 제한한다. OpenVZ 관리자는 디스크 드라이브, USB 포트,[6] PCI 장치,[7] 또는 물리적 네트워크 카드[8]와 같은 다양한 실제 장치에 대한 컨테이너 접근을 활성화할 수 있다.
`/dev/loopN`은 배포 환경에서 종종 제한되는데, 이는 루프 장치가 커널 스레드를 사용하기 때문에 보안 문제가 될 수 있기 때문이며, 이로 인해 디스크 이미지를 마운트하는 기능이 제한된다. 해결 방법은 FUSE를 사용하는 것이다.
OpenVZ는 PPP (PPTP/L2TP 등) 및 TUN/TAP를 기반으로 하는 일부 VPN 기술만 제공하도록 제한된다. IPsec은 커널 2.6.32부터 컨테이너 내에서 지원된다.
2007년에 EasyVZ라는 그래픽 사용자 인터페이스가 시도되었지만,[9] 버전 0.1 이상으로 발전하지 못했다. 버전 3.4까지는 Proxmox VE가 GUI를 갖춘 OpenVZ 기반 서버 가상화 환경으로 사용될 수 있었지만, 이후 버전에서는 LXC로 전환되었다.
6. 라이선스
OpenVZ는 GPL 버전 2에 따라 배포된다. 이 기술을 사용한 상용 소프트웨어로는 패럴렐즈가 판매하는 패럴렐즈 버츄오조 컨테이너 for Linux가 있다.
참조
[1]
웹사이트
Performance Evaluation of Virtualization Technologies for Server Consolidation
http://www.hpl.hp.co[...]
[2]
웹사이트
Ploop - OpenVZ Linux Containers Wiki
http://wiki.openvz.o[...]
[3]
웹사이트
OpenVZ turns 7, gifts are available!
http://openvz.livejo[...]
2013-01-17
[4]
웹사이트
vzctl(8) man page, CPU fair scheduler parameters section
https://openvz.org/M[...]
[5]
웹사이트
VSwap - OpenVZ Linux Containers Wiki
http://openvz.org/VS[...]
[6]
웹사이트
vzctl(8) man page, Device access management subsection
http://wiki.openvz.o[...]
[7]
웹사이트
vzctl(8) man page, PCI device management section
http://wiki.openvz.o[...]
[8]
웹사이트
vzctl(8) man page, Network devices section
http://wiki.openvz.o[...]
[9]
웹사이트
EasyVZ: Grafische Verwaltung für OpenVZ. Frontend für freie Linux-Virtualisierung
http://www.golem.de/[...]
[10]
웹사이트
VSwap - OpenVZ Linux Containers Wiki
http://wiki.openvz.o[...]
[11]
웹사이트
Install kernel from RPM on Ubuntu 10.04 - OpenVZ Linux Containers Wiki
http://wiki.openvz.o[...]
[12]
웹사이트
Install kernel from RPM on Debian 6.0 - OpenVZ Linux Containers Wiki
http://wiki.openvz.o[...]
[13]
웹사이트
Bug#642380: Cannot chkpnt (live migrate) VEs - linux.debian.kernel
https://groups.googl[...]
[14]
웹사이트
OpenVZ - Community Ubuntu Documentation
https://help.ubuntu.[...]
[15]
웹사이트
Official OpenVZ web site
http://openvz.org/
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com