PVE

软件源/etc/apt/souces.list

apt-get update命令获取软件源中的软件包信息

企业版软件源

/etc/apt/sources.list.d/pve-enterprise.list

如果你没有订阅Proxmox VE企业版,可以将企业版软件源配置信息在软件源配置文件中注释掉(在该行开头插入一个#字符),

以避免系统发出错误提示信息。这种情况下可以配置使用pve-no-subscriptin软件源。

将免费版软件源配置在/etc/apt/sources.list

deb http://download.proxmox.com/debian jessie pve-no-subscription

测试版软件源 /etc/apt/sources.list

deb http://download.proxmox.com/debian jessie pvetest

系统软件升级

apt-get update
apt-get dist-upgrade

Debian使用ifup和ifdown命令来启停网络接口,所有的网络配置信息都保存 在/etc/network/interfaces中

注意:

Proxmox VE并不直接编辑配置文件/etc/network/interfaces 。

实际上,我们会先把网络配置变更保存在临时文件/etc/network/interfaces.new里,

然后在你重启服务器时再 用该配置文件覆盖/etc/network/interfaces。

必须提醒的是,你仍然可以直接编辑配置文件来修改网络配置。Proxmox VE会尽可能跟踪并使用用户设置的最新网络配置。

但仍然推荐使用GUI来调整网络配置,因为这能让你有效避免意外错误。

替换国内源

cd /etc/apt/sources.list.d
mv pve-enterprise.list pve-enterprise.list.bak
wget http://download.proxmox.wiki/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
echo "deb http://download.proxmox.wiki/debian/pve stretch pve-no-subscription" >/etc/apt/sources.list.d/pve-install-repo.list
cat /proc/version #查看系统版本
cd /etc/apt
mv sources.list sources.list.bak
vi sources.list
deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/debian-security stretch/updates main
deb-src http://mirrors.aliyun.com/debian-security stretch/updates main
deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
apt-get update
apt-get dist-upgrade
apt-get install net-tools -y

配置NTP时间服务器

/etc/systemd/timesyncd.conf

默认配置 [Time]

Servers=ntp1.example.com ntp2.example.com ntp3.example.com ntp4.example.com

重启时钟同步服务后(systemctl restart systemd-timesyncd),你可以查看日志以验证新配置的 NTP服务器是否已被启用

(journalctl –since -1h -u systemd-timesyncd)

外部监控服务器

可以搭建外部监控服务器,外部监控服务器配置信息保存在/etc/pve/status.cfg文件

graphite http://graphiteapp.org

influxdb https://www.influxdata.com/time-series-platform/influxdb

硬盘健康状态监控

Proxmox VE集成了smartmontools软件包

你可以运行如下命令获取磁盘的状态信息:

smartctl -a /dev/sdX

其中/dev/sdX是某个本地磁盘的设备文件名称。

如果命令输出如下结果:

SMART support is: Disabled

你就需要运行以下命令启用 SMART监控:

smartctl -s on /dev/sdX

默认状态下,smartctltools守护进程smartd将会被启动并自动运行,每 30分钟对 /dev/sdX和/dev/hdX进行一次扫描,

如果检测到的错误和警告信息,就向服务器的 root用户发送e-mail。 可以运行man smartd和man smartd.conf命令,以获取关于smartd配置方法的更多 信息。

LVM管理器

pvs
vgs
lvs

默认创建data逻辑卷,并用于存储基于块存储的虚拟机镜像,而/var/lib/vz是根文件系统下的一个路径

目前一个集群最多可拥有32个物理节点(也可以更多,关键在于网络时延)。

使用pvecm可以创建新的集群,可以向集群新增节点,可以从集群删除节点,可以查看集群状态信息,也可以完成其他各种集群管理操作。

Proxmox VE集群文件系统(pmxcfs)用于确保配置信息透明地发送到集群中所有节点,并保持一致。

以集群方式使用Proxmox VE有以下优势:

集中的web管理

多主集群架构:从任何一个节点都可以管理整个集群

pmxcfs:以数据库驱动的文件系统保存配置文件,并通过 corosync在确保所有节点的配置信息实时同步。

虚拟机和容器可方便地在物理服务器节点之间迁移。

快速部署。

基于集群的防火墙和 HA服务

集群部署要求

所有节点必须在同一子网,以便各个节点使用 corosync多播通信 (有些交换机默认设置关闭了 IP多播,需要先手工启用多播通信)#6.0版本单播

如果你需要配置HA,则最少需要3个物理服务器节点,以保证集群多数票机制生效。此外,还需要保证所有节点使用同一版本的Proxmox VE。

我们建议为集群通信分配专用网卡,特别是在配置共享存储的情况下,分配专用网卡能确保集群通信的稳定可靠。

pvecm status
pvecm nodes

为避免虚拟机ID冲突,Proxmox VE规定新节点加入集群前不能配置有任何虚拟机,,新加入节点/etc/pve目录下的原有配置信息将被集群配置全部覆盖。

如果节点上已有虚拟机,可以首先使用vzdump将所有虚拟机备份,然后删除节点上的虚拟机,待加入集群后再用新的虚拟机ID恢复原有虚拟机。

添加位于不同网段的节点

集群网络和该节点在不同网段,你需要使用ringX_addr参数来指定节点在集群网络内使用的地址。

pvecm add IP-ADDRESS-CLUSTER -ring0_addr IP-ADDRESS-RING0

如果你要使用冗余环协议,你还需要设置 ring1_addr 参数以传递第二个集群网络地址。

删除节点(必须在执行删除命令前先关闭待删除节点,并且确保被删除点不再启动 (在原集群网络中)。这是非常非常重要的! )

pvecm delnode hp4

如果你在原集群网络中重新启动被删除的节点,你的集群会因此而崩溃,并且很难恢复到一个干净的状态。

如果出于某种原因,你需要将被删除节点重新加入原集群,需要按如下步骤操作:

 格式化被删除节点,并重新安装Proxmox VE。

 如前一节所述步骤,将该节点重新加入集群

文件系统恢复

如果你的Proxmox VE服务器出现故障,例如硬件故障,你可以将pmxcfs的数据库文件/var/lib/pve-cluster/config.db复制到一台新的 Proxmox VE服务器。

在新服务器上(没有配置任何虚拟机或容器),停止pve-cluster服务,覆盖config.db文件(需要设置权限为 0600),然后修改/etc/hostname和/etc/hosts和故障服务器对应文件一致,

最后重启新服务器并检查是否恢复正常(不要忘记虚拟机/容器镜像数据)。

将一个节点从集群中删除之后,推荐的做法是重新安装 Proxmox VE。这样可以确保所 有的集群/ssh密钥和共享配置数据都被彻底清除。

从故障节点恢复/迁移虚拟机

对于未配置使用HA的虚拟机而言,如果其磁盘镜像保存在共享存储上:

可以通过将虚拟机配置文件从/etc/pve下故障节点对应目录手工移动到其他正常节点对应目录的方式(从而改变该虚拟机从属的节 点),达到将虚拟机从故障节点手工迁移的目的。

mv /etc/pve/nodes/node1/qemu-server/100.conf /etc/pve/nodes/node2/ #ID为100的虚拟机从故障节点node1迁移到正常节点node2

(使用以上方法迁移虚拟机之前,必须确保故障节点已经确实关机或者被隔离。)

content设置存储服务所要保存的数据类型

images KVM-Qemu虚拟机镜像

rootdir 容器镜像数据

vztmpl 容器模板

backup 虚拟机备份文件

iso ISO镜像

pvesm status

pvesm list

pvesm path

Proxmox VE支持两种 USB直通方法:

 基于主机的USB直通

 基于SPICE协议的 USB直通

(这种直通方式需要SPICE客户端的支持。如果你给虚拟机添加了SPICE USB端口,

那么就可以直接将SPICE客户端上的USB设备直通给虚拟机使用(例如输入设备或硬件加密狗))

虚拟机管理命令 qm

qm create 300 -ide0 4 -net0 e1000 -cdrom proxmox-mailgateway_2.1.iso
qm start 300
qm shutdown 300 && qm wait 300
qm shutdown 300 && qm wait 300 -timeout 40

虚拟机配置文件保存在Proxmox集群文件系统中,并可以通过路径/etc/pve/qemuserver/.conf访问。

和/etc/pve下的其他文件一样,虚拟机配置文件会自动同 步复制到集群的其他节点。

虚拟机配置文件就是普通文本文件,可以直接使用常见文本编辑器(vi,nano等)编辑。这也是日常对虚拟机配置文件进行细微调整的一般做法。但是务必注意,必须彻底关闭虚拟机,然后再启动虚拟机,修改后的配置才能生效。

更好的做法是使用qm命令或WebGUI来创建或修改虚拟机配置文件。Proxmox VE能够直接将大部分变更直接应用到运行中的虚拟机,并即时生效。该特性称为“热插拔“,并无需重启虚拟机。

Proxmox VE使用 LXC作为底层容器技术。我们把LXC当作底层库来调用,并利用了其众多功能特性。

直接使用LXC相关工具的难度太高,我们将有关工具进行了包装, 以“Proxmox容器管理工具”的形式提供给用户使用,该工具的名字是pct。

容器管理工具pct和Proxmox VE紧密集成在一起,不仅能够感知Proxmox VE集群环境,而且能够象虚拟机那样直接利用 Proxmox VE的网络资源和存储资源。

你甚至可以在容器上配置使用 Proxmox VE防火墙和HA高可用性。

我们的主要目标是提供一个和虚拟机一样的容器运行环境,同时能避免不必要的代价。 我们称之为“系统容器”。

注意

如果你想运行微容器(如docker,rkt等),最好是在虚拟机里面运行它。

你既可以为集群内的所有主机设置防火墙策略,也可以为单个虚拟机和容器定义策略。

防火墙宏, 安全组,IP集和别名等特性将大大简化策略配置管理。 尽管所有的防火墙策略都保存在集群文件系统,但基于 iptables的防火墙服务在每个节点都是独立运行的,从而为虚拟机提供了完全隔离的防护。这套分布式部署的防火墙较传统防火墙提供了更高的带宽。

Proxmox VE防火墙将网络划分为不同区域 : HOST VM

集群级别的防火墙配置

/etc/pve/firewall/cluster.fw

启用防火墙后,默认所有主机的通信都将被阻断。唯一例外是集群网络内的WebGUI(端口8006)和ssh(端口22)访问可以继续使用

为简化配置,你可以创建一个名为“管理地址”的IPSet,并把所有的远程管理终端IP地址添加进去。这样就可以创建策略允许所有的远程地址访问 WebGUI。

主机级别的防火墙配置

/etc/pve/nodes//host.fw

该文件中的配置可以覆盖cluster.fw中的配置

虚拟机和容器级别的防火墙配置

/etc/pve/firewall/.fw

每个虚拟网卡设备都有一个防火墙启用标识。你可以控制每个网卡的防火墙启用状态。 在设置启用虚拟机防火墙后,你必须设置网卡上的防火墙启用标识才可以真正启用防火墙。

防火墙需要网络设备标识配置的配合,在启用网卡的防火墙标识后你必须重启虚拟机或容器才可以。

安全组是一个防火墙策略的集合。安全组属于集群级别的防火墙对象,可用于所有的虚拟机防火墙策略。

服务及管理命令

pve-firewall start/stop/status

Proxmox VE端口列表

Web界面:8006

VNC控制台:5900-5999

SPICE proxy:3128

sshd(用于集群管理):22

rpcbind:111

corosync多播(集群通信使用):5404, 5405 UDP

LXC vs LXD vs Proxmox容器 vs Docker

LXC是Linux内核容器的用户空间接口。通过强大的 API和易用的工具,Linux用户能够轻松地创建并管理系统容器。LXC,及其前任OpenVZ,专注于系统虚拟化,也就是让你在容器内运行完整的操作系统,其中你可以ssh方式登录,增加用户,运行apache服务器等。

LXD基于LXC创建,并提供了更好的用户体验。在底层,LXD通过liblxc调用 LXC 及其Go绑定来创建和管理容器。LXD基本上是LXC工具和模版系统的的另一个选择,只是增加了诸如远程网络控制等新的特性。

Proxmox容器也专注于系统虚拟化,并使用LXC作为其底层服务。Proxmox容器工具称为pct,并和Proxmox VE紧密集成在一起。这意味着 pct能够利用集群特性,并像虚拟机那样充分利用相同的网络和存储服务。你甚至可以使用Proxmox VE防火墙,备份和恢复,设置容器HA。可以使用Proxmox VE API通过网络管理容器的全部功能。

Docker专注于在容器内运行单一应用。你可以用 docker工具在主机上管理 docker 实例。但不推荐直接在Proxmox VE主机上运行docker。

PVE手册资料的更多相关文章

  1. HTML5 Cheat sheet PNG帮助手册(标签、事件、兼容)

    HTML5 Cheat sheet PNG帮助手册(标签.事件.兼容) 1.HTML5标签 2.HTML5事件 3.HTML5兼容 最新HTML5手册资料请参考:http://www.inmotion ...

  2. 乱七八糟的学习资料汇总(python3.x,pyqt,svn,git)

    入门涉猎资料: python3.6.3中文文档:https://www.runoob.com/manual/pythontutorial3/docs/html/interpreter.html pyt ...

  3. mysql的缓冲查询和非缓冲查询

    最近在开发一个PHP程序时遇到了下面的错误: PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted 错误信息显示允许的 ...

  4. Altera 在线资源使用

    Altera 在线资源使用 Altera 在线资源使用 1 1.Altera中文版 2 2.建立myaltera账户 获取官网信息与支持 2 3系统化的设计资源 2 3.1.设计实例 2 3.2.参考 ...

  5. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  6. 让你系统的了解shell

    当你在进行登录时,系统会检查的文档:1. /etc/profile:首先,系统会检查这个文件,以定义如下这些变量:PATH.USER.LOGNAME.MAIL.HOSTNAME.HISTSIZE.IN ...

  7. STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示

    一.介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料:             ...

  8. 【转】简谈基于FPGA的千兆以太网

    原文地址: http://blog.chinaaet.com/luhui/p/5100052903 大家好,又到了学习时间了,学习使人快乐.今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较 ...

  9. 深入解析 composer 的自动加载原理

    PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演 ...

随机推荐

  1. Java编程思想之十二 通过异常处理错误

    Java的基本概念是结构不佳的代码不能运行余下的问题必须在运行期间解决,这就需要错误源能通过某种方式,把适当的信息传递给某个接收者--该接收者将知道如何正确处理这里问题. 12.1 概念 使用异常所带 ...

  2. 整合zuul启动时报错Correct the classpath of your application so that it contains a single, compatible version of XXX

    今天集成zuul与consul的时候,出现如下错误 ***************************APPLICATION FAILED TO START******************** ...

  3. PostgreSQL中的Toast Pointer

    1.分析背景 在使用数据库的过程中(PG的版本为9.2),遇到了错误"missing chunk number 0 for toast value XX in pg_toast_2619&q ...

  4. [转帖]Linux操作系统定时任务系统 Cron 入门0

    Linux操作系统定时任务系统 Cron 入门 https://www.cnblogs.com/zhuiluoyu/p/5646400.html   cron是一个linux下的定时执行工具,可以在无 ...

  5. MQTTv5.0 ---AUTH – 认证交换

    AUTH报文被从客户端发送给服务端,或从服务端发送给客户端,作为扩展认证交换的一部分,比如质询/ 响应认证.如果CONNECT报文不包含相同的认证方法,则客户端或服务端发送AUTH报文将造成协议错 误 ...

  6. ClassPathBeanDefinitionScanner 说明

    Spring 工具类 ClassPathBeanDefinitionScanner 组件Bean定义扫描https://blog.csdn.net/andy_zhang2007/article/det ...

  7. The instance of entity type 'Menu' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked.

    这里记录一个在使用.net core中ef core执行数据库操作时遇到的问题: 我在代码中使用DbContext下的Update方法准备将更改后的数据像这样步到数据库: _context.Menus ...

  8. RabbitMQ学习之Topics(5)

    上一节,我们讲了direct exchange,这节我们讲下topic exchange Topic exchange 发送到topic exchange的messages不可以有一个随意的routi ...

  9. nginx部署angular

    官方部署教程 本文将angular官网的示例项目 heroes(英雄指南) 部署到nginx. 使用angular cli编译项目 ng build 执行完成后会生成一个 dist 目录. 服务器配置 ...

  10. 【翻译】nginx初学者指南

    nginx初学者指南 本文翻译自nginx官方网站:http://nginx.org/en/docs/beginners_guide.html#control 该指南会对nginx做一个简要的介绍,同 ...