ESXi迁移到PVE
起因
某天下午,我想登录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/