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. 【神经网络与深度学习】DCGAN及其TensorFlow源码

    上一节我们提到G和D由多层感知机定义.深度学习中对图像处理应用最好的模型是CNN,那么如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一.源码:https://github.com/Newmu ...

  2. 那些陌生的C++关键字

    C/C++中的关键字如下: 下面我们主要介绍一些比较陌生的关键字,一些常见的关键字这里就不再赘述了. 1.asm asm 是一个语句的分隔符,不能单独出现,必须接汇编指令.一组被大括号包含的指令或一对 ...

  3. Linux常用基础(三)

    1.gcc编译器 (1)简介 前期的GCC是GNU C Compiler,仅仅用于C语言的编译,经过多年的发展,现在的GCC为GNU Compiler Collection,并且目前支持多种编程语言的 ...

  4. FPGA 软件平台

    FPGA软件平台 系统 --> windows 7 xilinx --> vivado 2016.4 xilinx --> ISE 14.7 Altera --> quartu ...

  5. 什么是 Shell?

    简单来说“Shell编程就是对一堆Linux命令的逻辑化处理”. Shell 编程的 Hello World 学习任何一门编程语言第一件事就是输出HelloWord了!下面我会从新建文件到shell代 ...

  6. Matlab数据标准化——mapstd、mapminmax

    Matlab神经网络工具箱中提供了两个自带的数据标准化处理的函数——mapstd和mapminmax,本文试图解析一下这两个函数的用法. 一.mapstd mapstd对应我们数学建模中常使用的Z-S ...

  7. 核与线程 CPU 4核8线程 的解释

    1.物理CPU: 物理CPU就是计算机上实际配置的CPU个数.在linux上可以打开cat /proc/cpuinfo 来查看,其中的physical id就是每个物理CPU的ID,能找到几个phys ...

  8. SetWindowLong函数GetWindowLong函数

    这两个函数具体应用如下:SetWindowLong函数GetWindowLong函数 Delphi窗口化游戏 var Thwnd:HWND;//声明变量 句柄变量 devmodel1:DEVMODE; ...

  9. 关于注解sql和动态sql的写法

    注解写sql一般写在mapper层,如果sql语句复杂建议不要写注解sql 拼接容易出错 二动态sql的话要在 main 下面创建一个resource ——mapper—— Mapper.xml 再在 ...

  10. 一张图看懂SharpSocket

    SharpSocket提供了很多接口和类,他们被良好地组织在一起,通过下面的图片,可以瞬间看懂整个类库的脉络.通过调用各个接口的方法,完成socket通信的功能.