题外话:
为了保障PVE系统即便挂了,里面的虚拟机不受一点影响;可以这么做:
1、PVE自身的宿主机系统可以单独装在一个小的固态硬盘中,16G以上的SSD就够用了;如果用U盘也行,最好是三星或闪迪;
2、PVE下的各种虚拟机全部安装在其他机械盘中;这个盘挂载在PVE系统里面;同时保存好原来的/etc/fstab,这里记录了挂载的硬盘;
一、在原来PVE系统里面保存以下文件:
1、备份PVE下各个虚拟机配置文件
PVE虚拟机部署完成后,请及时备份如下目录文件:/etc/pve/
其中如下几个比较重要:
1)qemu-server:保存了虚机的配置信息(/etc/pve/nodes/pve/qemu-server)
2)lxc:保存了PVE下容器的配置信息(/etc/pve/nodes/KISPVE/lxc/)
-->插播一个题外话:
lxc容器的root密码忘记了,重置密码办法;宿主机输入:pct enter ID
pct enter 806
这个时候可以看到已经进了ID为806的容器里面,再passwd root就能重置密码了
3)storage.cfg:保存了PVE的数据中心各节点存储信息(/etc/pve)
说明:如果挂载有SMB/CIFS 存储;还要记得把密码文件一并要备份,具体位置在这里:/etc/pve/priv/storage/<STORAGE-ID>.pw
4)/etc/default/grub 这个文件主要是存放有硬件直通信息。
2、备份分区挂载配置文件
备份分区挂载配置文件/etc/fstab,这里记载了磁盘的挂载信息,假如丢失或者不记得,会导致虚机磁盘目录不对,无法启动;也可重新挂载。
3、自动启动设置
/etc/crontab 文件中记录了自动启动的命令
38 15 * * * pvesh create /nodes/K3PVE/qemu/200/status/start
二、全新安装PVE
安装好PVE之后需要干的几件事是:
1、替换好国内源;以及去去除无有效订阅+更新lxc容器下载源;
1.更新Debian源
# 中科大Debian源
sed -i.bak 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
# 修改文件的同时, 会创建一个.bak后缀的备份文件
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
2. 更新PVE软件源
2.1 删除或屏蔽默认企业源
rm -rf /etc/apt/sources.list.d/pve-enterprise.list
# 删除企业源
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
#屏蔽企业源
2.2更换中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
3.更新CEPH分布式源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm
4.修复https证书并更新软件源
apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
5. 更新索引并升级安装软件包
apt update && apt dist-upgrade
6.更新LXC容器仓库员(CT)
sed -i.bak "s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm
# 重启PVE核心守护进程,稍等下手动刷新webui 页面
systemctl restart pvedaemon
7.删除无效订阅弹窗
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
# 重启pveproxy.service完成后,需注销PVE登录后, 重新启动浏览器
-------------------------------------------------------------------------
追加信息:
其它常用Debian源
#(任选一个源)
# 清华源
sed -i.bak "s#ftp.debian.org/debian#mirrors.tuna.tsinghua.edu.cn/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.tuna.tsinghua.edu.cn/debian-security#g" /etc/apt/sources.list
# aliyun源
sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.list
# 163源
sed -i.bak "s#ftp.debian.org/debian#mirrors.163.com/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.163.com/debian-security#g" /etc/apt/sources.list
其它常用软件源
# 清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
2、更新PVE宿主机到最新;
3、删除local-lvm
使用命令删除 local-lvm lvremove /dev/pve/data
再将 local-lvm 的空间转移到 local,使用命令lvextend -rl +100%FREE /dev/pve/root
web上存储中心 删除 local-lvm 存储;更新local的内容,全选既可;
4、挂载原有的磁盘
1)用blkid命令首先检查原有虚拟机磁盘的硬盘现在是/dev下的那个sd*;
同时查看硬盘的PARTUUID,使用blkid查看,比如我的分区是/dev/sdb2
将这个PARTUUID写进fstab,注意将我们常规的defaults选项换成nofail,x-systemd.device-timeout=15s
这样防止找不到硬盘,而卡引导;
如下所示:
把这个PARTUUID的磁盘以ext4的磁盘方式挂载到了/mnt/4T
PARTUUID=65d57770-a386-fa46-8db7-68277f3e0f5d /mnt/4T ext4 nofail,x-systemd.device-timeout=5s 0 0
也可以直接恢复备份的fstab,注意查看PARTUUID是否一致既可;
5、开通或恢复硬件直通
恢复的只需要将/etc/default/grub 文件复制到新的PVE下面后,
直接更新grub
update-grub
或者直接编辑后重启PVE, 具体如下:
#编辑grub,请不要盲目改。根据自己的环境,选择设置 vi /etc/default/grub #在里面找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet" #然后修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" #如果是amd cpu请改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
#如果是需要显卡直通,建议在cmdline再加一句video=vesafb:off video=efifb:off video=simplefb:off,加了之后,pve重启进内核后停留在一个画面,这是正常情况
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"
6、恢复虚拟机、容器、存储信息的配置。
把对应的conf文件直接复制到新的PVE下面, 下面示例的KISPVE也就是我们安装PVE给取的名称
1)qemu-server:恢复虚拟机的配置信息(/etc/pve/nodes/KISPVE/qemu-server)
2)lxc:恢复虚拟机容器的配置信息(/etc/pve/nodes/KISPVE/lxc/)
3)storage.cfg:恢复PVE的数据中心各节点存储信息(/etc/pve)
说明:如果挂载有SMB/CIFS 存储;还要记得把密码文件一并要恢复,具体位置在:/etc/pve/priv/storage/<STORAGE-ID>.pw
7、恢复自启动设置文件 /etc/crontab
将备份的crontab文件复制过来既可
30 8 * * * pvesh create /nodes/K3PVE/qemu/200/status/start
其他事项:
2个PVE或者2个linux只要在同一个局域网,传输文件可以用scp命令
scp -r /mnt/2t/images/102/ root@192.168.6.31:/mnt/4T/images/102/
从前面这个路径复制到后面那个路径;所以在2个PVE随便哪个机器上输入命令都行,主要区分好前后路径就行。
避坑说明:
最近弄PVE服务器,发现以前收藏记录的重装,只备份/var/lib/pve-cluster/config.db 文件的方式来备份恢复PVE,有坑,这个方式只会打不开PVE的web页面,只显示空白出错的页面。不要用这个方式了,至少我的PVE 8.3.2无法成功的