部署Linux下OpenVZ虚拟化服务器(下)

日期: 2008-03-05 来源:TechTarget中国

  OpenVZ 虚拟化服务器主要原理

  1. OpenVZ 操作主要原理如下图:

  图 1: OpenVZ 技术主要原理图

  图-1假设您在网络内拥有多台相互连接的物理服务器。实际上,因为网络的实际需要,您可能只有单台独立服务器有效地使用OpenVZ。如果您拥有多个基于OpenVZ的物理服务器,每个服务器将拥有相似的架构。这些服务器被称为硬件节点(Hardware Nodes (或HN,或仅仅节点), 因为他们代表了网络内的硬件单元。OpenVZ以特定的方式安装在 FC3或FC4或Red Hat Enterprise 4。这种定制配置应该包括特定的 VZ分区,这是虚拟专用服务器所必需的分区,而且必须比根分区要大。OpenVZ安装允许您在启动时选择启动带有或不带有OpenVZ的Linux系统。这将在计算机启动项中增加OpenVZ这一选项,虚拟专用服务器(VPS)在功能上与独立的服务器完全一致,拥有自己的IP地址,进程,文件,用户,其自身配置文件,自身应用程序、系统库等。

  虚拟专用服务器(VPS)一起共享同一硬件节点和操作系统内核,但他们各自是完全隔离。对于进程和用户来说,虚拟专用服务器类似于“沙箱”。不同的虚拟专用服务器可以运行不同的Linux发行版本。每个VPS可以运行自己版本的Linux系统。在这里VPS 是基于某一种操作系统模板。操作系统模板随OpenVZ包一起发行。在您创建虚拟专用服务器之前,您应该在OpenVZ中安装相关的操作系统模板。如上图所示的OpenVZ Templates 。在至少安装了一个操作系统模板后,标准OpenVZ 程序的将协助您创建任何数目的VPS,在进行网络及其它设置配置之后,这些VPS使用起来和全功能的Linux服务器完全一样。

  OpenVZ是基于操作系统级的虚拟化的,它使用的技术与前面所介绍的有所不同。这种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能。

  模版是VPS的构建基石。操作系统模版是创建VPS 所需的包文件。模板通常基于硬件节点创建;您所需要的只是模板工具(vzpkg) 和模板元数据。模板元数据为创建操作系统模板提供了足够的数据,所需的包文件将从网络存储空间下载到硬件节点并安装在临时的VPS中。您可以执行VPS 内部的所有任务,包括创建和安装应用程序rpm 包,但OpenVZ提供了一种更高效的应用程序安装方式。和您在OpenVZ中使用操作系统模板一样,您可以创建应用程序模板,然后就可以将这些应用程序添加到任何虚拟专用服务器中(VPS)。如果您只需要在单个VPS上安装应用程序,那您就没有必要创建应用程序模板,只需要关注相关的VPS 即可。

  2. OpenVZ 配置

  OpenVZ允许您灵活配置不同的OpenVZ通用系统设置,同样也允许您配置单个虚拟专用服务器设置。这些设置包括:磁盘、用户使用配额,网络参数,默认文件存储位置以及配置样本文件等。OpenVZ使用两种类型的文件来存储配置信息:通用配置文件和VPS配置文件。OpenVZ和VPS在启动的时候会读取配置文件。不管是否修改相关配置文件, OpenVZ都允许您使用标准应用程序(例如vzctl) 修改很多配置并立即生效。

  3. 硬件节点有效性考虑

  硬件节点有效性比典型的PC服务器的有效性更加重要。由于运行多虚拟专用服务器并提供一系列的关键服务,所以硬件节点的故障将会导致非常惨重的损失。硬件节点故障所造成的损失和数台运行关键应用的服务器同时出故障没什么差别。为了增加硬件节点的有效性,我们建议您遵循以下建议:

  对关键的VPS 用户区域使用RAID存储。尽量选择硬件RAID。
不要在硬件节点运行软件。为BIND, FTPD,HTTPD等必需的服务创建专用的虚拟专用服务器。在硬件节点,您只需要SSH 守护进程。最好只接受特定的IP地址组的访问连接。
不要在硬件节点创建用户。您可以在虚拟专用服务器中创建尽可能多的用户,如果损害硬件节点意味着会损害所有虚拟专用服务器。

  在Linux 下配置OPENVZ 实例

  推荐使用Fedora Core 4/5/3 或者RHEL/CentOS 4。

  1. 下载安装文件

  根据您的内核版本在这里:http://openvz.org/download/kernel/ 下载。
# rpm -ihv vzkernel-name*.rpm

  2.修改grub.conf 文件

  title OpenVZ (2.6.8-022stab029.1) root (hd0,0) kernel /vmlinuz-2.6.8-022stab029.1 ro root=/dev/sda5 initrd /initrd-2.6.8-022stab029.1.img

  3.修改、etc/sysyctl.conf文件:

  /etc/sysctl.conf:
  # On Hardware Node we generally need
  # packet forwarding enabled and proxy arp disabled
  net.ipv4.ip_forward = 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
  #net.ipv4.tcp_ecn = 0
  # we do not want all our interfaces to send redirects
  net.ipv4.conf.default.send_redirects = 1

  4. 如果你运行了iptables防火墙和SELinux,先关闭和禁止。

  编辑/etc/sysconfig/selinux:
  SELINUX=disabled。
  另外还要关闭iptables防火墙。

  5.安装OpenVZ管理软件

  根据您的版本在这里:http://openvz.org/download/utils/ 下载。
  # rpm –Uhv vzctl*.rpm vzquota*.rpm vzpkg*.rpm

  6.重新启动VZ

  # /etc/init.d/vz start

  7.安装模板

  # rpm –ihv vztmpl-fedora-core-3-1.0-2.noarch.rpm
  # vzpkgcache
  Creating cache for fedora-core-3 OS template
  Setting up install process
  Packing cache file fedora-core-3.tar.gz …
  Cache file fedora-core-3.tar.gz [130M] created.

  8.为虚拟服务器创建一个非零ID

  # vzctl create 101
  Creating VPS private area: /vz/private/101
  VPS is mounted
  Postcreate action done
  VPS is unmounted
  VPS private area was created

  9.设置为零参数

  # vzctl set 101 –hostname test101.my.org –save
  Hostname for VPS set: test101.my.org
  Saved parameters for VPS 101
  # vzctl set 101 –ipadd 10.0.186.1 –save
  Adding IP address(es): 10.0.186.1
  Saved parameters for VPS 101
  # vzctl set 101 –nameserver 192.168.1.165 –save
  File resolv.conf was modified
  Saved parameters for VPS 101

  10.设置root用户口令

   # vzctl set 101 –userpasswd root:test

  11.启动SSH守护进程

  # vzctl exec 101 service sshd start

  12.启动VPS

  # vzctl start 101
  Starting VPS …
  VPS is mounted
  Adding IP address(es): 10.0.186.101 Hostname for VPS 101 set:   test.my.org
  VPS start in progress…

  13.加载防火墙

  前面关闭的防火墙,出于安全考虑这里还要加载

  # vzctl set 101 –iptables iptable_filter –iptables ipt_length –iptables ipt_limit –iptables iptable_mangle –iptables ipt_REJECT –save

  到此为止我们已经部署Linux 下OpenVZ 虚拟化服务器。另外还可以使用 vzlist 命令显示目前创建的 VPS,该命令与标准 Linux ps 命令类似。

 附录:Linux 下虚拟技术对比

 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

相关推荐