pve多台物理机虚拟化 pve虚拟机优势

Proxmox VE是一个运行虚拟机和容器的平台。基于Debian Linux,完全开源。为了获得最大的灵活性,实现了两种虚拟化技术——基于内核的虚拟机(KVM)和基于容器的虚拟化(LXC)。一个主要的设计目标是使管理尽可能容易。运行在单个节点上使用Proxmox VE,也可以组装多个节点的集群。所有的管理任务都可以使用我们基于web的管理界面来完成,甚至新手也可以在几分钟内安装和配置Proxmox VE。

Proxmox全称Proxmox Virtual Environment简称PVE是基于Debian的虚拟机平台。以利用它安装任何你想要的系统,如:Win系统、linux系统(黑群晖、centos、ubuntu等)、软路由(LEDE、OpenWRT、ROS、高恪、爱快、等),而且是开源永久免费,要求硬件配置低,系统运行稳定等特点。

一、Proxmox VE简介
ProxmoxVE 是一个完整的、开源的企业虚拟化服务器管理平台。它在单个平台上紧密集成了 KVM 管理程序和 Linux 容器(LXC)、软件定义的存储和网络功能。通过集成的基于 web 的用户界面,您可以轻松地管理虚拟机和容器、集群高可用性或集成的灾难恢复工具。

企业级的特性和100% 基于软件的重点使 Proxmox VE 成为虚拟化您的 IT 基础设施、优化现有资源以及以最低成本提高效率的完美选择。您可以轻松地虚拟化甚至最苛刻的 Linux 和 Windows 应用程序工作负载,并随着需求的增长动态扩展计算和存储,确保您的数据中心能够针对未来的增长进行调整。

二、Proxmox VE与ZStack、VMware、OpenStack比较


三、相关概念
ISO Images Files:proxmox本身是一个定制化的linux操作系统,系统内置了一个web管理页面可以和在系统中使用命令一样建议操作虚拟机的创建和维护。
数据中心:web管理控制台上可以管理多个节点,每个节点是一个iso镜像安装的操作系统,这些节点组成了数据中心。
PVE:proxmox virtual machine,在web控制台上是一个proxmox虚拟机节点,每个节点是一个iso镜像安装的操作系统,虚拟机内核为KVM。
CT虚拟机: 基于CT模板使用LXC隔离技术实现的容器,VE 安装后默认配置的 apt 软件源和 CT (LXC) 容器模板源均是官方默认的,国内使用性能不佳,建议替换为 清华 Tuna 提供的国内镜像源,速度将有一个较大的提升,其中模板可以理解为容器镜像,默认的镜像有centos,debian等。
四、部署安装
最新版本下载地址:https://www.proxmox.com/en/downloads/category/iso-images-pve
安装环境:hyper-v虚拟机安装。
安装两个pve节点(后续安装集群):

https://192.168.240.183:8006/
https://192.168.240.184:8006/ 以下安装两个环境相同。
安装pve
在hyerv上右键新建虚拟机,内存和cpu根据需要设置自选,选择iso文件

点击完成,启动虚拟机,出现界面点击安装,选中Install 回车,国家输入China,密码随意,测试简单点直接123456,邮箱必填。

主机名随机,确保ip地址和window网络中defaultswitch网卡的ip区间一致,网关就是default switch的ip,这里要特别注意hostname自己好规划成每个pve不一样的值,比如这里可以修改为 pve1.example1,否则在搭建集群加入的时候名字冲突就会出现无法加入情况。

这是我default switch的ip

点击下一步,安装完成后,关机,删除掉系统挂载的iso镜像,修改为空,重启,打开虚拟机。

访问上图的网站地址:

输入安装系统的用户名和密码,选择简体中文登录

创建虚拟机,修改apt和ct源
PVE 安装后默认配置的 apt 软件源和 CT (LXC) 容器模板源均是官方默认的,国内使用性能不佳,建议替换为 清华 Tuna 提供的国内镜像源,速度将有一个较大的提升。

如果 pve 官网 iso 镜像下载较慢,也可在 tuna 提供的镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/proxmox/iso/

