管理OpenVZ服务器(III)

大家好。 今天,我们将继续本系列文章中有关行政管理的内容 OpenVZ的。 在 以前的帖子 我们涵盖了与 安装 由OpenVZ。

因此,如果一切顺利,我们应该已经拥有服务器 OpenVZ的 已安装并准备开始使用它。

今天我们将讨论与行政管理有关的一切 集装箱,包括其创建以及配置和管理。

创建容器

MGI 集装箱 o 电动车 它们是我们将通过服务器创建和管理的虚拟环境(虚拟机) OpenVZ的。 为了创建它们,我们需要一个模板。

MGI 模板 它们是用来构建容器的模型。 它们包含系统和某些基本应用程序运行所需的各种程序包,以及用于构建和配置计算机的所有元数据(模板高速缓存)。

有不同的模板 分布 de Linux。 其中一些是官方维护的,其他是社区的贡献。

获得它们的最简单方法是使用以下方法之一 预先创建的模板。 通过从模板创建容器,然后将其打包到文件中来获得这些文件 gzip。

这些压缩文件将是我们要下载的文件,并从中创建自己的容器。 这样,容器的创建比过去必须手动生成缓存的情况要快得多,容易得多。 您今天要做的就是从此页面下载所选发行版本的文件:

http://openvz.org/Download/template/precreated

下载后,我们将其保存在服务器的以下目录中:

/vz/template/cache

现在我们可以创建我们的 集装箱 从已安装的模板中。 首先要记住的是,每个容器都有一个与之关联的数字ID,用于标识VE,并且它不能在同一物理主机中重复。

而且,该ID必须大于100,因为系统使用的ID是0到100。

要管理容器,最重要的命令是 vzctl。 以下语法用于创建新容器:

#vzctl create --ostemplate template --config config_file

在ostemplate中,我们放置了之前下载的模板的名称。 config参数是可选的。 在其中放入具有容器预定义配置的文件名。

如果未指定,则必须手动放置。 配置文件位于:

/etc/sysconfig/vz-scripts

文件名具有以下结构:

ve-nombre_config.conf-sample

最常见的是 basic (ve-basic.conf-sample)。 我们可以使用默认创建的那些,也可以使用我们自己创建的那些。 无论如何,以后可以修改所有指定的值。

例如,要从我们之前下载并使用基本配置的debian模板中创建一个ID为101的容器,我们执行:

#vzctl create 101 --ostemplate debian-6.0-x86 --config basic

容器配置

现在我们已经创建了容器,我们可以继续配置它。 为此,我们使用以下语法:

#vzctl set --parametro valor --parámetro valor […]

