热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

通过ProxmoxVE实现KVM&OpenVZ虚拟化云计算

ProxmoxVE是一个基于DebianEtch(x86_64)版本的虚拟环境;它提供了一个可运行OpenVZ和KVM虚拟机的开源虚拟化平台。同时,其拥有一个强大的基于web界面的控制面板(这个控制面板包含了一个web化的图形控制终端,你可以通过这个终端,连接并使用虚拟机。使

Proxmox VE 是一个基于Debian Etch (x86_64) 版本的虚拟环境;它提供了一个可运行OpenVZ和KVM虚拟机的开源虚拟化平台。同时,其拥有一个强大的基于web界面的控制面板(这个控制面板包含了 一个web化的图形控制终端,你可以通过这个终端,连接并使用虚拟机。 使用Proxmox VE,你甚至可以通过控制面板创建虚拟主机集群,并且在远程的主机上创建和控制虚拟机。Proxmox VE,同时也支持把一个运行的虚拟机从一个主机中镜像到另一个。这个教程将向你展示如何使用Proxmox VE控制KVM和OpenVZ虚拟机,和怎样通过Proxmox VE创建一个小的计算机云。

我不能保证这篇文章对你完全有效。

1 前言

Proxmox VE是一个基于x86_64的版本,因此你不能把它安装到一个i386系统上。并且,如果你使用的是KVM,那么你的CPU就必须支持类似于Intel VT或者是AMD-V的硬件虚拟化技术,但是如果你想使用OpenVZ的话,就不需要CPU的支持了。

在这个教程中,我将创建拥有两个机器的小集群,Proxmox master(主机名 server1.example.com ip地址 192.168.0.100)和一个slave(主机名 server2.example.com ip地址 192.168.0.101),以方便我展示在线镜像和通过Proxmox VE在远程主机上创建并管理虚拟机的功能。当然,Proxmox VE在一台主机上也能够很好地运行。

2 在server1.example.com(Master)上安装Proxmox VE

从http://pve.proxmox.com/wiki/Downloads网站下载最新的Proxmox VE的ISO镜像,把这个镜像烧录成CD光盘,并在你的计算机上引导启动这个CD光盘。在启动时按ENTER键:

接受Proxmox的证书许可(GPL)

选择你想安装Proxmox的硬盘。在这里需要注意的是被选择的硬盘上所有已经存在的分区和数据都将会丢失!

选择你的国家,时区,和键盘布局:

输入一个密码(这是一个可以使你登陆shell和Proxmox Web管理界面的root密码)和你的Email地址:

现在我们就进入到了网络配置的阶段。输入主机名(例如server1.example.com),IP地址(例如192.168.0.100),子 网掩码(例如255.255.255.0),网关(例如192.168.0.1),和域名服务器(例如145.253.2.75):

然后,Proxmox就会被安装到计算机上了,安装过程将会使用LVM自动分区你的硬盘-这就是为什么在安装的过程中没有出现分区的对话框的原因。Proxmox使用LVM是因为它可以允许为虚拟机创建snapshot backups。

最后重启系统:

在server1主机重启过后,你就可以在浏览器中输入并打开http://192.168.0.100/-浏览器将会重新指向https://192.168.0.100/。

如果你使用的是Firefox 3在使用HTTPS时,Firefox会抱怨说没有self-signed certificate,因此你必须告诉Firefox接受这个证书-点击Or you can add exception…链接即可:

点击Add Exception…:

这时添加Security Exception的窗口就会打开,在这个窗口中,先点击Get Certificate按钮,然后Confirm Security Exception按钮:

 

然后,你就会看到Proxmox的登陆框,输入root用户名和你在安装Proxmox时候创建的密码:

下面就是Proxmox控制面板的界面:

3 通过添加一个Slave(server2.example.com)创建一个集群(可选择阅读)

(如果你想在一台主机上运行Proxmox的话,便可跳过本章节)

你可以通过把一个或者是多个Slave服务器添加到Proxmox master(server1.example.com)中来创建一个群集或者云计算。这样的集群允许你通过Proxmox的控制面板在远程主机上创建和 管理虚拟机。你甚至可以把一个运行的虚拟机从一个主机中镜像到另一个上去。

下面我将为你展示怎样添加第二个主机,server2.example.com,并创建一个群集。

首先在server2.example.com上也安装Proxmox,安装过程和在server1上类似.当你进入网络设置部分时,设置主机名为 server2.example.com,并且输入一个和master主机不同的IP地址(例如192.168.0.101) :

安装并重启系统以后,通过终端工具登陆(类似PuTTY)server1和server2

 

在server1上,运行下列命令:

server1:

pveca -c

server1:~# pveca -c
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ce:bf:a2:cd:69:23:e4:78:fc:05:db:fc:55:ef:52:1d root@server1
cluster master successfully created
server1:~#

然后检查下集群的状态:

server1:

pveca -l

server1:~# pveca -l
CID—-IPADDRESS—-ROLE-STATE——?UPTIME—LOAD—-MEM—ROOT—DATA
1 : 192.168.0.100   M     A           00:14   0.00     5%     1%     0%
server1:~#

在server2上,输入:

server2:

pveca -a -h 192.168.0.100

server2:~# pveca -a -h 192.168.0.100
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ea:ad:21:fc:5d:9b:af:ab:fb:0d:72:72:c7:94:23:ca root@server2
The authenticity of host ‘192.168.0.100 (192.168.0.100)’ can’t be established.
RSA key fingerprint is 7c:17:8c:35:9c:be:60:6b:56:97:2a:0b:72:60:57:09.
Are you sure you want to continue connecting (yes/no)? Warning: Permanently added ‘192.168.0.100′ (RSA) to the list of known hosts.
root@192.168.0.100’s password: cluster node successfully created
server2:~#

 

就是这样,你已经创建了一个集群。你可以检查下正在运行的主机:、

server2:

pveca -l

应该在输出结果中显示两个主机的信息:

server2:~# pveca -l
CID—-IPADDRESS—-ROLE-STATE——?UPTIME—LOAD—-MEM—ROOT—DATA
1 : 192.168.0.100   M     S           00:15   0.00     5%     1%     0%
2 : 192.168.0.101   N     S           00:04   0.08    15%     1%     0%
server2:~#

现在我们回到Proxmox的控制面http://192.168.0.100/(server2.example.com不需要控制面板!)并查看群集,在这里将会显示两台服务器:

4 添加设备模板

在我们创建OpenVZ容器之前,我们至少要在我们的系统当中添加一个操作系统模板(对于KVM客户机来说,你不单可以添加ISO文件,也可以直接从OS CD或者DVD来安装)。

点击Appliance Template。你将会发现两个选项,LocalDownload:


在Download里,你将会看到一个Proxmox项目提供的templates列表,你可以直接下载这些系统。

… ? 理论上讲-这些系统的链接太老了,已经不再适合我们了:

这就是为什么我们必须使用Local选项,你可以去http://download.proxmox.com/appliances/然后去访问admin, mail, system, 或者www 文件夹

…下载你需要的templates到你的本地硬盘里:

Local选项里,你可以把templates上传到Proxmox master主机上:

你同时也可以上传ISO镜像创建KVM的客户机,想要删除一个Template或者是ISO文件的话,只需要点击其前面的红色图标,选择Delete按钮:

5创建OpenVZ容器

要创建OpenVZ容器,需要到Virtual Machines > Create...

… 填写这些表格。选择容器(OpenVZ)和你想使用的template。指定一个主机名(例如 vm1.example.com),内存和SWAP的大小,设置一个root密码,选择Virtual Network(venet)并为容器指定一个IP地址(例如 192.168.0.102),填写一个VM1D,选择一个集群节点(如果你不创建一个集群的话(参考第三章),你仅仅选择了master,而没有远程的 主机。)确定容器是否需要在主机启动的时候自动启动,并填写一到两个DNS服务器(例如 145.253.2.75 和213.191.92.86).然后点击create:

这个容器就会被创建了…

… 这样的话这个容器就会被列在List选项下。这个容器是停止的;要启动它,点击这个容器:

这时就会打开你可以控制这个容器的地方,要启动容器,只需点击Start按钮即可:

你应该能看到Open VNC console这个链接,如果你点击它…

…一个基于浏览器的终端界面就会弹出来,通过它你可以控制虚拟机(这对于desktop的机器特别有用;如果这个虚拟机是台服务器,你也可以通过SSH连接它(例如PuTTY)).

 

6 在集群的远程系统中创建虚拟机

如果你创建了一个集群(参考第三章),你也可以在远程的系统当中创建属于这个集群的虚拟机-只需在你创建虚拟机的时候选择集群节点下的远程节点即可(截屏显示的是在OpenVZ下,然而,这对于KVM虚拟机也同样有效,只要这个节点支持硬件虚拟化)

 

这时List选项应该就显示运行在不同节点上的虚拟机了:

 

7 创建KVM客户机

如果你的CPU支持硬件虚拟化(Intel VT或 AMD-V),你除了可以创建OpenVZ containers,还可以创建KVM guests。只需要在Type下拉菜单中选择Fully virtualized (KVM),并且在Installation Media下拉菜单中选择cdrom device或者你上传的一个ISO镜像。在这里不需要对网络进行设置,KVM虚拟机将会自动完成这些设置。另外需要你确信你选择了正确的Guest Type(Linux 2.6、Windows XP等等):

随后KVM客户机就应该在List选项下显示了,新的虚拟机总是停止的。点击它…

…要打开管理页面只需点击Start按钮即可(如果你选择的是从CD-ROM安装客户机,在你点击Start按钮前,把操作系统CD和DVD插入到你的系统光驱中。

然后点击Open VNC console链接…

…这时就可以连接到guest的图形终端;你就可以像在真实机器上一样安装操作系统了:

7.1 安装 Windows XP

KVM同样允许你安装Windows 客户机。在Installation Media 下拉菜单中选择cdrom device,并且在Guest下拉菜单中选择Windows XP:

在系统光驱中插入Windows XP光盘,启动guest,并且连接到它的图形终端。你现在就可以在随着Windows安装引导安装一个Windows XP虚拟机:

8 Live Migration

如果你已经设置了一个Proxmox 集群(参见第三章),你就可以把正在运行的虚拟机从一个节点镜像到另外一个节点上。只需要点击Virtual Machines > Migrate,选择guest,source,target节点,选取Online migration并点击镜像:

这时guest镜像就会自动运行:

然后,List页面就会显示被镜像的虚拟机就会运行在其他的节点上:

9 备份

使用Proxmox VE,你可以创建一个cron任务来备份你的虚拟机。在你创建备份前,我们需要建立一个备份文件夹,例如/backup.进入server1的命令行并运行:

server1:

mkdir /backup

在Proxmox的控制面板中,打开Backup页面,并点击Backup Jobs前的红色图标,然后选择创建一个新的job:

选择你想要备份的cluster node和virtual machines。指定/backup为目标文件夹,并选择你想创建备份的日期。在Mode下,你可以选择snapshot(LVM snapshot ,没有中断),supend(当备份被创建时虚拟机将会在一段时间内挂起)和stop(虚拟机完全停止)。在这里我推荐使用snapshot,尤其在你不 能接受任何中断的情况下:

然后,你就会在Backup页面看到backup cron 任务:

10 链接


推荐阅读
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
author-avatar
openap卍巛i_r肀eport1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有