说明
OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。 OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。
OpenVZ 在主机行业被使用很多年,依然在茁壮发展。作为一种操作系统级别的虚拟化技术,运行 OpenVZ 没有硬性的硬件要求。OpenVZ 能够创建被称为容器(containers)的虚拟化环境。这些虚拟机没有完全隔离。OpenVZ 其中的一项功能就是:它简单并且几乎没有任何硬性开销。有使用资源限制的虚拟机(如内存或硬盘),但这些限制都并不是死板的。所以,你可以分配更多的资源给实际可用的虚拟机。这也是 OpenVZ 的弱点之一,它很容易超售。
不管你喜欢与否,OpenVZ是一项很好的技术,它完美的创建了一种虚拟的环境,几乎没有任何硬性开销。但是,你会用它做为 VPS 提供商吗?
本教程就是安装 OpenVZ 的指南:你需要在一台最小化安装CentOS 64位(RedHat)操作系统的独立服务器上来安装 OpenVZ,至少2个IP地址(同一子网),还有一些时间。
OpenVZ由于其快速部署和非常高的密度而在托管行业中广受欢迎,它可以实现这一点,因为主机内核与ram,cpu和磁盘一起与guest虚拟机共享,并且guest虚拟机和主机I / O之间有相当基本的分隔瓶颈几乎不存在。
与KVM和Xen相比,就磁盘访问速度和磁盘延迟而言,OpenVZ显然是赢家,但这是以缺乏分离度为代价的,同时也缺乏1个用户OS对两者的影响力。主机节点和其他用户,主机节点对所有单个进程都是可见的,并且您无法加密数据。
OpenVZ仅支持Linux(除非使用商业并行将以某种方式支持Windows)
OpenVZ也可以嵌套在Xen或KVM内以实现更大的密度,由于可以在单个主机节点上运行的容器数量众多,这使OpenVZ的价格比KVM和Xen更具竞争力。
总结:OpenVZ易于配置和入门。另外,由于它是一个容器化系统,因此OpenVZ的开销要低得多,因此提供商可以从单个物理服务器中配置更多的VPS。相比前两种OpenVZ有个最大的弊病,使用这种虚拟化技术的主机商往往超售十分严重,严重的几乎难以想象。可能你买的主机刚开始运行很流畅,可是使用一段时间则出现各种奇奇怪怪的问题,可能就是主机商超售引起的。
安装 OpenVZ
建议为虚拟机(默认是/vz目录)分配一个单独的分区上,并格式化为ext4文件系统。
下载 openvz.repo 文件到/etc/yum.repos.d/ 目录下
wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo
导入 OpenVZ GPG key 用于签名 RPM 包
rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ
开始安装
OpenVZ 现已支持 Linux 3.x内核,但目前仍在用着2.6.x的内核。
yum -y install vzkernel
至此,OpenVZ 就已经安装完毕了。这时候,不能重启机器。
确认 /etc/sysctl.conf 配置文件中的内容跟下列的一致:
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
同时,禁止SELinux,运行命令:
echo "SELINUX=disabled" > /etc/sysconfig/selinux
还需要安装一些额外的软件包:vzctl,用于管理虚拟机;vzquota,用于控制硬盘容量分配;ploop,用于 OpenVZ 的文件系统管理。
执行以下命令:
yum -y install vzctl vzquota ploop
到这一步完成后,重启机器。系统会自动加载 OpenVZ 内核(默认选择),启动完成后,检查是否正确安装内核:
uname -a
会输出类似以下结果:
Linux hostname 2.6.32-042stab081.8 #1 SMP Mon Nov 05 17:50:24 MSK 2013 x86_64 GNU/Linux
其中字符串“042stab081.8”代表着 OpenVZ 版本号,理应是 OpenVZ 官网上的最新版。
创建虚拟机(container)
创建一个虚拟机并不难,不过在这之前,需先下载 OpenVZ 官网上的一些操作系统的模版放在/vz/template/cache/下,请注意,下载回来的文件以tar.gz结尾,无需解压。
OpenVZ 官网提供的模版下载地址:
http://openvz.org/Download/template/cache
这些模板包括:CentOS、Debian、Fedora、openSUSE、Ubuntu,都是常见的 Linux 发行版。
创建并启动一个虚拟机,只需运行以下命令:
vzctl create CTID --ostemplate osname
vzctl set CTID --ipadd a.b.c.d --save
vzctl set CTID --nameserver a.b.c.d --save
vzctl start CTID
这里的 CTID 是一个正整数ID,osname 是系统模版的名称,a.b.c.d是分配的 IP 地址,nameserver 是域名服务器(通常用Google的公共DNS服务器8.8.8.8)。
举例如下:
vzctl create 101 –ostemplate centos-6-x86
vzctl set 101 –ipadd 192.0.2.1 –save
vzctl set 101 –nameserver 8.8.8.8 –save
vzctl start 101
到这里,一个虚拟机(container)就创建好了。
刷新已创建的虚拟机,执行:
vzctl exec CTID ps ax
进入虚拟机,执行:
vzctl enter CTID
退出虚拟机,输入exit即可。
停止虚拟机,执行:
vzctl stop CTID
删除虚拟机,执行:
vzctl destroy CTID
对虚拟机的使用资源进行限制,则编辑/etc/vz/conf/CTID.conf即可。每个已创建的虚拟机都会有各自的配置文件。一般默认配置是256MB内存,512MB vSwap,2GB硬盘空间。