什么是 Proxmox VE?
Proxmox VE 是一个开源的、企业级的服务器虚拟化平台。它集成了两种虚拟化技术:
KVM: 用于全虚拟化的虚拟机。
LXC: 用于轻量级的容器。
它提供了一个强大且易于使用的 Web 管理界面,让你可以轻松管理虚拟机、容器、存储、网络和集群。
安装前的准备工作
硬件要求:
CPU: 64位处理器(Intel 64 或 AMD64),支持硬件虚拟化(Intel VT 或 AMD-V)。越新越好,核心越多越好。
内存: 至少 4GB,建议 8GB 或以上。运行多个虚拟机需要更多内存。
硬盘: 至少 32GB 的可用空间,建议使用 SSD 以获得更好的性能。对于生产和数据存储,需要更大容量的硬盘(HDD/SSD)。
网络: 至少一个网络接口卡(NIC)。
软件准备:
Proxmox VE ISO 镜像: 从官方网站下载最新版本:https://www.proxmox.com/en/downloads
刻录工具: 如 Rufus(推荐)、Balena Etcher 或 Ventoy,用于将 ISO 镜像写入 U 盘。
一个 U 盘(容量 >= 1GB)。
安装 Proxmox VE
步骤 1:制作启动 U 盘
使用 Rufus 或其他工具将下载的 Proxmox VE ISO 镜像写入 U 盘。模式选择 DD 或 ISO(如果一种模式失败,请尝试另一种)。
步骤 2:启动并开始安装
将 U 盘插入服务器,并从 U 盘启动。
你会看到 Proxmox VE 的启动菜单,选择 Install Proxmox VE 并按回车。
步骤 3:许可协议
阅读并同意最终用户许可协议(EULA),点击 I agree。
步骤 4:选择目标磁盘
选择你要安装 Proxmox VE 系统的硬盘。
重要提示: 这个磁盘将被格式化,所有现有数据都会丢失。
你可以选择文件系统类型,默认的 ext4 对大多数用户来说已经足够。如果你需要更高级的功能(如快照),可以选择 zfs(但需要更多内存)。
点击 Next。
步骤 5:配置国家和地区
设置你的国家、时区和键盘布局。这会影响系统时间。正确设置时区非常重要。
点击 Next。
步骤 6:设置管理员密码和邮箱
Password: 为 root 用户设置一个强密码。这是你登录 Web 界面和系统的最高权限账户。
Confirm: 再次输入密码。
E-Mail: 输入一个有效的邮箱地址。这个邮箱用于接收系统通知(例如备份任务失败、存储空间不足等警告)。
点击 Next。
步骤 7:配置网络
Management Interface: 选择用于管理 Proxmox VE Web 界面的网卡。
Hostname (FQDN): 设置主机名和域名。例如:pve.mydomain.com 或 pve.local.lan。
IP Address (CIDR): 设置 Proxmox VE 主机的静态 IP 地址、子网掩码和网关。强烈建议使用静态 IP,不要使用 DHCP。
例如:192.168.1.100/24,网关 192.168.1.1。
DNS Server: 输入你的 DNS 服务器地址,例如 8.8.8.8(Google DNS)或你的路由器 IP 192.168.1.1。
仔细检查配置,因为安装完成后修改网络配置会比较麻烦。
点击 Next。
步骤 8:确认安装
再次确认所有安装配置信息。
点击 Install,安装过程将开始。
安装完成后,系统会提示你重启。请拔出 U 盘,然后点击 Reboot。
初始配置与 Web 界面介绍
步骤 1:访问 Web 管理界面
服务器重启后,你会在控制台上看到一个地址,格式如下:
https://你的服务器IP:8006
例如:https://192.168.1.100:8006
在你的另一台电脑的浏览器中打开这个地址。
浏览器会显示安全警告,这是因为使用了自签名证书。点击 “高级” -> “继续前往(不安全)”。
步骤 2:登录
语言选择 Chinese (Simplified)。
用户名:root
密码:你在安装过程中设置的 root 密码。
领域:Linux PAM standard authentication
点击 Login。
步骤 3:界面概览
登录后,你会看到 Proxmox VE 的 Web 管理界面。
左上角: 数据中心和节点(服务器)树状图。
资源视图: 显示选中的节点或虚拟机的 CPU、内存、存储和网络使用情况。
菜单栏: 包含各种功能按钮,如“创建VM”、“备份”、“Shell”等。
步骤 4:配置软件源(可选但推荐)
为了获得更快的更新速度(特别是在国内),可以替换为国内镜像源。
点击节点名称 -> Shell。
备份原来的源列表:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
编辑 sources.list,注释掉默认的 deb.debian.org 行,添加清华源:
nano /etc/apt/sources.list
# 默认行注释掉
# deb http://deb.debian.org/debian bookworm main contrib
# deb http://deb.debian.org/debian bookworm-updates main contrib
# 安全更新
# deb http://security.debian.org/debian-security bookworm-security main contrib
# 替换为清华源
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
(按 Ctrl+X,然后按 Y,最后回车保存)
编辑 PVE 源,注释掉付费企业版源(如果你没有订阅),添加社区源:
nano /etc/apt/sources.list.d/pve-enterprise.list
# 注释掉这一行
# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
nano /etc/apt/sources.list.d/pve-no-subscription.list
(如果文件不存在则创建)
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription
更新:
apt update && apt dist-upgrade -y
创建你的第一台虚拟机(以 Ubuntu Server 为例)
步骤 1:上传 ISO 镜像
在左侧树状图中选择你的节点(例如 pve)。
点击 local 存储 -> ISO Images -> Upload。
选择你下载的 Ubuntu Server ISO 镜像文件并上传。
步骤 2:创建虚拟机
点击右上角的 创建VM 按钮。
常规:
节点: 保持默认。
VM ID: 自动生成,保持默认。
名称: 给你的虚拟机起个名字,例如 ubuntu-server-01。
操作系统:
ISO 镜像: 选择你刚刚上传的 Ubuntu Server ISO。
客户机操作系统类型: 选择 Linux,版本选择 6.x - 2.6 Kernel。
系统:
保持默认即可(SCSI 控制器,VirtIO SCSI,QEMU Agent 可以先不勾选)。
机器类型: 默认 i440fx,对于新硬件和系统,建议选择 q35(支持 PCIe 直通等新特性)。
磁盘:
总线/设备: 默认 VirtIO Block(性能最佳)。
存储: 选择 local。
磁盘大小: 根据你的需求设置,例如 32GB。
其他保持默认。
CPU:
核心数: 分配给虚拟机的 CPU 核心数量,例如 2。
类型: 默认 x86-64-v2-AES 即可。
内存:
内存大小: 例如 2048 MB(2GB)。
网络:
桥接: 默认 vmbr0(这是 Proxmox 创建的虚拟网桥,连接到你的物理网卡)。
模型: 默认 VirtIO (paravirtualized)(性能最佳)。
确认:
检查所有配置,确认无误后,点击 完成。
步骤 3:安装操作系统
在左侧树状图中,找到你新创建的虚拟机,点击其名称。
点击右上角的 启动 按钮。
然后点击 控制台 -> NoVNC,这会打开一个浏览器内的虚拟机窗口。
现在,你将像在物理机上一样,开始安装 Ubuntu Server 系统。按照 Ubuntu 的安装向导完成安装。
进阶操作与管理
1. 创建 CT 容器(LXC)
过程与创建 VM 类似,但通常更快、更轻量。
点击右上角 创建CT。
配置模板、密码、资源等。你需要先下载一个容器模板(例如 Ubuntu、Debian),可以在 local 存储的 CT Templates 中下载。
2. 制作模板与克隆
安装并配置好一个虚拟机或容器后,可以将其转换为模板。
右键点击该虚拟机/容器 -> 转换为模板。
之后,你可以右键点击这个模板 -> 克隆,快速创建多个相同配置的实例。
3. 备份与恢复
选择要备份的虚拟机或容器。
点击 备份 -> 添加 来创建备份任务。
你可以设置备份计划(每天、每周)、存储位置和保留策略。
4. 快照
快照可以保存虚拟机在某个时间点的状态,非常适合在安装软件或进行配置更改前使用。
选择虚拟机 -> 快照 -> 拍摄快照。
如果需要恢复,选择快照点,点击 回滚。
故障排除与提示
无法访问 Web 界面: 检查 IP 地址、防火墙是否放行了 8006 端口,以及服务器是否正常运行。
网络问题: 如果虚拟机无法上网,检查 Proxmox 主机的网络配置(/etc/network/interfaces)和虚拟机的网络设置(是否桥接到正确的网桥)。
性能问题: 确保为虚拟机使用了 VirtIO 驱动(磁盘和网络),这能提供接近原生的性能。
订阅警告: 因为没有购买官方订阅,登录后可能会看到“No valid subscription”的警告。这不会影响功能。可以通过修改文件 /etc/apt/sources.list.d/pve-enterprise.list 并更新源来消除,或者点击“确定”忽略它。
添加物理硬盘并给虚拟机分配硬盘
方法一:作为本地存储挂载(最常用)
假设你给服务器新增了一块硬盘,系统识别为 /dev/sdb。
步骤:
在物理层面连接硬盘并启动服务器。
在 Proxmox Shell 中识别新硬盘:
lsblk
你会看到新硬盘,比如 /dev/sdb,没有分区。
格式化硬盘(以 ext4 为例):
mkfs.ext4 /dev/sdb
创建挂载点:
mkdir -p /mnt/storage1
临时挂载并测试:
mount /dev/sdb /mnt/storage1
df -h # 查看是否挂载成功
设置开机自动挂载:
nano /etc/fstab
在文件末尾添加一行:
/dev/sdb /mnt/storage1 ext4 defaults 0 0
在 Web 界面中添加存储:
点击 “数据中心” -> “存储” -> “添加” -> “目录”。
ID:起个名字,如 storage1。
目录:输入 /mnt/storage1。
内容:全选或按需选择(如磁盘映像、容器、备份等)。
点击 “添加”。
完成! 现在你创建虚拟机或备份时,就可以选择这个新的存储空间了。
方法二:作为 LVM 存储(更高级,性能更好)
如果你希望有卷管理、快照等功能,可以创建 LVM。
步骤:
创建物理卷:
pvcreate /dev/sdb
创建卷组:
vgcreate vg-storage /dev/sdb
在 Web 界面中添加存储:
点击 “数据中心” -> “存储” -> “添加” -> “LVM”。
ID:起个名字,如 lvm-storage。
卷组:选择刚创建的 vg-storage。
点击 “添加”。
方法三:添加新硬盘到ZFS
步骤 1:通过命令行创建 ZFS 池
打开 Proxmox 的 Shell(通过 Web 界面或 SSH)。
识别新硬盘:
lsblk
确认新硬盘的设备名,例如 /dev/sdb。请务必确认设备名正确!
创建 ZFS 池:
zpool create -f data /dev/sdb
data:这是你给新存储池起的名字(可以自定义,如 storage, vmdata 等)。
/dev/sdb:这是你的新硬盘设备。
在创建 ZFS 池时,你还可以添加一些优化参数:
# 创建带压缩的 ZFS 池
zpool create -f -o compression=lz4 data /dev/sdb
# 或者设置其他属性
zpool create -f -o compression=lz4 -o ashift=12 data /dev/sdb
compression=lz4:启用压缩,节省空间且几乎不影响性能。
ashift=12:针对 4K 扇区硬盘优化(对现代硬盘推荐)。
如果你已经创建了池,也可以事后设置:
zfs set compression=lz4 data
验证池是否创建成功:
zpool status
zpool list
你应该能看到新的池 data。
在 Web 界面中添加存储
请按照以下步骤操作:
登录 Proxmox Web 界面
点击 "数据中心" (Datacenter)
点击 "存储" (Storage)
点击 "添加" (Add) → "ZFS"
在弹出的窗口中配置:
ZFS 池:从下拉菜单中选择 GT120 (这就是你刚创建的池)
ID:可以保持默认 GT120,或者改成你喜欢的名字(如 data、storage 等)
内容:建议全选,或者至少选择:
✅ 磁盘映像 (Disk image) - 用于存储虚拟机硬盘
✅ 容器 (Containers) - 用于 LXC 容器
✅ 容器模板
✅ 备份 (Backups)
精简配置:保持启用状态(推荐)
节点:保持默认(所有节点)
点击 "添加" (Add)
验证存储添加成功
添加完成后,你应该能在存储列表中看到新的 GT120 存储:
text
存储
├── local
├── local-zfs (rpool) # 你的系统池
└── GT120 # 你新添加的存储
技术解释:精简配置:
启用精简配置:
你创建一个 100GB 的虚拟机磁盘。
实际物理空间只占用几MB(元数据)。
随着你在虚拟机里存文件、装软件,物理空间才逐渐增加。
最大不会超过 100GB。
禁用精简配置:
你创建一个 100GB 的虚拟机磁盘。
立即占用 100GB 的物理空间。
即使虚拟机是空的,这100GB也被占用了。
技术解释:add to HA
HA 是什么意思?
HA = 高可用性
它的作用是:当集群中的一个节点发生故障时,Proxmox VE 会自动将上面运行的虚拟机重新启动在其他健康的节点上。
HA 的工作原理(需要满足严格条件)
多节点集群:至少需要 2 台 Proxmox 服务器。
共享存储:虚拟机磁盘必须放在所有节点都能访问的存储上(如 NFS, Ceph, iSCSI)。
仲裁机制:需要投票决定哪个节点是健康的,防止"脑裂"。
当这些条件满足时,如果你将一台虚拟机加入 HA,那么:
节点 A 宕机 → 系统自动在节点 B 上启动该虚拟机。
为什么单节点环境绝对不能勾选?
你是单节点环境:
你只有一台服务器 pve。
如果它宕机了,根本没有其他节点可以接管服务。
HA 功能完全无用武之地。
你的存储是本地存储:
你的 gt120 存储是直连到 pve 节点的本地硬盘。
即使你有第二台节点 pve2,它也根本无法访问 pve1 上的本地硬盘。
如果 pve1 宕机,pve2 节点会因为找不到虚拟机磁盘而启动失败。
勾选的后果:
系统会尝试为你配置高可用,但因为条件不满足,最终会报错或进入错误状态。
会给系统添加不必要的复杂配置。
通过Shell直接用命令行为虚拟机添加硬盘
操作步骤:
- 确定虚拟机的ID
你可以通过以下方式找到:
在 Proxmox Web 界面中,查看虚拟机列表,每个虚拟机前面都有一个数字ID
或者在 Shell 中运行:qm list - 登录Proxmox Shell(通过Web界面或SSH)。
- 使用以下命令格式添加硬盘(请替换其中的变量):
qm set <VMID> --scsi1 /dev/disk/by-id/你的硬盘ID
qm set 100:修改ID为100的虚拟机配置
--scsi1:添加为SCSI控制器上的第一个设备 - 删除磁盘的命令
qm set <VMID> --delete scsi1
或者更详细的写法:#如果磁盘正在使用,可能需要 --force 参数 qm set 102 --delete scsi1 --force - 如何找到正确的硬盘ID(这比用/dev/sdb更安全):
ls -la /dev/disk/by-id/ - 找到你的Win11硬盘,它应该包含物理硬盘的型号和序列号,例如:
ata-ST2000DM008-2FR102_ABC12345
或者
scsi-SATA_ST2000DM008-2FR102_ABC12345 - 执行添加命令(假设你的Ubuntu VM ID是102,硬盘ID是上面的例子):
qm set 102 --scsi1 /dev/disk/by-id/ata-ST2000DM008-2FR102_ABC12345命令执行成功后,你会在Web界面的虚拟机硬件列表中看到新添加的SCSI硬盘。
- systemctl restart pveproxy
检查Proxmox服务状态
在Shell中运行:
systemctl status pveproxy
如果服务异常,尝试重启:
命令行方法详解
qm set 命令的参数说明:
102:你的Ubuntu虚拟机的ID
--scsi1:添加一个SCSI控制器上的第一个设备(scsi0可能已被系统盘占用)
/dev/disk/by-id/...:使用唯一的硬盘ID,避免设备名变化
在Ubuntu虚拟机中挂载硬盘
现在启动Ubuntu虚拟机并挂载硬盘:
- 启动Ubuntu虚拟机:
在Web界面中启动VM ID 100,或者用命令:qm start 100 - 登录Ubuntu系统,查看新硬盘:
sudo lsblk -f
你应该能看到一个新设备,比如/dev/sdb,而我的从win11系统拆过来的硬盘包含NTFS分区。 - 如果含NTFS分区,需要安装NTFS支持:
sudo apt update && sudo apt install ntfs-3g - 创建挂载点并挂载:
sudo mkdir -p /mnt/windows_drive
sudo mount -t ntfs-3g /dev/sdb1 /mnt/windows_drive
注意:如果/dev/sdb1要使用你的分区,请根据 lsblk 输出调整 - 访问文件:
ls -la /mnt/windows_drive/Users/
设置自动挂载
有几种方法,我推荐方法二,最安全可靠。
方法一:编辑 /etc/fstab(传统方法)
- 在 Ubuntu 中,先获取分区的 UUID(更安全,不依赖设备名):
sudo blkid - 找到你的 NTFS 分区,记下 UUID,例如:
/dev/sdb1: UUID="1234ABCD-5678" TYPE="ntfs" - 编辑 fstab 文件:
sudo nano /etc/fstab在文件末尾添加一行(根据你的实际情况修改):
UUID=1234ABCD-5678 /mnt/windows_data ntfs-3g defaults,uid=1000,gid=1000,umask=022 0 0uid=1000,gid=1000:让你的普通用户有读写权限
umask=022:设置文件权限 - 测试配置是否正确:
sudo mount -a如果没有报错,说明配置正确。
方法二:使用 systemd mount 单元(推荐)
这是更现代、更灵活的方式。
- 创建挂载点目录(如果尚未创建):
sudo mkdir -p /mnt/windows_data - 获取分区 UUID:
sudo blkid
记下你的 NTFS 分区 UUID。 - 创建 mount 单元文件:
sudo nano /etc/systemd/system/mnt-windows_data.mount
添加以下内容(替换为你实际的 UUID):[Unit] Description=Mount Windows Data Drive Before=local-fs.target [Mount] What=UUID=1234ABCD-5678 Where=/mnt/windows_data Type=ntfs-3g Options=defaults,uid=1000,gid=1000,umask=022 [Install] WantedBy=multi-user.target - 启用并测试:
# 重新加载 systemd 配置 sudo systemctl daemon-reload # 立即挂载测试 sudo systemctl start mnt-windows_data.mount # 设置开机自动挂载 sudo systemctl enable mnt-windows_data.mount # 检查状态 sudo systemctl status mnt-windows_data.mount
推荐操作步骤
- 首先确认手动挂载正常:
sudo mount -t ntfs-3g /dev/sdb1 /mnt/windows_data
ls -la /mnt/windows_data/
如果正常,选择一种自动挂载方法(推荐方法二) - 重启测试:
sudo reboot - 重启后验证:
df -h | grep windows_data
ls -la /mnt/windows_data/
重要注意事项
- 先测试再设置:确保手动挂载正常工作后再配置自动挂载
- 使用 UUID:不要使用 /dev/sdb1,因为设备名可能在启动时变化
- 权限设置:uid=1000,gid=1000 确保你的用户账户有读写权限
- 备份重要数据:任何磁盘操作都有风险
格式化硬盘
警告:这会清除3TB盘上的所有数据!
# 查看当前分区情况
sudo fdisk -l /dev/sdc
# 使用parted创建GPT分区表(适合大容量硬盘)
sudo parted /dev/sdc mklabel gpt
# 创建单个分区占用整个磁盘
sudo parted /dev/sdc mkpart primary 0% 100%
# 格式化为ext4文件系统(适合Linux备份)
sudo mkfs.ext4 /dev/sdc1
# 为备份盘创建挂载点并挂载
sudo mkdir -p /mnt/backup_drive
sudo mount /dev/sdc1 /mnt/backup_drive
声明:本文为原创文章,版权归旷野小站所有,欢迎分享本文,转载请保留出处!