使用web页面打开webshell页面,点击左侧pve

替换 apt 软件源
替换前建议先更新下证书,否则可能由于证书不可用导致 https 无法使用,进而无法下载所有软件。

$ sudo apt install apt-transport-https ca-certificates

首先替换通用软件源, Debian 的软件源配置文件是 /etc/apt/sources.list,备份后将其中内容修改为以下即可。

默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-freedeb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-freedeb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-freedeb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

之后替换 pve 软件源,pve 镜像默认的 pve 软件源配置文件是 /etc/apt/sources.list.d/pve-enterprise.list ,备份后将其中内容替换为以下即可:

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian 
bullseye pve-no-subscription

最后更新下,速度很快:

sudo apt-get update

替换pve模板源
替换前建议先更新下证书,否则可能由于证书不可用导致 https 无法使用,进而无法下载所有软件。
执行更新

$ sudo apt install apt-transport-https ca-certificates

修改 CT Templates (LXC 容器) 源
将 /usr/share/perl5/PVE/APLInfo.pm 文件中默认的源地址 http://download.proxmox.com 替换为 https://mirrors.tuna.tsinghua.edu.cn/proxmox 即可。

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

针对 /usr/share/perl5/PVE/APLInfo.pm 文件的修改,重启后生效。

systemctl restart pvedaemon.service

测试下载模板

下载完成后

下载到本地缓存中(/var/lib/v2/template/cache,可以手动下载放到该目录),之后就可以用这个模板来创建ct虚拟机了

上传iso镜像


点击local选择iso镜像,点击上传

iso镜像地址找对应系统官网即可,centos7:http://isoredirect.centos.org/centos/7/isos/x86_64/

ios镜像中已经本地拥有了centos7镜像(缓存目录:/var/lib/vz/template/iso,也可以手工下载后上传)。

iso镜像创建虚拟机

选择创建虚拟机(名称随意)
选择之前上传的iso镜像
系统默认,磁盘,cpu根据个人需要选择大小,启动虚拟机

开启虚拟化

如果出现错误:TASK ERROR: KVM virtualisation configured, but not available. Either disable in VM configuration or enable in BIOS.
说明 hyper-v或者你的vmware上的虚拟机没有开启虚拟化

hyper-v配置

1、要实现 hyper-v 嵌套虚拟化,首先,我们以管理员身份打开 powershell
2、在命令行中输入 get-vm ,列出我们自己的虚拟机
PS C:\Users\Windows> Get-VM
3、输入 Get-VMProcessor -VMName 主机名 | fl
我们可以看到嵌套虚拟化选项(ExposeVirtualizationExtensions )的值为 False,
设置为 True 即可,前提虚拟机先关机。
4、输入Set-VMProcessor -VMName 主机名 -ExposeVirtualizationExtensions $true
正常情况下,是没有输出的,
再输入Get-VMProcessor -VMName 主机名 | fl         查看设置结果
经过上面 4 步,我们就可以在虚拟机中再进行虚拟化了。

vmware配置

重新开机web界面开启proxmox创建的100虚拟机,启动后就是一步步安装centos7,略过

连接网络
我这里创建的虚拟机是centos7,需要自己规划ip地址,
我的pve的ip是:192.168.240.183,我给这台pve上的虚拟机设置ip段:192.168.211.0/24
centos设置ip:修改/etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes
IPADDR=192.168.211.2
NETMASK=255.255.255.0
GATEWAY=192.168.240.183

修改dns服务器 /etc/resolv.conf

nameserver 8.8.8.8

注意你修改的ip网段对于pve(192.168.240.183)是不可见的,所以你需要在pve上添加路由

ip route add 192.168.211.0/24 dev vmbr0

此时可以ping通192.168.240.183,但是ping通baidu或者hyperv的宿主机都是不通的,包过去了不知道怎么回来。
此时可以通过nat 将来自211.0的数据包,转换为原地址为240.183,就可以实现数据来回了
pve上执行。

iptables -t nat -A POSTROUTING -s '192.168.211.0/24' -o vmbr0 -j MASQUERADE

此时能ping通,但是重启后路由和nat就丢了,需要添加到网卡文件
修改/etc/network/interfaces

iface vmbr0 inet staticaddress 192.168.240.183/24gateway 192.168.240.177bridge-ports eth0bridge-stp offbridge-fd 0post-up ip route add 192.168.211.0/24 dev vmbr0post-up iptables -t nat -A POSTROUTING -s '192.168.211.0/24' -o vmbr0 -j MASQUERADE

重启测试即可

-j MASQUERADE 智能SNAT替换

ct模板创建虚拟机
这里切换到另外一台pve来创建CT虚拟机,后续加入集群可以测试网络互通

我这里创建的虚拟机是centos8-stream,需要自己规划ip地址,

我的pve的ip是:192.168.240.184,我给这台pve上的虚拟机设置ip段:192.168.212.0/24,

ct虚拟机ip:192.168.212.2

centos设置ip:修改/etc/sysconfig/network-scripts/ifcfg-eth0

点击右侧创建CT

选择本地缓存的模板

设置ip地址:

dns设置为:8.8.8.8即可,填错了可以点击网络修改。

同理在240.184添加路由和nat,修改网卡/etc/network/interfaces

post-up ip route add 192.168.212.0/24 dev vmbr0
post-up iptables -t nat -A POSTROUTING -s '192.168.212.0/24' -o vmbr0 -j MASQUERADE

 数据中心多节点
多节点
目前我们两个pve都是自己独立的web界面,可以将其中的pve添加到一个集群中,在同一个web界面管理,这里183作为集群管理,184作为一个节点。
在183上执行命令

pvecm create clust    //创建集群clust
pvecm status          //查看集群状态

或者在web控制台上点击数据中心,创建集群。

183上创建完成后点击加入信息,点击复制

在184上点击加入集群,粘贴信息,输入183的root密码,加入集群完成

加入失败

detected the following error(s):
* this host already contains virtual guests
TASK ERROR: Check if node may join a cluster failed!

注意能加入集群的两个前提

pve集群创建钱不能先创建虚拟机,比如先规划好集群在创建虚拟机。
pve的主机名不能冲突,不能都是pve。
如果一开始主机名称取的相同的需要将其中一台的主机名修改

