使用OpenVZ构建Linux虚拟化解决方案

日期: 2009-09-15 作者:Sander van Vugt翻译:李哲贤 来源:TechTarget中国 英文

现在多数的主机虚拟系统是基于管理程序的(hypervisor-based),而基于容器的虚拟化(container-based)技术提供了另外一种虚拟化的途径。通过在一台物理机上创建并运行多个独立的容器,所有的容器都运行在预先安装的主操作系统之上,管理员可以在容器中创建虚拟机(VM)。每个虚拟机的运行都是独立于其他容器中的虚拟机,通过这样的方式保障虚拟机的安全性。开源程序OpenVZ使用的就是这种虚拟机技术。

  OpenVZ实现虚拟化的方式完全不同于其他的开源虚拟化产品(如Xen和KVM)。跟其他虚拟化技术相比而言,OpenVZ有一点限制要求:宿主机(host)和子系统(guest)都必须运……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

现在多数的主机虚拟系统是基于管理程序的(hypervisor-based),而基于容器的虚拟化(container-based)技术提供了另外一种虚拟化的途径。通过在一台物理机上创建并运行多个独立的容器,所有的容器都运行在预先安装的主操作系统之上,管理员可以在容器中创建虚拟机(VM)。每个虚拟机的运行都是独立于其他容器中的虚拟机,通过这样的方式保障虚拟机的安全性。开源程序OpenVZ使用的就是这种虚拟机技术。

  OpenVZ实现虚拟化的方式完全不同于其他的开源虚拟化产品(如Xen和KVM)。跟其他虚拟化技术相比而言,OpenVZ有一点限制要求:宿主机(host)和子系统(guest)都必须运行Linux,子系统可以支持不同版本的Linux。基于容器虚拟化技术的商业化产品Parallels Virtuozzo Containers就是在OpenVZ的原理基础上实现的。

  这种实现方式最大的优势就是它的性能。在OpenVZ中,所有通讯都是在Linux系统之间完成的,因此不需要复杂的翻译和转化过程。同时,它的安装方式也从根本上保证了高安全性,因为在不同的容器之间实现了完全的独立性。

  安装

  OpenVZ可以运行在Red Hat 和 Debian等主流Linux操作系统之上,目前还不支持Ubuntu。如下的安装过程是OpenVZ在Red Hat Linux系统下实现的。在64位操作系统中,安装过程支持通过Yum或RPM安装包的方式来完成。

  1. 下载OpenVZ安装包:在开始安装前,下载库源文件(repository file),并把下载的文件放在"/etc/yum.repos.d"目录下。您可以使用如下的wget命令来下载库源文件。

  wget http://download.openvz.org/openvz.repo

  使用下面这条命令,您可以加载库源文件中的GPG key 校验码:

  rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ

  2. 安装OpenVZ内核。OpneVZ提供了不同的内核方式供选择,选择哪种内核取决于您的硬件条件及您将要创建的容器数量。首先是SMP内核,用于对称式多处理器环境。支持高达到4GB的RAM及10到20个容器。第二种是"entnosplit" 内核,这种内核支持PAE (Physical Address Extension)技术,可以支持到高达64GB的RAM及10到30个容器。最后一种是Enterprise内核,这种方式同时支持SMP和PAE,是多容器环境的最佳配置,最多可以同时运行20到30个容器。当在32位操作系统中安装OpenVZ时,选择合适内核形式对您而言是非常重要的。

  如果您是在64位操作系统环境中安装,选择SMP内核就可以满足所有的需求。因为在64位的系统中不存在操作系统只能支持4GB缓存的限制(PAE技术本身就是为了解决缓存限制的问题)。如果您使用的64位操作系统,通过如下命令来安装内核:

  yum install ovzkernel-smp

  现在,OpenVZ内核已经安装并被自动加载到GRUB配置中。重启之后,OpenVZ内核会自动加载运行。

  3. 在重启之前,您需要设置几个sysctl参数。请确保在列表1中设计涉及的所有参数设置都已经保存在"/etc/sysctl.conf"文件中

  列表1 :. 在 /etc/sysctl.conf文件中需要配置的参数:

  net.ipv4.ip_forward = 1
  net.ipv6.conf.default.forwarding = 1
  net.ipv6.conf.all.forwarding = 1
  net.ipv4.conf.default.proxy_arp = 0
  net.ipv4.conf.all.rp_filter = 1
  kernel.sysrq = 1
  net.ipv4.conf.default.send_redirects = 1
  net.ipv4.conf.all.send_redirects = 0

  4. 确保SELinux选项是关闭的。您可以通过在"/etc/sysconfig/selinux"文件中设置如下的值来关闭该选项:

  SELINUX=disabled

  5. 安装OpenVZ工具。用如下命令来实现:

  yum install vzctl vzquota

  6. 编辑"/etc/vz.conf"文件。如果您计划在虚拟机中使用的IP地址和宿主机的IP地址不在一个地址段中,就需要确保该文件包含如下参数:

  NEIGHBOUR_DEVS=all

  7. 重启系统,OpenVZ内核将激活。

  该系列的下一章将举例说明如何在OpenVZ中创建一个虚拟操作系统环境。

翻译

李哲贤
李哲贤

TT虚拟化特约作者

相关推荐