我们可以配置许多参数。 要咨询他们,我们都可以阅读vzctl手册(#man vzctl) 或者 openvz维基.

为了更改它们,它们在关闭系统后仍然保留,我们必须在命令末尾添加–save。 如果不是,它将仅持续到下一次关闭。

在这里,我们将解释一些最基本的命令:

将容器配置为在计算机启动或不启动时启动。
onboot [yes/no]

指定计算机的主机名
hostname

将IP地址添加到设备。 它们是累积添加的。
ipadd

如果要删除任何先前配置的文件,则必须使用:
ipdel dir_ip|all

配置DNS服务器的地址。 您可以在同一命令中多次使用此选项来配置多个服务器。 这样做将覆盖所有先前配置的名称服务器。
nameserver

设置系统用户密码。 如果不存在,请创建它。 建议不要与其他参数一起使用。 不需要使用 save 使用此参数。

userpasswd user:password

指示机器启动时的启动顺序。 数字越高,优先级越高。 如果未配置,则认为它具有最低优先级,并且配置的所有其他容器将首先启动。

bootorder

最后,我以容器101基本配置的执行为例

#vzctl设置101 --onboot是-主机名虚拟主机--ipadd 192.168.1.10-名称服务器8.8.8.8-名称服务器4.4.4.4-保存#vzctl设置101 --userpasswd根:1234

集装箱管理

创建并配置容器后,就可以对其进行管理。 为此,我们将再次使用vzctl命令。 下面列出了一些用于管理容器的基本命令:

启动容器
#vzctl start ID

停止容器
#vzctl stop ID

停止容器而不等待其所有进程停止
#vzctl stop ID --fast

它告诉我们容器的状态
#vzctl status ID

销毁容器。 在必须停止它之前。
#vzctl destroy ID

您可以通过命令行输入机器,就好像ssh已访问我们一样。
#vzctl enter ID

在容器内运行命令。
#vzctl exec ID comando

列出服务器上活动的容器。 使用-a选项还会列出被拘留者。
#vzlist

今天就这些。 至此,我们完成了行政管理的最基本部分 OpenVZ的.

在接下来的几篇文章中,我们将讨论更高级的过程,例如资源管理,执行 备份 或使用 循环.

在此之前,您可以尝试我们到目前为止已解释的所有内容。 与往常一样,在评论中留下您的任何问题并很快见。 寿命长,繁荣。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   拉夫

    优秀的文章! 😉

    1.    神崎666

      非常感谢!。 我很高兴能够发表这些文章。 我将继续努力,并尽我所能进行协作。 寿命长,繁荣。

  2.   OCZ

    关于OpenVZ的非常有趣的文章。 让我们看看您是否鼓励我尝试一下,我对此事已经关注了很长时间。 在这里,我留下一些评论:

    我完全不了解OpenVZ的工作原理,我的主要问题之一就是为什么必须为每台机器手动设置网络配置。 不能让它从DHCP服务器获取它吗? 也就是说,是否可以授予MAC +网桥,然后由机器进行自我管理以获取网络配置? (因为在我已经阅读过的有关OpenVZ的文章中,始终将其配置为IPv4,但是IPv6呢?)

    此外,如果我必须静态配置网络设置,那么在计算机“内部”进行操作有什么问题? 从主机分配主机名又是什么? 简而言之,这对我来说似乎是多余的和多余的,我想知道为什么有必要或建议这样做。

    顺便说一句,我不知道您是否打算讨论这个主题,但是我会对一篇有关使用OpenVZ的安全性和隐私性的文章感兴趣。 在VirtualBox中,除非我要通过网络或共享文件夹,否则我不会互相“看到”主机,也不会与主机“看到”主机。 例如,我想知道使用OpenVZ设置蜜罐会带来什么风险。 我将其作为一种想法进行评论,以备您撰写。

    1.    神崎666

      我很高兴您喜欢这些帖子,并鼓励您尝试使用OpenVZ。 您将看到它非常易于管理。

      关于您的疑问,大多数与我们尚未谈论的事情有关。 但我会给您一些介绍来解决它们。

      您必须知道的第一件事是,在OpenVZ中,网络有两种类型的配置。 可以使用Venet或veth。 第一个类似于专用网络,也就是说,只能从容器和物理主机进行访问。 在网络上其他计算机看来,它们似乎不存在。 另一方面,veth是虚拟网卡,它使容器像网络上的另一台计算机一样工作,并且可以被其他计算机访问。 它还允许使用更高级的选项,例如使用DHCP或从容器内部进行网络配置。

      关于IPv6,两种模式都支持它。 您可以将ipadd命令与ipv6地址配合使用而不会出现问题。 当然,使用venet并不是所有功能都能正常工作。 由于venet卡没有关联的MAC,因此邻居发现或路由器通告之类的功能不起作用。

      我认为,关于必须在外部配置特性这一事实,这是简化管理员工作的一种方式。 它使您可以轻松更改特性,并且几乎可以轻松实现自动化。 而且,正如我在文章中提到的那样,您可以创建自己的配置模型以从中创建机器,从而消除了许多麻烦。

      最后,关于安全性,强烈建议使用OpenVZ创建蜜罐。 OpenVZ完全将容器与物理系统隔离开,并且对攻击者而言是真实的。 所有这些都以非常低的资源消耗实现。 这是构建蜜罐的绝佳选择(尽管有一些更简单且针对性强的选择)。

      希望我能解决您的疑问。 如果您有任何其他或任何您想让我讲的主题,请不要犹豫。 再见。 寿命长,繁荣。

  3.   加布里埃尔

    您好,本系列的帖子非常好,我想咨询以下内容:我正在尝试还原一些在Ubuntu Server主机上运行的OpenVZ容器(一些.tar文件)的备份,它们是通过以下操作完成的命令:

    vzdump –挂起ID –mailto root –dumpdir /备份/文件

    该主机具有以下版本:vzctl版本3.0.22
    现在的想法是能够在CentOS 6服务器上还原这些容器。创建新的VM时,我没有问题,但是找不到还原这些备份的方法(在CentOS上,我具有以下版本:vzctl version 4.7.2)

    我读过这个:
    https://openvz.org/Quick_Installation_CentOS_6
    http://wiki.centos.org/HowTos/Virtualization/OpenVZ
    http://www.howtoforge.com/installing-and-using-openvz-on-centos-6.4-p2
    当然,这将是一个帖子😉

    从我所看到的大多数信息中,他们谈到了使用vzrestore或vzdump –restore,但是我无法使还原工作。 (我在CentOS 6中没有vzrestore,在vzdump中也没有–restore标志)当然,由于对该主题的经验不足,某些事情正在逃避我me

    问题来了:
    可以做我想做的吗? 有障碍吗?
    怎么做呢? 我应该以某种方式安装vzrestore吗?
    推荐或阅读?

    感谢您的贡献,问候

    1.    神崎666

      嗨,谢谢您的评论。

      关于您的问题,原则上应该没有问题。 实际上,我记得我很久以前就遇到过这种情况,当时我解决了。 但是现在我无法访问我制作的文档,并且由于我有一段时间没有接触它了,所以我不记得了。 但是请不要失望,我将在稍后安装带有OpenVZ的计算机,稍后我将为您解决。 因此,顺便说一句,也许我会回到这一系列的帖子,我对此有些遗弃。

      寿命长,繁荣。

      1.    加布里埃尔

        感谢您的回答,如果您能看到它,我将不胜感激。
        (此外,可能出现在主题上的新帖子肯定非常有用)

        引起我注意的一件事是,在我安装的CentOS 6.5中,这些是它安装的工具:
        vzcalc,vzcptcheck,vzctl,vzdqdump,vzeventd,vzifup-post,vzmemcheck,vznetaddbr,vzoversell,vzquota,vzstats,vzubc,vzcfgvalidate,vzcpucheck,vzdqqcheck,vzmigt-vzratezvzmigplznet,vzmigt-vzmigplznet

        通过遵循官方文档中的步骤: https://openvz.org/Quick_Installation_CentOS_6
        在我在vzdqdump人中看到的标志中,我没有–restore标志。 我还看到在vzctl男人中我有一些标志–snapshot *,但我不知道这是我要查找的还是确切地使用它们。

    2.    神崎666

      好吧,在与openvz和其文档极其丰富的内容进行斗争之后,我想我终于明白了。 您实际上需要使用vzdump随附的vzrestore。 但是在CentOS中并没有安装它们,您必须手工完成。 这个过程有点复杂(刚好足以让您的头撞到键盘),所以我在我最近打开的我的博客上临时撰写了一篇文章。

      网址是: https://kamisama666.github.io/2014/07/instalacion-vzdump-centos6/

      希望我能帮上忙,您会告诉我情况如何。 哦,而且,正如您所问的那样,“快照”选项仅适用于ploop类型的容器,这是与openvz中通常使用的存储形式不同的形式。 更有趣的是“ suspend”和“ restore”,它们能够保存容器的状态并在以后还原它(但不,它与vzdump不兼容)。 无论如何,看看我是否重新发帖并谈论这些事情。

      寿命长,繁荣。

      1.    加布里埃尔

        你不知道我对那篇文章的赞赏。 在星期一,我将尝试并告诉您,我希望您继续就此主题发表新的系列文章。 当然,我将分享您的帖子,以确保其他人肯定会觉得有用。😉问候,我将告诉您星期一的情况。

    3.    神崎666

      Me aligro de que te haya servido de ayuda. De hecho, ya que tenía el post hecho, he aprovechado y lo he publicado también en desdelinux para que lo vea más gente. Lo puedes encontrar aquí:

      https://blog.desdelinux.net/vzdump-instalarlo-centos-6-5/

      长寿和繁荣

  4.   克里斯多

    朋友,我在执行配置步骤时遇到问题,问题是在配置新VM的计算机上可见,但在网段却看不到,例如:

    我有一个网段1。*,我的主机A有1.50,新的VM B有1.201,我可以从机器A看到B,但是从连接到同一网络的另一台计算机看不到,

    你可以说明我失败的原因

  5.   达里奥

    出色的文章,它对我有很大帮助,现在是一个查询,我已经在生产一个带有debian-7模板的容器,并且我想将其更新为同一容器的debian-8,我该怎么办?

    1.    神崎666

      您好,非常感谢。 我已经断开与OpenVZ的连接一段时间了,但我会尽力为您提供帮助。

      首先,我将告诉您,如果可能的话,请考虑创建一个比Debian 8模板新的容器,并逐渐将数据和配置从旧容器迁移到新容器。 然后,您只需要将旧计算机的IP放入新的IP地址即可。 这是最简单的方法。

      另一方面,如果由于某种原因无法做到这一点,那么从理论上讲,可以像在任何其他Debian机器上一样从容器本身内部更新发行版。 但是我听说过对此有问题的人,因此首先尝试将其与任何其他容器一起使用。 如果您有问题,这里有两个站点(如何用英语)谈论如何解决它们:

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://forum.openvz.org/index.php?t=msg&goto=51280&
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit

      尤其要看一下第一个,它是最新的,它会逐步为您解释所有内容。

      当然,在生产中对容器进行任何更改之前,我甚至不必告诉您对容器进行冷或热备份(以防万一)。

      希望能对您有所帮助。 寿命长,繁荣。

    2.    神崎666

      您好,非常感谢。 我已经断开与OpenVZ的连接一段时间了,但希望能对您有所帮助。

      首先,如果没有什么可以阻止的,我建议您使用Debian 8模板创建一个新容器,然后在其中迁移所有配置,数据和软件。 一旦一切正常,您只需要更改旧容器的IP并将其放入新容器中即可。 实际上,这是最简单,最快的方法。

      如果由于某种原因您无法执行此操作,则理论上可以从容器本身内部更新发行版。 您只需要像在普通Debian机器上那样做即可。 但是我听到有问题的人的声音,尽管如果您保持主机内核的更新不会发生这种情况。 无论如何,您能做的最好的事情就是尝试使用debian 7用另一个容器进行更新,以确保它不会出现问题。 如果有任何发现,这里有一些页面讨论如何修复(英语):

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit
      http://forum.openvz.org/index.php?t=msg&goto=51280&

      第一个特别有趣,它是最新的,并逐步解释了所有内容。

      即使这样,我也不必告诉您,无论您决定如何,在生产容器中不做任何事情,而不必先进行热备份或冷备份,以防万一。

      希望对您有帮助。 长寿和繁荣

      1.    达里奥

        感谢您的回复,帮助非常好,我将阅读本文并进行一些测试,然后再告诉您哪个是最好的问候。

  6.   雷蒙霉素

    您好,我在openvz容器中出现错误,找不到任何逻辑。 看到带有部分评论的博客,我在这里启动查询,以防有人可以帮助我。

    我已经毫无问题地安装了openvz并没有问题地创建了容器,在其中一个容器中安装了一个简单的Web服务并进行了访问。

    事实是,当尝试执行更新时,例如:»apt-get update»,这告诉我它与存储库ips没有任何关系,并且不下载任何内容,因此我无法更新或安装新软件包。 如果您对这些ip进行ping操作,我会错过什么吗?

    提前致谢

    1.    雷蒙霉素

      再喂。

      我花了很长时间回答,但是很久以前我找到了解决方案,所以我不想把它搁浅。

      问题主要是我不是很聪明,通常是大多数问题的根源,我有一个nateo将通过端口80到达的所有内容重定向到反向代理,在执行apt-get更新时,它启动了它,但是响应被重定向到上述团队,正确配置iptables即可解决问题,一切顺理成章,这是合乎逻辑的。

      感谢您在OpenVZ上的输入,它帮助我很好地配置了它

      PS:我了解到更新是通过端口80完成的,我想我会使用1000中的任意一个...

      问候。