vi /etc/hosts
vi /etc/hostname
hostnamectl set-hostname 新的主机名
重启
cp -r /etc/pve/nodes/旧主机名/* /etc/pve/nodes/新主机名/
重启
加入集群后在183和184web控制台都可以管理两个节点

内节点容器互通
在各自节点内部添加一个ct容器,ip规划如下

节点pve:192.168.240.183,添加ct容器ip:192.168.211.2/24 网关:192.168.240.183

节点pve:192.168.240.184,添加ct容器ip:192.168.212.2/24 网关:192.168.240.184

如果直接在容器内部ping是不能互通的,需要通过路由和nat来实现,路由和nat不熟悉的参考:

192.168.240.183网络文件/etc/network/interfaces

# 这是表示当容器内部有ping命令到节点时,回城怎么走,或者节点ping容器时怎么走

 post-up ip route add 192.168.211.0/24 dev vmbr0# 这里的nat表示所有来自容器211的访问请求,源ip都替换成183请求,这样就可以通过183访问外部访问。post-up iptables -t nat -A POSTROUTING -s '192.168.211.0/24' -o vmbr0 -j MASQ
UERADE# 这里表示通过183访问212段的网络,将请求丢给184处理,184在做一个183nat即可。post-up ip route add 192.168.212.0/24 dev vmbr0 via 192.168.240.184#这里表示184过来的请求转换成183来访问就可以访问183容器内部了。post-up iptables -t nat -A POSTROUTING -s '192.168.240.184/24' -o vmbr0 -j MASQUERADE

重启网卡 查看路由和iptables,重启了网卡后,虚拟机都需要重启否则,虚拟机和节点间不通

--------------------重启网络
root@pve:~# systemctl restart networking
--------------------路由
root@pve:~# ip route
default via 192.168.240.177 dev vmbr0 proto kernel onlink 
192.168.211.0/24 dev vmbr0 scope link 
192.168.212.0/24 via 192.168.240.184 dev vmbr0 
192.168.240.0/24 dev vmbr0 proto kernel scope link src 192.168.240.183 
--------------------nat插卡
root@pve:~# iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 192.168.211.0/24 -o vmbr0 -j MASQUERADE
-A POSTROUTING -s 192.168.212.0/24 -o vmbr0 -j MASQUERADE
-A POSTROUTING -s 192.168.211.0/24 -o vmbr0 -j MASQUERADE
-A POSTROUTING -s 192.168.240.0/24 -o vmbr0 -j MASQUERADE

192.168.240.184网络文件/etc/network/interfaces

复制 
post-up ip route add 192.168.212.0/24 dev vmbr0
  post-up iptables -t nat -A POSTROUTING -s '192.168.212.0/24' -o vmbr0 -j MASQ
UERADE
  post-up ip route add 192.168.211.0/24 dev vmbr0 via 192.168.240.183
  post-up iptables -t nat -A POSTROUTING -s '192.168.240.183/24' -o vmbr0 -j MASQUERADE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/234772.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龍运当头--html做一个中国火龙祝大家龙年大吉

🐉效果展示 🐉HTML展示 <body> <!-- partial:index.partial.html --> <svg><defs><g id=

格密码基础:对偶格(超全面)

目录 一. 对偶格的格点 1.1 基本定义 1.2 对偶格的例子 1.3 对偶格的图形理解 二. 对偶格的格基 2.1 基本定义 2.2 对偶格的格基证明 三. 对偶格的行列式 3.1 满秩格 3.2 非满秩格 四. 重复对偶格 五. 对偶格的转移定理&#xff08;transference theorem&#xff…

现代 C++ 及 C++ 的演变

C 活跃在程序设计领域。该语言写入了许多新项目&#xff0c;而且据 TIOBE 排行榜数据显示&#xff0c;C 的受欢迎度和使用率位居第 4&#xff0c;仅次于 Python、Java 和 C。 尽管 C 在过去二十年里的 TIOBE 排名都位居前列&#xff08;2008 年 2 月排在第 5 名&#xff0c;到…

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-https://blog.csdn.net/alex_starsky/category_12467518.html 如何使用大模型查询助手功能&#xff1f;例如调用工具实现网络查询助手功能。目前只有 ChatGLM3-6B 模型支持工具调用&#xff0c;而 ChatGLM3-6B-Base 和 ChatGLM3-6B-32K 模型不支持。 定义好工具的…

【Gin实战教程】快速入门

Gin是一个轻量级的Web框架&#xff0c;使用Go语言开发。它具有高性能、易用性和灵活性的特点&#xff0c;是构建可扩展的Web应用程序的理想选择。 首先&#xff0c;Gin是一个高性能的框架。它基于Go语言的原生HTTP包进行开发&#xff0c;利用了Go语言的并发特性和协程模型&…

聊聊 Java 集合框架中的 ArrayList

其实 Java 集合框架也叫做容器&#xff0c;主要由两大接口派生而来&#xff0c;一个是 collection,主要存放对象的集合。另外一个是Map, 存储着键值对&#xff08;两个对象&#xff09;的映射表。 下面就来说说 List接口&#xff0c;List存储的元素是有序、可重复的。其下有三个…

JAVA实现文件上传至阿里云

注册阿里云账号后,开通好对象存储服务&#xff08;OSS&#xff09;&#xff0c;三个月试用 阿里云登录页 (aliyun.com) 目录 一.创建Bucket 二.获取AccessKey&#xff08;密钥&#xff09; 三.参考官方SDK文件&#xff0c;编写入门程序 1.复制阿里云OSS依赖&#xff0c;粘贴…

Swift单元测试Quick+Nimble

文章目录 使用QuickNimble1、苹果官方测试框架XCTest的优缺点2、选择QuickNimble的原因&#xff1a;3、QuickNimble使用介绍集成&#xff1a;Quick关键字说明&#xff1a;Nimble中的匹配函数等值判断&#xff1a;使用equal函数是否是同一个对象&#xff1a;使用beIdenticalTo函…

【Verilog】期末复习——分别画出下面两个程序综合后的电路图/reg型数据和wire型数据的区别

系列文章 数值&#xff08;整数&#xff0c;实数&#xff0c;字符串&#xff09;与数据类型&#xff08;wire、reg、mem、parameter&#xff09; 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…

基于ssm基于协同过滤技术的网上书城的开发与研究+jsp论文

摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。本次开发一套基于协同过滤技术的网上书城有…

大数据毕业设计:图书推荐系统+可视化+Django框架 图书管理系统 (附源码+论文)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

外汇天眼:CQG 与 TradeStation Securities 的经纪服务集成

TradeStation Securities, Inc.&#xff0c;一家自营的在线股票、ETF、期权和期货交易经纪公司&#xff0c;宣布与CQG合作&#xff0c;CQG是一家为交易员、经纪商、商业套保者和交易所提供高性能技术解决方案的全球供应商&#xff0c;已与TradeStation Securities的经纪服务集成…

idea右上角浏览器图标没有idea内部浏览器怎么显示

idea右上角浏览器图标没有idea内部浏览器怎么显示 file -> settings -> tools -> web brosers 选择需要的浏览器&#xff0c;勾选上展示到编辑器中 打开上图的Built-in Preview&#xff0c;就会显示idea标志的内部显示了&#xff01;&#xff01;&#xff01;

python 和shell 变量互相传递

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 主要介绍python和shell变量互相传递方法&#xff0c;使用了环境变量、管道等方法。 python -> shell&#xff1a; 1.环境变量 import os var123或var123 o…

《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计

2-15 编写一个程序&#xff0c;运行时提示输入一个数字&#xff0c;再把这个数字显示出来。 #include <iostream>using namespace std;int main() {// 提示用户输入数字cout << "请输入一个数字: ";// 用于存储用户输入的数字的变量double number;// 从…

源码|redis7.2.2|sds

文章目录 前言Type && EncodingsdsencodingcreateStringObjectcreateEmbeddedStringObject总结 createRawStringObject总结 createStringObjectFromLongDouble总结 createStringObjectFromLongLongWithOptions总结 相关操作sdscatlen总结 阈值44sds VS C字符串 前言 从…

docker镜像的生成过程

镜像的生成过程 Docker镜像的构建过程&#xff0c;大量应用了镜像间的父子关系。即下层镜像是作为上层镜像的父镜像出现的&#xff0c;下层镜像是作为上层镜像的输入出现。上层镜像是在下层镜像的基础之上变化而来。 FROM centos:7 FROM指令是Dockerfile中唯一不可缺少的命令&a…

Web APIs知识点讲解

学习目标: 能获取DOM元素并修改元素属性具备利用定时器间歇函数制作焦点图切换的能力 一.Web API 基本认知 1.作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类&#xff1a;DOM (文档对象模型)、BOM&#xff08;浏览器对象模型&#xff09; 2.DOM DOM(Document Ob…

吉林大学19、21级计算机学院《计算机网络》期末真题试题

一、21级&#xff08;考后回忆&#xff09; 一、不定项选择&#xff08;一共10个选择题&#xff0c;一个两分&#xff0c;选全得满分&#xff09; 不定项&#xff1a;可以选择1~4个 考点有&#xff1a; ①协议、服务 ②码分多路复用通过接受码片序列&#xff0c;求哪个站点发送…

vue3项目中axios的常见用法和封装拦截(详细解释)

1、axios的简单介绍 Axios是一个基于Promise的HTTP客户端库&#xff0c;用于浏览器和Node.js环境中发送HTTP请求。它提供了一种简单、易用且功能丰富的方式来与后端服务器进行通信。能够发送常见的HTTP请求&#xff0c;并获得服务端返回的数据。 此外&#xff0c;Axios还提供…