서버 가상화 · 4 min read · Jan 18, 2026
OpenVZ On Debian Etch For Webservers
OpenVZ On Debian Etch For Webservers
Introduction
가상화는 멋집니다! 서버에 대한 좋은 관행으로, 보안을 강화하고, 확장 가능하며, 교체 가능하고, 복제 가능하게 만듭니다. 이 모든 것이 약간의 복잡성을 추가하는 대가로 이루어집니다.
이 가이드는 2개의 듀얼 코어 옵테론(64비트), 2개의 동일한 디스크(RAID용) 및 많은 메모리를 갖춘 Supermicro 머신을 설치하는 동안 작성되었습니다. 왜 OpenVZ를 선택했는지, XEN이나 최근 KVM 커널 모듈이 아닌 이유는 무엇일까요? XEN은 64비트 아키텍처에서 그리 안정적이지 않으며(아직), 복잡성으로 인해 상당한 오버헤드가 발생합니다(각 VM은 자체 커널을 실행합니다). KVM은 매우 간단하지만 커널을 하나의 프로세스로 실행해야 하므로 VM이 멀티코어 시스템의 이점을 누릴 수 없습니다.
OpenVZ에서는 호스트 환경과 모든 VM에 대해 단일 커널만 실행되므로 설정이 간결하고 웹 서버에 적합한 후보가 됩니다.
Install the hosting system
먼저 Etch를 설치합니다(설치 프로그램을 사용하여 RAID를 설정해야 합니다).
루트에서 불필요한 디렉토리와 링크를 제거하고 싶을 수 있습니다(가이드의 나머지 부분도 루트로 진행합니다):
cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/이제 OpenVZ가 활성화된 커스텀 커널을 컴파일하려고 합니다. OpenVZ 사이트의 이 가이드를 따랐습니다. 우리가 한 작업의 간단한 개요:
apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # 이 명령은 확인이 필요할 수 있습니다.
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # 다음 줄에서 필요합니다.
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub그런 다음(부팅 시 올바른 커널로 기본값을 설정하기 위해 /boot/grub/menu.lst를 약간 수정했을 수 있습니다) 재부팅할 수 있습니다.
재부팅 후 OpenVZ가 활성화된 커널을 사용하여 모든 것이 작동하는지 확인합니다:
ifconfig # 인터페이스와 추가 "venet" 인터페이스가 나열되어야 합니다.
cat /proc/vz/* # 몇 가지가 표시되어야 합니다(아직 무엇이 표시되는지는 그리 중요하지 않습니다).
cat /proc/cpuinfo # CPU가 작동하는지 확인합니다.
cat /proc/mdstat # RAID 작동 중
lsmod # "vz"로 시작하는 모듈이 표시되어야 합니다.Make Virtual Private Servers (VPSs)
이제 기본 최소 템플릿에서 VPS를 설정하고 시작합니다(/var/lib/vz/template/cache에서 찾을 수 있습니다):
vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # 메모리를 할당합니다. CHECKME
vzctl start 101
vzctl exec 101 passwd그런 다음 VPS에 연결할 수 있습니다:
ssh 10.0.0.101, 그리고 다채로운 프롬프트를 주목하세요…
이 템플릿은 Sarge(3.1) 템플릿이며, Etch(4.0)로 변경하고 싶습니다. VPS에 root로 로그인한 후 다음을 수행합니다:
nano /etc/apt/sources.list # 호스트(Etch) 설치의 sources.list와 일치하도록 편집합니다.
aptitude update
aptitude dist-upgrade이제 새로운 VPS를 사용해 보고, 작업 가능하게 만들고, 나중에 추가 VPS의 기초로 사용할 시스템이므로 원하는 패키지를 설치합니다.
다음으로 방금 사용자 정의한 VPS에서 템플릿을 생성합니다. 이는 간단한 작업입니다:
vzctl stop 101 # 중지합니다.
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # 키를 제거합니다(첫 부팅 시 새 키가 생성됩니다).
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .Borat가 말했듯이: “좋아요! 마음에 들어요!”
이제 이전과 같이 약간 수정하여 추가 VPS를 설정하고 실행할 수 있습니다:
vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # 메모리를 할당합니다. CHECKME
vzctl start 102
vzctl exec 102 passwd그리고(네, 흥미로운 변화가 많지 않다는 것을 압니다)…
vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # 메모리를 할당합니다. CHECKME
vzctl start 103
vzctl exec 103 passwd그리고 첫 번째 VPS(vzctl start 101)를 시작합니다. 템플릿의 기초로 사용하기 위해 오프라인 상태로 두었으니 기억하세요.
이제 3개의 VPS가 실행 중입니다. vzlist로 테스트해 보세요, 출력:
VEID NPROC STATUS IP_ADDR HOSTNAME
101 5 running 10.0.0.101 test101.mytest.org
102 5 running 10.0.0.102 test102.mytest.org
103 5 running 10.0.0.103 test103.mytest.orgVPS는 메모리가 필요합니다. 기본적으로 너무 적게 할당되므로 VPS 구성 파일(/etc/vz/conf/*.conf)에서 vmguarpages, oomguarpages, privvmpages 등을 합리적인 값으로 설정하십시오. 페이지는 4Kb에 해당합니다. VPS를 너무 제한하여 발생하는 오류는 다음을 실행하여 확인할 수 있습니다:
vzctl exec 101 cat /proc/user_beancountersUBC(사용자 비안전 계수)의 마지막 열은 0만 포함해야 하며, 그렇지 않으면 일부 장벽과 한계를 높여야 합니다. 개별 옵션에 대한 자세한 내용은 OpenVZ 문서를 참조하십시오.
이제 VPS에서 아파치, 포스트픽스 등을 설정할 수 있습니다… 행운을 빕니다!
아래는 제 /etc/vz/conf/101.conf 파일입니다. 별로 좋지 않지만, 사용자 비안전 계수에서 오류가 발생했기 때문에 값을 무작정 높였습니다.
cat /etc/vz/conf/101.conf# Copyright (C) 2000-2006 SWsoft. All rights reserved.
#
# 이 프로그램은 자유 소프트웨어입니다. GNU 일반 공중 라이선스의 조건에 따라 재배포 및 수정할 수 있습니다.
# 이 라이선스의 버전 2 또는 (선택에 따라) 이후 버전의 조건에 따라 배포됩니다.
#
# 이 프로그램은 유용할 것이라는 희망으로 배포되지만,
# 어떠한 보증도 없이, 상품성 또는 특정 목적에 대한 적합성에 대한 묵시적 보증 없이 배포됩니다. GNU 일반 공중 라이선스의 세부 사항을 참조하십시오.
#
# 이 프로그램과 함께 GNU 일반 공중 라이선스를 받았어야 하며, 그렇지 않으면 자유 소프트웨어 재단에 문의하십시오.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
VERSION="2"
ONBOOT="yes"
# UBC 매개변수(장벽:한계 형태)
# 기본 매개변수
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# 보조 매개변수
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# 보조 매개변수
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# 디스크 쿼타 매개변수(소프트 한계:하드 한계 형태)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# CPU 공정 스케줄러 매개변수
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.