如何在RHEL/CentOS Linux下设置OpenVZ

时间:2020-01-09 10:42:56  来源:igfitidea点击:

实际上可以在CentOS下运行超过Linux操作系统实例和不同Linux发行版的实例。
如何使用OpenVZ虚拟化来优化Dell服务器的使用率,并创建运行Debian,Ubuntu和CentOS Linux的测试Linux VPS?
如何在CentOS/RHEL Linux下部署OpenVZ?

OpenVZ虚拟化使用容器的概念在同一硬件上仅运行Linux实例。

OpenVZ是一种操作系统级别的虚拟化技术。
它允许物理服务器运行多个隔离的不同Linux发行版操作系统实例,这些实例称为容器或者虚拟专用服务器(VPS)或者虚拟环境(VE)。
它与OpenVZ相似,没有真正的虚拟机管理程序(例如XEN或者VMware)的开销,因此运行仅Linux的VPS非常快速且高效。
所有虚拟服务器将使用相同的Linux内核版本。

它提供了强大的隔离性。
这对于在每个容器中运行named,mysqld,apache和其他服务是完美的。
每个VPS是一个单独的实体,其行为就像物理服务器一样。
每个VPS具有:

OpenVZ虚拟化和隔离

容器(VPS)环境的控制系统。
主机系统可以访问所有可用的硬件资源,并且可以控制VPS环境内部和外部的进程。
主机系统与VPS的重要区别之一是,对主机系统的进程没有实施适用于VPS内超级用户进程的限制。
服务器上方是主机节点。

  • 系统文件(例如/bin,/sbin,/lib等);
  • 自己的root用户以及其他用户和组;
  • 流程树;
  • 网络(专用或者公用IP;
  • 共享内存,信号量,消息。

我们的示例设置(HostNode)

Server: Dual Core CPU with Software RAID1 and 2GB RAM
eth0: Public IP 123.1.2.3
venet0: venet used by OpenVZ to talk with rest of the LAN or Internet.
Hostname: hostnode01.theitroad.com.
vps.theitroad.net: 123.1.2.5 - can run any supported Linux distribution.

主机节点

主机节点的别名。
换句话说,CT0或者VE0表示服务器本身。
在CT0/VE0中,您可以使用vzctl和其他工具来管理容器。

CT0或者VE0

进程,用户或者其他软件,其对资源的访问受到OpenVZ软件的限制。

VPS就是一个孤立的程序执行环境,外观和感觉就像一个单独的物理服务器。
每个VPS都有文件系统,root用户,其他用户,文件系统,防火墙设置,路由表等等。
您可以在单个物理服务器上设置多个VPS。
不同的VPS可以运行不同的Linux发行版,例如Gentoo,Debian,CentoS,Fedora Linux等,但是所有VPS都在同一Linux内核下运行。

VPS或者VE(虚拟环境)或者虚拟机

每个VPS都有一个唯一的编号,称为CTID(ConTainers IDentifer)。

CTID由服务器管理员定义,用于创建,启动,停止,重新启动,删除VPS和与您的VE相关的其他管理作业。

CTID

您可以使用标准Linux配额工具限制VPS磁盘使用。
例如将vps.theitroad.net磁盘使用率设置为仅10Gb。
您也可以使用inode数量设置配额。

VPS磁盘配额

每个VPS通过考虑VPS的CPU优先级和可由主机节点上的服务器管理员设置的限制设置,从内核获取时间片。

VPS用户(包括vps根用户)无法修改此设置。
标准的Linux调度程序使用标准的进程优先级来决定将VPS分配给哪个进程。

公平的CPU调度程序

每个VPS都遵循一组用户bean计数器。
它不过是每个VPS的一组限制和保证。

Beancounter确保没有单个VPS可以滥用整个主机节点受限的任何资源,从而对其他VPS造成损害。
核算和控制的资源主要是内存和各种内核对象,例如IPC共享内存段,网络缓冲区等。

Beancounters UBC参数单位

Beancounter值用法
lockedpages不允许以页为单位交换出内存(被mlock()系统调用锁定)。
shmpages特定VPS的进程在页面中分配的共享内存(包括IPC,共享匿名映射和tmpfs对象)的总大小。
privvmpages应用程序分配的私有(或者潜在私有)内存的大小。在不同的应用程序之间始终共享的内存不包括在该资源参数中。
numfile所有VPS进程打开的文件数。
numflock所有VPS进程创建的文件锁定数。
numpty伪终端的数量,例如ssh会话,screen或者xterm应用程序等。
numsiginfosiginfo结构的数量(实际上,此参数限制了信号传递队列的大小)。
dcachesize锁定在内存中的dentry和inode结构的总大小。
physpagesVPS进程使用的RAM的总大小。当前,这是一个仅会计参数。它显示了VPS对RAM的使用情况。对于由几个不同的VPS使用的内存页面(例如,共享库的映射),仅页面的相应部分会向每个VPS收费。
numiptentIP数据包过滤条目的数量。

VPS模板

VPS模板不过是用于创建新VPS的镜像。
模板是一组程序包,而模板缓存是安装了这些程序包的chroot环境的存档(压缩文件)。
每个Linux发行版均作为模板提供。

默认位置

  • /vzOpenVZ的主目录。
  • /vz/private每个VPS都存储在此处,即容器私有目录
  • /vz/template/cache您必须在这里下载并存储每个Linux发行模板。
  • /etc/vz/OpenVZ配置目录。
  • /etc/vz/vz.conf主要的OpenVZ配置文件。
  • /etc/vz/conf每个VPS配置的软链接目录。
  • "网络端口" OpenVZ内核未打开任何网络端口。

使用OpenVZ虚拟化

现在,您已经了解了OpenVZ所使用的基本术语,是时候开始使用OpenVZ了。
您可以在基于CentOS/Red Hat和基于Debian Linux的服务器系统上运行OpenVZ。