/www/wwwroot/blog.drearry.com/usr/plugins/AMP/templates/MIPpage.php on line 33
">

ESXi迁移到PVE

2025-01-21T11:42:00

起因

某天下午,我想登录ESXI的控制台看看虚拟机,输入正确的账号密码,无法登录。尝试登录SSH,也是密码错误。
百度得知,这是ESXi的一个Bug,需要登录控制台重启某个服务,或者重启虚拟机。
问题来了,我现在登不上控制台和SSH,无法重启。因为我把显卡直通了,所以本地控制台也无法使用,最后我只能直接断电。
断电之后,我想把显卡直通给关了,尝试几次都没用。百度得知,必须修改配置文件,这更加坚定了我转到PVE的决心。

备份数据

我只有一台服务器,转移之前需要先把数据备份到NAS
我的做法是,使用VMwareWorkstation的下载功能将虚拟机拖回本地,一切正常

导出OVF文件,上传至NAS

安装PVE

安装系统没什么好说的,无脑下一步,等待安装

去除无有效订阅

安装完成,登录Web控制台,提示无有效订阅

使用WinSCP登录PVE,进入 /usr/share/javascript/proxmox-widget-toolkit 目录
修改 proxmoxlib.js 文件,搜索 Ext.Msg.show,将其修改为 Ext.Msg.noshow

PVE自带的VI编辑器会出现乱码,所以我使用WinSCP远程修改

修改完成后,重启系统

更换国内源

打开WinSCP,使用SCP协议连接到PVE。
将对应文件复制到本地修改,然后上传。
添加源之前,需要注释掉默认源。

 #/etc/apt/sources.list
 deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main

#/etc/apt/sources.list.d/ceph.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

#/etc/apt/sources.list.d/pve-enterprise.list
deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription

解决gpg公钥问题

wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

更新镜像源

apt-get update

修改PVE概要信息

警告:修改PVE底层可能会影响PVE稳定性,此脚本是为PVE7.0打造,PVE8.0可能会有兼容性问题
手动修改太麻烦了,我使用老虎大佬的PVE优化脚本
进入PVE Shell

wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

输入 7

修改完成后重启PVE,实际效果如下

其余功能我没用,稳定性未知

挂载数据盘

接着挂载数据盘,擦除磁盘,使用GPT初始化

点击目录并创建目录,选择刚刚初始化的磁盘

文件系统选择ext4,名称自定义

挂载完成

添加NFS存储

进入数据中心,点击存储,添加NFS,ID自定义

导入OVF

首先要转换硬盘格式,下载qemu(点此下载windows版本
配置环境变量

进入OVF所在目录,打开CMD

qemu-img convert -p -f vmdk -O qcow2 [需要转换的vmdk文件名].vmdk [转换后的文件名].qcow2  #vmdk转qcow2

转换完成

更改后缀,改成.iso,然后上传至PVE

上传完成后,创建新的虚拟机,此虚拟机不需要添加CD和磁盘。
打开PVE Shell

cd /var/lib/vz/template/iso/   //进入pve iso的文件路径
mv Ubuntu.iso Ubuntu.qcow2   //修改回qcow2磁盘镜像
qm importdisk 999 Ubuntu.qcow2 local-lvm  //导入磁盘映像到999号虚拟机

导入完成

使用刚刚导入的硬盘

修改引导顺序

虚拟机成功启动

接下来配置网络,进入路由器后台,找到虚拟机的IP(转移之后会生成新网卡,默认是DHCP),然后使用新IP连接SSH,使用nmtui配置网络,把IP配置为转移之前的(无法连接可尝试将网卡替换成intelE1000)

IP配置完成后,删除旧网卡,重启网络服务

sudo systemctl restart network

使用原来的IP登录SSH,转移成功

共享Nvidia显卡给LXC

安装驱动

uname -r #查看内核版本

apt install dkms proxmox-headers-6.5.13-1-pve #这里换成你的内核版本
apt install nvidia-driver

提示模块冲突,安装完成后重启PVE

安装完成,重启PVE

重启之后,验证驱动状态

nvidia-smi

可以看到,我的GT1030和P106已经被识别

部署LXC容器
更换CT模板源

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

systemctl restart pvedaemon.service

下载CT模板

创建LXC容器,和虚拟机类似 。

ls -la /dev/nvidia* #查询显卡代码


修改lxc配置文件 /etc/pve/lxc/ct-id.conf

lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 226:1 rwm
lxc.cgroup2.devices.allow: c 226:129 rwm
lxc.cgroup2.devices.allow: c 239:* rwm
lxc.cgroup2.devices.allow: c 235:* rwm
lxc.mount.entry: /dev/dri/card1 dev/dri/card1 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD129 dev/dri/renderD129 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file

下载相同版本的驱动文件(点此前往

chmod +x #赋予执行权限
./NVIDIA_xxx.run --no-kernel-module #安装驱动
./cuda_xxx.run --override #安装cuda

安装驱动无脑下一步
驱动成功识别

配置emby

尝试在LXC容器里使用Docker运行emby,无法识别显卡,所以我打算直接在lxc容器安装emby
emby官网下载deb包,安装完成后,打开ip:8096
成功识别

挂载群晖NFS存储
先在群晖给媒体库文件夹添加NFS访问权限,然后在LXC容器的功能选项卡勾选NFS

apt-get install nfs-common -y #安装NFS客户端
showmount -e NFS服务器ip地址 #列出nfs服务器上可用的共享目录和允许访问的IP地址范围
mkdir /mnt/nfs #创建挂载点

将nfs服务器上的共享目录挂载到lxc容器内

mount NFS服务器ip地址:/共享目录名 /mnt/nfs

# 服务端nfs协议默认为v3版本:

mount 192.168.2.163:/volume1/NFShare /mnt/nfs

# 服务端nfs协议为v4版本:

mount -t nfs4 192.168.2.163:/volume1/NFShare /mnt/nfs

设置开机自动挂载

# 编辑/etc/fstab:

nano /etc/fstab

# 添加挂载内容,重启后用df -h或ls查看自动挂载是否生效:

NFS服务器ip地址:/共享目录名 /mnt/nfs nfs auto,nolock 0 0

给媒体库文件夹设置777权限

chmod 777 /mnt/nfs

实际效果

可以看到,视频转码时CPU占用率只有28%(图中视频名称是《86不存在的战区》)

参考:
https://blog.csdn.net/JingLisen/article/details/143847366
https://blog.csdn.net/m0_69951597/article/details/127038588
https://www.right.com.cn/FORUM/thread-8297389-1-1.html
https://blog.csdn.net/qq_16651077/article/details/144652453
https://blog.csdn.net/v225m/article/details/125637082
https://www.cnblogs.com/int16/p/18525959
https://blog.csdn.net/Zyt2048/article/details/136276731
https://blog.csdn.net/sxwumm/article/details/131298117
https://post.smzdm.com/p/al82p3eg/

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »