PVE服务器配置及常见问题处理

服务器 0
1、新装配置

取消订阅
sed -i “s/data.status !== ‘Active’/false/g” /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

更换源
rm -rf /etc/apt/sources.list.d/pve-enterprise.list

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

echo “deb http://download.proxmox.com/debian/pve buster pve-no-subscription” >/etc/apt/sources.list.d/pve-install-repo.list

echo “deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb-src http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib” > /etc/apt/sources.list

apt update

更换LXC国内源

grep -rn “download.proxmox.com” /usr/share/perl5/PVE/* #查找设定下载源的文件
sed -i.bak “s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g” /usr/share/perl5/PVE/APLInfo.pm
wget -O /var/lib/pve-manager/apl-info/mirrors.ustc.edu.cn https://mirrors.ustc.edu.cn/proxmox/images/aplinfo-pve-6.dat

安装时间同步服务
apt-get install ntp -y

2、虚拟机迁移时需要确认几个问题

1、先将虚拟机的磁盘 通过硬件 中的 迁移磁盘 移到共享磁盘中。
2、再用迁移,将服务迁移过去。
3、迁移时需确认硬件,目标服务器是否满足硬盘需求。不能满足的需要先调整。

3、硬盘空间调小
3.0调整虚拟机硬盘的大小

查看虚拟机硬盘信息

fdisk -l
查看虚拟机硬盘路径
lvdisplay
查看虚拟机硬盘大小
lvs
调小虚拟机硬盘2G,备注:调整前先将系统内的硬盘调为未分配状态。
lvreduce -L -2G /dev/pve/vm-100-disk-0

3.1增加 或减小 local 目录的大小即扩容

首先执行命令 fdisk -l ,查看/dev/mapper/pve-root大小,显示内容大概如下面的:

Disk /dev/mapper/pve-root: 4.5 GiB, 4831838208 bytes, 9437184 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes

然后对 /dev/mapper/pve-root 扩容,命令如下,即增加1G的空间.

lvextend -L +1G /dev/mapper/pve-root

执行后实际大小其实是还不会变化的,还需要下边的命令, 作用是执行上边的扩容操作
resize2fs /dev/mapper/pve-root

3.2如何要删除 local-vm 然后把所有的空间都移到 local下,那么如何操作。

1.先移除local-lvm对应的逻辑卷pve/data

 lvremove pve/data

2.对local对应的逻辑卷/dev/mapper/pve-root进行在线扩容

lvextend -l +100%FREE -r /dev/mapper/pve-root

3、执行后实际大小其实是还不会变化的,还需要下边的命令, 作用是执行上边的扩容操作

resize2fs /dev/mapper/pve-root

4、Web中依次展开数据中心-存储,编辑local-lvm,把local-lvm中对应节点移除即可。

5、还有在数据中心-存储,编辑local,内容下拉菜单中把所有的内容都选上,以便这个空间可以储存磁盘映像。

4、开启PVE嵌套虚拟化功能

通过命令检验嵌套虚拟化功能是否已被开启:

vim /sys/module/kvm_intel/parameters/nested
N

开启内核支持:

modprobe -r kvm_intel
modprobe kvm_intel nested=1

现在再看看nested是否已开启:

cat /sys/module/kvm_intel/parameters/nested
Y

编辑配置文件:

echo “options kvm_intel nested=1” >> /etc/modprobe.d/modprobe.conf

5、查看和关闭虚拟机

列出所有虚拟机:

qm list
关闭虚拟机:

qm stop

6、镜像转换

qemu-img convert disk.qcow2 disk.vmdk

7、迁移相关设置

PVE迁移的类型分加密(secure)或不加密(insecure)
secure迁移
优点:信息安全,加密迁移
缺点:非常耗费host主机的CPU资源,且迁移速度慢
insecure迁移
优点:迁移速度快,对host主机的资源消耗小
缺点:不是加密迁移,信息安全需要考虑
如果在网络完全自主可控的情况下,可以考虑insecure迁移

迁移类型在配置文件中设置,web控制台无法设置
进入任意host节点----shell
root@m71:~# cat /etc/pve/datacenter.cfg
keyboard: en-us
migration: network=172.18.171.71/24,type=insecure
type可以设置为 加密secure(默认)不加密insecure

8、其它

如果只希望使用所有节点的列表,请使用:
pvecm nodes

使分离的集群网络 添加回节点
将节点添加到具有独立集群网络的集群中时,需要使用link0参数设置该网络上的节点地址:

pvecm add IP-ADDRESS-CLUSTER -link0 LOCAL-IP-ADDRESS-LINK0

删除集群节点
pvecm delnode 节点名称

proxmox 退出集群
1、在需要退出集群的node上停止pve-cluster 服务
systemctl stop pve-cluster.service

systemctl stop corosync.service

2、node上集群系统文件设置未本地模式
pmxcfs -l

3、删除 corosync 配置文件
rm /etc/pve/corosync.conf

rm -rf /etc/corosync/*

4、重新启动集群文件系统服务
killall pmxcfs

systemctl start pve-cluster.service

一个三节点的PVE 6.1+CEPH集群,因为系统损坏,全部重新安装。
注意:
逐一重装系统/重新加入PVE集群/重新加入CEPH集群;

先禁用ceph的recover,避免其因OSD丢失重建:任一节点执行:
for i in noout nobackfill norecover;do ceph osd set $i;done

重新加入pve集群前确保已经从集群中删除

步骤
1.备份配置和证书

备份到/root/bak/目录下,然后打包拷贝到其他地方保存(别忘了,否则就不能还原了):

systemctl stop pvestatd.service
systemctl stop pvedaemon.service
systemctl stop pve-cluster.service

tar -czf /root/bak/pve-cluster-backup.tar.gz /var/lib/pve-cluster
tar -czf /root/bak/ssh-backup.tar.gz /root/.ssh
tar -czf /root/bak/corosync-backup.tar.gz /etc/corosync
cp /etc/hosts /root/bak/
cp /etc/network/interfaces /root/bak/
tar cjvf bak-$(hostname).tgz /root/bak
2.从pve集群删除节点

节点xxx关机,然后在其他节点删除该节点,下面的xxx就是节点名:

pvecm nodes
pvecm delnode xxx
pvecm updatecerts
3.重新安装PVE

尽量和以前一致,尤其主机名/IP地址。
4.恢复备份的配置和证书

把刚才的备份拷贝回来还原,按照原来的目录

tar xjvf bak-xxx.tgz
cp /root/bak/hosts /etc/hosts
cp /root/bak/interfaces /etc/network/interfaces
systemctl stop pvestatd.service
systemctl stop pvedaemon.service
systemctl stop pve-cluster.service

cd / ; tar -xvzf /root/bak/ssh-backup.tar.gz
rm -rf /var/lib/pve-cluster
cd / ; tar -xvzf /root/bak/pve-cluster-backup.tar.gz
rm -rf /etc/corosync
cd / ; tar -xvzf /root/bak/corosync-backup.tar.gz
5.重新加入pve集群

强制加入pve集群,下面的xxx.xxx.xxx.xxx是集群中现存节点的IP地址

pvecm add xxx.xxx.xxx.xxx -force
pvecm updatecerts
6.重新加入ceph集群

6.1安装ceph,直接使用gui上的pveinstall就可以
在正常ceph节点上删除该节点的mon

ceph mon stat
ceph mon rm xxx

6.2重建mon

在图形界面里面新建即可,注意选择重装的节点

6.3激活ceph的osd

ceph-volume lvm activate --all

后附
1.双节点集群删除节点需要修改expect:

pvecm expected 1
pvecm delete
pvecm updatecerts
2.一般错误

Permission denied (publickey).
TASK ERROR: Failed to run vncproxy.

修改/etc/hosts同步到所有节点,如:
192.168.254.11 node1.cqcq.com node1
192.168.254.12 node2.cqcq.com node2
192.168.254.13 node3.cqcq.com node3
3.最后别忘了恢复ceph的自动恢复,同步数据

for i in noout nobackfill norecover;do ceph osd unset $i;done

输出状态

停止

TASK ERROR: storage ‘local-lvm’ does not exist

10、问题处理
1、迁移时提示认证失败时

Host key verification failed.

在控制台运行如下
/usr/bin/ssh -e none -o ‘HostKeyAlias=pve1’ root@192.168.3.241 /bin/true

ssh 192.168.3.241

2、PVE下qm stop提示超时的解决办法

TASK ERROR: can’t lock file ‘/var/lock/qemu-server/lock-108.conf’ - got timeout

rm 该文件就可以了。

1.先在shell里输入 rm /var/lock/qemu-server/lock-108.conf #108是你的虚拟机编号

2.再输入qm stop 108 就可以立即关闭你的108号虚拟机了

3、虚拟机存放路径

iso存放路径: /var/lib/vz/template/iso/

备份路径: /var/lib/vz/dump/

local 路径:/var/lib/vz/images/

local-vm 路径: /dev/pve/

虚拟机配置文件路径: /etc/pve/

集群中虚拟机配置文件路径: /etc/pve/nodes/pve(pve为节点名称)/qemu-server/

4、本机硬盘格式是lvm,新加硬盘想使用zfs格式,那么请一定要关闭swap。 命令为 swapoff -a ,否则zfs会发生很怪异的事情.
5、虚拟机出现问题状态为unkonw的解决方法
service rrdcached stop rm -rf /var/lib/rrdcached/* service rrdcached start
6、 虚拟机无法启动提示:TASK ERROR: storage ‘local-lvm’ does not exist
原因分析:集群导致硬盘指向出错。解决方式:先退出集群,再分离原有的硬盘,重新挂载硬盘退出集群(该步也许可以不用做,一般来说只有集群坏了才可做,没做过验证):1、在需要退出集群的node上停止pve-cluster 服务systemctl stop pve-cluster.service systemctl stop corosync.service 2、node上集群系统文件设置未本地模式pmxcfs  -l3、删除 corosync 配置文件    rm /etc/pve/corosync.conf        rm -rf /etc/corosync/*4、重新启动集群文件系统服务killall pmxcfssystemctl start pve-cluster.service 分离硬盘:找到虚拟机,点硬件,点硬盘,点分离。重新挂载硬盘:SSH进入服务器,执行 qm set 105 -scsi0 local-vm:vm-105-disk-0 前面105 代表虚拟机ID  后面 105 代表对应的硬盘文件虚拟机实际路径: /dev/pve/vm-105-disk-0
7、删除集群所有节点
    删除集群:        /etc/init.d/pve-cluster stop        rm -rf /etc/corosync/*        rm -rf /var/lib/pve-cluster/*        rm -rf /var/lib/corosync/*        /etc/init.d/pve-cluster start
8、从配置文件及镜像中恢复虚拟系统
1、先新建一个同ID的虚拟机。为避免数据被覆盖,先将原来的镜像移动到其它目录。mv /dev/pve/ vm-106-disk-0 /dev/pve99   106为对应的虚拟机磁盘   pve99 为临时备份目录2、备份配置文件mv /etc/pve/nodes/pve/qemu-server/ 106.conf /var/pve/    106.conf 为 106虚拟机的配置文件  /var/pve 为配置文件备份目录3、创建同ID的虚拟机,并尽可能的把配置设为跟原虚拟机的一致,下一步修改时可以少修改点配置。4、将/etc/pve/nodes/pve/qemu-server 下的配置文件改为跟/var/pve/下的一至,除vmgenid 和 smbios1  可以不用改。(如果系统应用授权有出错的,也可以修改 smbios1 的ID,该步没做过验证)5、从/dev/pve99/下移回虚拟机磁盘到 /dev/pve 下。6、在SSH下 用以下命令qm set 106 -scsi0 local-vm:vm-106-disk-0挂载虚拟机磁盘。
9、加入集群里,节点服务器必须没有虚拟机,如果有虚拟机将无法加入集群。
10、INFO: unable to open file ‘/etc/pve/nodes//qemu-server/.conf.tmp’ - Permission denied

pvecm expected 1 告诉服务器集群只有一个节点了。

11、安全的在集群中移动失效的节点
1、pvecm nodes 查看节点信息2、pvecm delnode pve3 删除节点信息3、cd /etc/pve/nodes 跳转至nodes目录下4、rm -rf /pve3 删除pve3 目录及下面的 

也许您对下面的内容还感兴趣: