PVE折腾记录

Proxmox VE(英语:Proxmox Virtual Environment,通常简称为PVEProxmox),是一个开源的服务器虚拟化环境Linux发行版。Proxmox VE基于Debian,使用基于Ubuntu的定制内核[1] [2],包含安装程序[3]、网页控制台和命令行工具,并且向第三方工具提供了REST API,在Affero通用公共许可证第三版下发行。[4]。Proxmox VE支持两类虚拟化技术:基于容器的LXC(自4.0版开始,3.4版及以前使用OpenVZ技术[5])和硬件抽象层全虚拟化的KVM[6]

电脑配置

去年年底将RX580换成5700xt,年初又将CPU换成了R9 3900X,于是闲置了2600和rx580,又将笔记本卖了,于是限制了一些ssd和硬盘,去年又趁着内存降价淘了两根16G的垃圾内存,在迫击炮上和十铨内存不兼容,于是萌生了组一个itx的念头,于是就有了下列的电脑配置。散热器用了3900x的,风扇选用了一个大风量的Arctic和利民的静音扇,实际体验也很不错,可以做到7*24。其余购入:主板、机箱与电源,都是在好友的推荐下购入

以上配置唯一不太满意的地方就是主板,其实还是直接加200上b450的itx更好些,不过这块主板也是妖板没有特别的问题。

系统选择

  1. Windows 10
  1. Linux:Manjaro、Kali
  1. 虚拟化系统
  1. EXSI:系统需要针对硬件特殊定制(增加网卡驱动等),易用性不足
  2. PVE:开源,基于Debian,支持虚拟机与LXC容器,使用相对简单
  3. Etc:Unraid等,主要都是商用版本,对于我的使用场景暂时没必要

PVE安装

  1. 下载ISO
  2. 利用工具将ISO写入U盘
  3. 利用U盘安装PVE

下载ISO

从这个地址下载pve的iso镜像:pve download

利用工具将ISO写入U盘

利用U盘安装PVE

官方链接

参考链接:

https://post.smzdm.com/p/768830/

初始配置

切换debian源

pve 6.1是基于Debian buster上进一步定制而来,所以基础的软件源使用debian的源即可,这里放一个我认为比较好的镜像源地址:清华Debian镜像使用帮助

安装必要软件

切换PVE源

删除商用源

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

添加非商用的源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
使用国内源代理,加快pve相关的更新

如上图所示,采用了ustc,中科大的源

更新系统与软件

apt update
apt dist-upgrade

修改ceph.lsit以加快ceph的安装(可选)

/etc/apt/sources.list.d/ceph.list 是ceph的源,网上的教程里都没有提及这一点,如果需要使用ceph建议修改,文件内容如下

deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-nautilus/ buster main

注意:利用web gui安装ceph可能会导致ceph源修改失效,建议手动安装所有需要的软件包,在此不一一列出

修改js文件以取消未订阅提示(可选)

文件路径:/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

shell中使用VI等工具编辑,将

if(data.status!=='Active'){

替换为

if(false){

注意:如果更新时将pve相关组件更新,可能胡造成这个修改失效,需要每次重新进行修改

磁盘配置

在安装pve时,选择了ssd作为target,即将pve系统安装在ssd上,在option选项下调整了swap分区的大小为38G。

安装完成后SSD的磁盘分区状态如下:

Device       Start       End   Sectors   Size Type
/dev/sdc1       34      2047      2014  1007K BIOS boot
/dev/sdc2     2048   1050623   1048576   512M EFI System
/dev/sdc3  1050624 250069646 249019023 118.8G Linux LVM

可见,其中主要是LVM分区,LVM分区在此不进行赘述。

LVM其中分区:有三分之一作为root分区,有三分之一作为data分区供最早的虚拟机使用,剩余三分之一就是交换分区了。由于其中大概只有60G是真正PVE可使用的分区,所以必须要有额外的空间作为使用。

机器上总共安装了一块2T、一块1T的机械硬盘,所以计划是将1T的磁盘用作存放ISO、LXC镜像和虚拟磁盘等,2T的磁盘专门用作虚拟磁盘使用,这样可以达到最大的使用率。

分区工具:gdisk,可以使用gdisk做gpt分区,也可以在pve的web gui上进行磁盘挂载与修改,如果玩坏了,可以使用gdisk来进行修改,使用大体上与fdisk相当。

注意:不要使用fdisk进行分区,可能会破坏gpt分区表,导致pve界面无法识别

分区规划:

PCIE直通

用途

计划利用pve安装Ubuntu 18.04.4, 并在Ubuntu上安装ROCM,实现amd侧的深度学习环境搭建

基础设置

开启虚拟化、iommu

在主板bios的选项中开启虚拟化和iommu设置,一般来说虚拟化还是比较好找到,但是iommu就不一定了,我是下载了主办的完整说明书,才找到相关设置的位置

修改系统启动选项、系统内核模块

Step 1: 修改Grub配置

vim /etc/default/grub

修改这一行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

For Intel CPUs:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

For AMD CPUs:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"


update-grub

Step 2: 添加VFIO模块

vim /etc/modules

增加以下几行:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Step 3: 更新grub并重启

update-grub
reboot

Step4: 修改虚拟机

给虚拟机新增pci设备

All Functions: YES
Rom-Bar: YES
Primary GPU: NO
PCI-Express: NO (如果需要改动这一项,需要修改机器类型为q35)

方案说明

这是我自己最初的方案,这个方案下,GPU不是PCIE直通,但是在第一次安装后,然后安装ROCM重新启动之后也还是能正常进入系统。其余方案我尝试各种设置都是没法在安装完ROCM后能够进入系统的,图形界面都属于挂起状态,如果能进入终端的时候,rocm也无法识别到显卡,这个方案有很大的不足那就是性能问题,下面会讲。

不足

性能不足:跑tf benchmark,普遍性能只有网上教程里的一半

显卡直通说明

如果是多卡设备,推荐还是参考文末的reddit链接的配置,可以实现完全的显卡直通,不丢失性能。

参考链接:

https://post.smzdm.com/p/768830/

https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough/