Proxmox 8¶
在这篇文章中
部署功能¶
| ID | 兼容操作系统 | VM | BM | VGPU | GPU | 最小 CPU (核心数) | 最小内存 (GB) | 最小硬盘/SSD (GB) | 活跃 |
|---|---|---|---|---|---|---|---|---|---|
| 32 | Debian 12 | + | + | + | + | 2 | 2 | - | No |
备注
除非另有说明,默认情况下,我们从开发者的网站或操作系统存储库安装软件的最新发布版本。
安装 Proxmox VE¶
安装服务器后,Proxmox VE 服务的安装将在 15-20 分钟内完成。您将收到一封包含已安装服务器通知和链接的电子邮件,链接格式为 https://proxmox<server_ID>.hostkey.in。您需要通过电子邮件中提供的链接访问 Proxmox VE 管理 Web 界面:
- Login -
root; - Password - 系统密码。
警告
如果您将 Proxmox 作为操作系统安装,要访问 Web 界面,您需要前往 http://server_IP_address:8006。
点击链接后,将打开一个输入登录名和密码的窗口:

输入登录名和密码后,将打开主窗口,在此窗口中进行所有设置:

配置网络接口¶
安装系统后,网络接口配置如下图所示。配置了一个物理接口,并注册了 IP 地址。您应该选择所需的服务器并进入 Network 部分:

Proxmox VE 服务器上的网络设置:

您应该进入 enp1s0f1 物理接口设置(首先点击网络接口名称,然后点击 Edit 按钮),复制 IP 地址,删除它并点击 OK 按钮:

添加一个通过 enp1s0f1 物理接口工作的 Linux 网桥,以下是添加步骤:

输入之前复制的 IP 地址,指定物理接口(在我们的示例中为 enp1sf01)。务必指定端口名称,否则您需要通过 ILO 连接并通过 SSH 配置配置文件。然后,点击 OK 按钮:

结果,网络设置应如下所示:

确认一切配置正确后,点击 Apply Configuration 按钮。
磁盘子系统配置¶
单磁盘服务器可以托管 Proxmox VE 系统本身以及虚拟服务器、ISO 镜像、容器模板、操作系统模板等。
备注
在我们的示例中,安装了一台带有两个磁盘的服务器,系统安装在第一个磁盘上,并将放置:ISO 镜像以及虚拟服务器的备份。在第二个磁盘上,我们将配置虚拟服务器的托管。这些设置仅作为示例展示——如果其中一个磁盘发生故障,要么操作系统停止工作,要么虚拟服务器丢失。例如:将 2 个磁盘组合成 RAID1 并安装系统,将 2 个磁盘组合成 RAID1 并用于安装虚拟服务器(磁盘大小取决于计划在此服务器上托管的基础设施)。
添加第二个磁盘¶
通过 SSH 进入服务器并检查磁盘是否存在且未被系统使用。您可以使用 lsblk 命令来执行此操作。下图显示系统安装在 sda 磁盘上(sda1 / sda2),sdb 分区空闲,其大小为 223GB:

确认磁盘存在且未被占用后,您应该进入 Proxmox VE Web 界面:

选择服务器(在我们的示例中为 2667)并进入 Disks >> LVM 部分:

点击 Create: Volume Group 按钮:

将打开一个窗口,系统将在其中提供在空闲磁盘上创建分区,在我们的案例中是 sdb:

在同一窗口中(在 Add Storage 部分),您必须输入分区名称。在我们的示例中,使用名称 vms,因为计划托管虚拟服务器。然后点击 Create:

结果,磁盘应显示在主窗口中:

如您所见,vms 部分已添加。
添加第二个磁盘并确定将在此处放置什么内容后,需要重新配置系统,以便所有虚拟服务器自动放置在第二个磁盘上。为此,点击左侧的 Datacenter 并选择 Storage:

虚拟服务器可以存储在系统磁盘 sda 上,也可以存储在新磁盘 sdb 上:

我们有两个磁盘,我们决定仅在系统磁盘上存储 ISO 镜像和备份,但虚拟服务器、系统镜像、模板、容器将放置在第二个磁盘 sdb 上。您需要进行设置,选择所需的磁盘(local / vms)并点击屏幕顶部的 Edit 按钮。
选择磁盘 local:

点击 Content 下拉列表,默认情况下所有项目都已选中,您需要再次点击它们以禁用。您应该只保留 ISO image 和 VZDump backup file,然后点击 OK 以保存设置:

设置完成后,应获得以下结果:

在 Local 磁盘设置中,仅设置了 ISO image 和 VZDump backup 参数。
对 vms 磁盘执行相同的操作:Edit >> 选择两个项目 Disk image 和 Container 以托管虚拟服务器,然后点击 OK 保存:

要安装虚拟机,必须使用 ISO 镜像。必须以某种方式将其上传到 Proxmox。这并不难,但请记住,您只能将镜像上传到支持此功能的存储。在我们的示例中,选择了 Local 驱动器上的选项。我们将虚拟机镜像加载到其中。为此,打开所需的存储并选择 ISO Images 选项卡,然后点击 Upload 按钮并选择所需内容:

将打开一个窗口,您必须在其中指定 ISO 镜像的路径:

在 Proxmox 中下载 ISO 镜像的另一种方法是使用 scp 或直接下载镜像(通过 wget)。如果使用安装后默认添加的默认存储,则必须将其放置在 /var/lib/vz/template/iso 目录中。然后,您应该等待下载完成。现在可以使用此镜像在虚拟机上安装操作系统。
虚拟机安装¶
点击左侧面板上的 Datacenter 进入主窗口:

然后,点击右上角的 Create VM 按钮:

在 General 部分,填写 VM ID:服务器名称(我们保留默认值 100):

在 OS 部分,选择之前下载的 ISO 镜像,并在右侧选择操作系统的类型和版本:

在 System 部分,您可以设置所需的 SCSI 控制器、BIOS(Legacy, UEFI)和其他参数:

在 Disks 部分,可以指定:总线/设备:(IDE, SCSI, SATA...),存储:指出虚拟服务器磁盘在服务器物理磁盘上的位置,磁盘大小:以 GB 为单位的大小:

在 CPU 部分指示核心数量:

在 Memory 部分,指定内存量:

在 Network 部分,指定虚拟服务器将通过其工作的接口(网桥)(在我们的示例中,这是 Linux 网桥)。在下拉列表的右侧,您必须为虚拟服务器选择接口(模型)。例如,模型 - e1000 最适合 Windows 系统的兼容性:

执行这些步骤后,虚拟服务器应显示在主窗口中(第一个窗口中默认设置名称 100,如有必要可以更改):

接下来,您应该右键点击服务器名称并点击 Start(如果虚拟服务器无法启动,您必须重启整个物理主机。为什么需要这样做?网络和磁盘子系统已配置,根据建议应用设置需要重启 Proxmox 服务器):

启动虚拟服务器后,您需要打开控制台窗口 - 右侧的 Console,或者也右键点击服务器并在最底部的下拉列表中选择 Console:

将打开一个控制台窗口,单独或在右侧。在我们的示例中,我们安装 CentOS 7:

您应该点击链接 Install CentOS 7 并开始安装系统。在第一个窗口中,选择语言并点击 Continue:

在主窗口中设置所有必要设置:

输入服务器名称,并在 Network & HOST NAME 部分点击 Configure 按钮:

在打开的窗口中,进入 IPv4 Settings >> Method 选项卡:选择 Manual(IP 地址将手动设置),输入 IP 地址,指定 DNS 设置,务必勾选 Required IPv4 for this connection 框,然后点击 Save。

然后,在打开的窗口中,将按钮设置为 ON 状态,并点击 Done 以保存设置:

在主窗口中进行更改后,点击 Begin Installation 按钮:

系统将要求您在账户设置窗口中为 root 设置密码。您还可以在此处创建附加用户。同时,系统将安装软件包:

安装结束时,系统将报告安装成功,并要求您为 root 用户设置密码(如果尚未设置)。要完成配置,点击 Finish configuration 按钮:

之后,系统将要求您点击 Reboot 按钮以重启:

虚拟服务器重启后,您可以通过 SSH 访问它,指定 IP 作为 root 用户以及在上一安装步骤中指定的密码。
容器创建¶
要创建容器,必须首先下载将在容器中加载的操作系统模板。首先,确保存储允许存储系统模板。
然后您应该进入 Datacenter - 右侧的 Storage:

磁盘必须具有 Container template 参数:

如果不存在此参数,您需要选择具有 Type: Directory 的必要磁盘并点击 Edit 按钮。在 Content 下拉列表中,选择 Container Template 并点击 OK 以保存:

然后点击设置了 Container Template 参数的磁盘名称(在我们的案例中是 local 磁盘),在右侧选择 CT Templates,并进入可以加载所需模板的窗口:

要下载模板,请在模板下载窗口中点击 Templates 按钮:

在打开的窗口中,选择容器中所需的操作系统版本。点击其名称和 Download 按钮:

我们下载了 Alpine:

然后右键点击物理服务器名称(在我们的案例中是 26671)并选择 Create CT:

在 General 部分,设置容器名称并指定用于进入容器的 root 密码:

在 Template 部分指定下载的镜像(在我们的案例中是 Alpine):

在 Disks 部分的 Storage 窗口中,指定容器将放置在哪个物理磁盘上,在 Disk size(GiB) 窗口中:磁盘大小(以 GB 为单位)。除了 rootfs,您可以在右侧添加容器工作可能需要的分区。例如,/db 用于存储数据库文件:


在 CPU 部分指定核心数量:

在 Memory 部分,内存大小:

在 Network 部分,指定网桥,输入为虚拟服务器购买的 IP 地址,指定 Static 参数并按下 Next 按钮:

在 DNS 部分输入地址和域名(如果有)。

对于最终检查,所有已设置的设置都显示在 Confirm 窗口中。如果一切正确,点击 Finish 按钮:

将打开一个任务执行窗口。如果组装正确,应收到状态 TASK OK:

在主窗口中进行设置后,容器 101 应显示在右侧:

右键点击它并按下 Start。然后选择 Console 部分,容器的控制台窗口将显示在右侧:

您应该输入 root 登录名和在配置期间设置的密码并进入容器。

然后您需要检查创建的磁盘分区和网络设置:

如您所见,IP 地址和挂载点是正确的。您可以通过 ping 地址 8.8.8.8 来检查网络的正确性:

Proxmox 服务器的初始设置已完成。
测试 Proxmox 集群并配置 Ceph¶
备注
Proxmox 复制功能有助于提高基础设施的可用性和性能。它允许您创建虚拟机的副本,并在发生事故时将它们转移到其他服务器,即确保虚拟化基础设施更高的可用性和性能。
前置配置和连接到服务器¶
在开始复制过程之前,需要进行一些设置并连接到第一台服务器:
步骤 1. 在控制面板中,进入 Cluster 部分并点击 Create Cluster 按钮:

步骤 2. 输入集群名称和用于集群稳定运行的网络(或子网列表)。然后点击 Create 按钮:

步骤 3. 在 Cluster 部分,进入 Join information 选项卡并从 Join information 窗口复制信息。此信息用于将第二台服务器连接到集群:


步骤 4. 在第二台服务器上,在 Cluster 部分,进入 Join Cluster 选项卡:

并输入在上一步中复制的连接信息:

我们设置密码(root)和用于连接的服务器 IP 地址,之后我们点击 Join-cluster name 按钮:

步骤 5. 等待连接到集群:

创建 ZFS 分区以设置虚拟服务器复制¶
我们的服务器中安装了两个磁盘:系统安装在第一个磁盘上,第二个磁盘用于托管将复制到类似物理服务器的虚拟服务器。您需要通过 SSH 进入物理服务器并输入 lsblk 命令。下面的示例显示我们有一个未分区的磁盘 /sdb。我们将使用它来托管服务器并设置复制:

在服务器管理的主窗口中,选择物理服务器并创建 ZFS 分区:

在打开的窗口中,您必须在 Name 行中输入分区名称。Create:ZFS 菜单分为几个功能块:您可以在右侧配置 RAID,并在下方选择要组合成 RAID 组的磁盘。
重要的是要注意消息:Note: ZFS is not compatible with disks backed by a hardware RAID controller。根据建议(屏幕上将显示文档链接),用于 ZFS 的磁盘应绕过硬件 RAID 控制器呈现给系统。完成设置后,需要完成添加磁盘 - 点击 Create 按钮:

结果,物理服务器上的磁盘子系统已配置:

完成上述设置后,可以继续安装虚拟服务器。为此,您可以使用此说明。
复制配置¶
在服务器管理的主窗口中,您需要选择要放入复制的虚拟服务器。在我们的案例中,它位于物理服务器 prox1 上,虚拟服务器名称为 100 (CentOS 7)。
步骤 1. 进入 Replication 部分并点击 Add 按钮:

步骤 2. 在打开的窗口中指定将执行复制的物理服务器以及复制:

成功配置复制的结果可以通过选择必要的物理服务器并点击 Replication 按钮来查看。在右侧,您将看到设置为复制的服务器、复制时间和当前状态。

复制操作¶
在没有共享磁盘的两台服务器上配置集群和复制仅在没有任何故障的情况下才是好的,并且在计划工作期间,您可以通过右键点击其名称并选择 Migrate 项来简单地切换虚拟服务器。如果其中一台物理服务器发生故障,当只有两台服务器时,切换不会发生。您将不得不手动恢复虚拟服务器。因此,我们在下面给出了一个更稳定和可靠的解决方案示例,即三台服务器的集群。添加第三台服务器是按照描述的将物理服务器添加到集群的步骤进行的。

磁盘信息:
- data_zfs - 在每个服务器上创建 zfs 分区以配置虚拟服务器的复制;
- local - 安装了系统;
- pbs - Proxmox 备份服务器;
- rbd - Ceph 分布式文件系统。
网络设置信息:
- Public network - 用于管理 Proxmox 服务器,也是虚拟服务器运行所必需的;
- Cluster Network - 用于同步服务器之间的数据,以及在物理服务器发生故障时迁移虚拟服务器(网络接口必须至少为 10G)。
测试环境中设置的示例:

部署三台服务器的集群后,您可以在 2 台服务器上配置复制。因此,三台物理服务器将参与迁移。在我们的案例中,复制是为 prox2 和 prox3 服务器配置的:

要在虚拟服务器上启用 HA 模式(高可用性,虚拟服务器迁移),您需要点击 Datacenter,在右侧选择 HA 项并点击 Add 按钮:

在打开的窗口中,在 VM 下拉列表中,选择您想要启用 HA 的所有服务器并点击 Add 按钮:

成功添加的示例:

我们还可以检查虚拟服务器本身是否启用了 HA 模式。为此,您需要点击必要的虚拟服务器(在我们的案例中是 CentOS7)并在右侧选择 Summary 部分。
在我们的示例中,HA 模式正在运行,您可以禁用第一台服务器并检查 VM 迁移到可用的物理服务器之一:

测试服务器故障时的 HA 操作¶
正确配置虚拟服务器复制后,我们可以测试集群的操作。在我们的案例中,我们禁用了物理服务器 prox1 上的所有网络端口。稍后(在我们的案例中为 4 分钟),CentOS 7 虚拟服务器切换,并且可以通过网络访问。
检查切换结果和服务器可用性的示例:


作为此步骤的结果,配置了三台服务器的集群、带有 ZFS 的内部磁盘以及虚拟服务器上的 HA 选项。
将虚拟服务器从一台物理服务器切换到另一台¶
要将虚拟服务器从一台物理服务器切换到另一台,选择所需的服务器并右键点击它。在打开的菜单中,选择 Migrate 项:

点击 Migrate 按钮后,将打开一个窗口,您可以在其中选择计划迁移虚拟服务器的服务器。选择服务器并点击 Migrate:

迁移状态可以在 Task 窗口中跟踪:

迁移成功完成后,Task 窗口中将显示消息 TASK OK:

我们还将看到我们的虚拟服务器已移动到 prox3 服务器:

测试 Ceph 操作¶
注意
我们将 Ceph 设置为测试,并未在生产环境中使用。
在互联网上很容易找到大量关于 Proxmox 上 Ceph 安装的材料,因此我们将仅简要描述安装步骤。要安装 Ceph,您需要选择一台物理服务器,选择 Ceph 部分并点击 Install Ceph 按钮:

Ceph 版本默认设置。您需要点击 Start nautilus installation 按钮。系统将要求您在安装后指定网络设置。在我们的案例中,配置是从第一台服务器进行的,其 IP 地址作为示例指示:

点击 Next 和 Finish 按钮以完成安装。配置仅在第一台服务器上执行,系统将自动将其传输到其他两台服务器。
然后您需要配置
- Monitor - 协调员的角色,服务器之间的信息交换。建议创建奇数个以避免情况(脑裂)。监视器以法定人数工作:如果超过一半的监视器失败,集群将被阻止以防止数据不一致;
- OSD - 是存储单元(通常是磁盘),存储数据并通过与其他 OSD 交换数据来处理客户端请求。通常,每个 OSD 都有一个单独的 OSD 守护进程,可以在安装了该磁盘的任何机器上运行;
- Pool - 组合 OSD 的池。它将用于存储服务器的虚拟磁盘。
然后您需要添加具有 Monitor 和 Manager 角色的服务器。为此,点击物理服务器名称,进入 Monitor 部分,Create 项,并选择联合在集群中的服务器。逐个添加它们:

必须从具有 Manager 角色的服务器执行类似的操作。集群的正确运行需要多台具有此角色的服务器。

添加 OSD 磁盘类似:

根据建议(屏幕上将显示文档链接),磁盘应绕过硬件 RAID 控制器呈现给系统。使用硬件 RAID 控制器可能会对 Ceph 实现的稳定性和性能产生负面影响。
配置的 Ceph 示例(所有三台服务器上都有 /dev/sdc 磁盘):

Ceph 配置的最后一个步骤是创建池,稍后在创建虚拟服务器时将指定该池。为此,点击物理服务器名称,进入 Pools 部分,并进行以下设置:

使用的参数含义描述:
- 如果
Size=3且Min.Size=2,那么只要三个 OSD 放置组中的两个工作,一切都会正常。如果只剩下一个 OSD,集群将冻结该组的操作,直到至少还有一个 OSD “复活”。 - 如果
Size=Min.Size,那么当包含在内的任何 OSD 崩溃时,放置组将被阻止。由于高水平的“涂抹”数据,大多数至少一个 OSD 的崩溃将以冻结整个或几乎整个集群告终。因此,Size 参数必须始终至少比 Min_Size 参数大一点。 - 如果
Size=1,集群将工作,但任何 OSD 的故障意味着永久数据丢失。Ceph 允许您将此参数设置为 1,但即使管理员出于特定目的和短时间这样做,他也承担可能出现问题的责任。 - 我们上面创建的池 (rbd) 在创建虚拟机时使用。在 Disks 部分,它将包含我们虚拟服务器的磁盘:

测试 Proxmox 备份服务器¶
前置配置¶
备注
Proxmox Backup Server 2.3-1 是从 官方网站 下载的 ISO 文件安装的。安装直观且只需几次点击,因此我们没有描述步骤。
要在使用 Proxmox 备份服务器后与其工作,您需要打开链接 https://IP address that was specified at the time of installation:8007/。
您可以在主窗口中根据用户需求配置服务器。
以下是我们在测试过程中认为有趣的主要要点。要存储信息,您需要添加磁盘。通过 SSH 进入服务器并输入 lsblk 命令。
在我们的案例中,未分区的磁盘是 sdb。我们将使用它来存储备份:

我们再次返回服务器的 Web 界面并进入 Storage / Disks >> ZFS 部分:

在打开的窗口中,您需要:
- 输入存储库名称;
- 如果有多个磁盘,选择 RAID;
- 选择用于存储的磁盘;
- 点击
OK以应用设置。

执行结果:

用户创建¶
为了划定访问权限并在 Proxmox 服务器上连接备份系统,您需要创建可以管理系统的用户。
步骤 1. 进入 Access Control 菜单并点击 Add 按钮:

步骤 2. 输入用户名和密码(两次),然后点击 Add 按钮:

然后您需要创建 Namespace - 用于存储信息的空间。为此,进入 Data 部分:

然后在右侧点击 Add NS 按钮:

并为之前创建的每个用户创建空间:

创建结果:

分配访问权限¶
步骤 1. 要分配访问权限,进入 Data 部分:

步骤 2. 进入 Permissions 子部分并点击 Add 按钮。在打开的窗口中指定用户和 Namespace:

步骤 3. 从下拉列表中选择一个角色:

为 user1 和 user2 设置访问权限的示例:

将 Proxmox 备份服务器添加到 Proxmox 服务器是根据创建的访问权限进行的:

填写所有字段,以下是示例:

指纹复制到 Proxmox 备份服务器 – Dashboard:


点击 Add 按钮后,创建的部分将出现在管理 Proxmox 服务器的主窗口中:

如果您进入 Storage >> BackupSRV_user2,在右侧,我们将看到没有其他用户制作的服务器备份:
User2 的示例:

之前为 User1 所做的示例:

您可以在 Backup 部分查看和管理备份。在此处,您可以添加要备份的服务器并查看执行状态:

点击 Add 按钮后,在打开的窗口中,您可以选择:- 您想要备份的服务器,- 备份时间,- 备份模式,并指定备份将位于哪个 Storage 上:

在 Retention 选项卡中,您可以指定保留的副本数量:

从备份恢复服务器¶
为了恢复服务器,您需要切换到之前连接的 Proxmox 备份服务器磁盘。然后选择要恢复的虚拟服务器并点击 Restore 按钮:

恢复服务器时,必须指定 Storage - 可以恢复到的分区,以及 Name - 恢复的服务器名称,以及服务器参数:

可以恢复单个文件。您还必须选择服务器并点击 File Restore 按钮。以下是文件系统结构和文件的示例:
