常见的pve使用问题

[TOC]

场景1:安装 windows 无法识别硬盘

报错原因

  • 创建虚拟机,在配置 OS 的时候,Type 默认为 Linux,需要改为 Microsoft Windows
  • 创建虚拟机,在配置 System 的时候,务必指定 TPM StorageEFI Storagelocal-vm

场景2:无法登录 web 页面

症状:2022.11.18,在联想SR558H上装完vpe之后,打不开 https://ip:8006,且登录pve后台,ping 不通网关地址

解决:后来经过多次尝试才发现,这台机器共2块网卡,每块网卡有4个网口,pve默认使用第一块网卡的第一个网口,后来在配置网络及IP地址的时候,调整绑定正确的网口就好了,调整过程如下:

场景3:无法关闭虚拟机

症状:2023.03.03.有一台windows机器无法关机,在vpe终端对该虚机执行 StopShutdown 都失败。

解决:登录pve的 >_ Shell 控制台,执行 qm list 找到这台虚机的 vmid(比如示例windows的vmid为103),然后执行 qm stop <vmid> 来执行关机(亲测有效)。

root@node01:~# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       
       100 linux-template       stopped    4096              40.00 0         
       101 k8s-node1            running    4096              40.00 4963      
       102 k8s-node2            running    4096              40.00 8673      
       103 win10-4.240          running    4096              32.00 599826    
       104 ubuntu-template      stopped    4096              32.00 0         
root@node01:~# qm stop 103

场景4:暴露Clickjacking漏洞

症状:2023.03.28.针对pve web暴露的 Web应用程序可能易受Clickjacking 漏洞

针对Apache:在配置文件中添加:Header always append X-Frame-Options SAMEORIGIN
针对Nginx:在 nginx.conf 中 http{} 添加:add_header X-Frame-Options SAMEORIGIN;

解决:实测下来,并未找到配置 X-Frame-Options 的地方。建议通过nginx代理的方式访问pve控制台,在nginx中修复Clickjacking漏洞,并通过iptables封掉源pve端口,具体步骤如下:

  • 第1步,pve服务端:离线安装docker,并拉起一个nginx容器,nginx映射8007:8007
mkdir -p /data/docker/nginx/www
docker pull nginx:1.23.1
cat /data/docker/nginx/nginx.conf
docker run -idt -p 8007:8007 -v /data/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/www:/data --name nginx nginx:1.23.1
  • 第2步,pve服务端:配置nginx代理,将 https://pve.xxx.com:8007 转发给 https://{ip}:8006,注意在nginx.conf中配置域名+证书、消除tls漏洞、点击劫持漏洞,核心配置如下:
http {
    #.修复Clickjacking漏洞
    add_header X-Frame-Options SAMEORIGIN;

    server {
        #.配置ssl证书
        listen 8007 ssl;
        server_name pve.xxxx.com;
        ssl_certificate /data/server.crt;
        ssl_certificate_key /data/server.key;

        #.修复tls漏洞
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        #.配置nginx代理
        location / {
            root html;
            index index.html index.htm;
            proxy_pass "https://192.168.4.37:8006";
        }
    }
}
  • 第3步,pve服务端:配置iptables限制8006仅本机内网ip访问(比如 192.168.4.37),用于nginx转发。而伪装后的8007则允许本网段访问
/usr/sbin/iptables -F
/usr/sbin/iptables -X
/usr/sbin/iptables -Z
/usr/sbin/iptables -A INPUT -i lo -j ACCEPT
/usr/sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
/usr/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 192.168.4.37 --dport 8006 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 192.168.4.0/24 --dport 8007 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 192.168.4.0/24 --dport 22 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
/usr/sbin/iptables -A INPUT -j DROP
/usr/sbin/iptables -A FORWARD -j DROP
  • 第4步,windows客户端:配置hosts
修改 C:\Windows\System32\drivers\etc\hosts
添加 192.168.4.37 pve.xxxx.com
  • 第5步,windows客户端:使用浏览器访问 https://pve.xxxx.com:8007,不要再使用 https://{ip}:8006 来访问

参考:https://forum.proxmox.com/threads/how-to-configure-web-interface-internals.56470

参考:https://bugzilla.proxmox.com/show_bug.cgi?id=2307

场景5:调整内存导致启动失败

症状:2023.05.04.将虚拟机内存从4G改为16G后开机启动失败并显示以下错误:

Kernel panic - not syncing : Fatal exception
Shutting down cpus with NMI

注:没有找到解决办法,最后重装了系统,囧。

场景6:恢复快照遇到 VM is locked

症状:2023.07.19.将虚机恢复快照的时候,最后弹出窗口提示 VM is locked (rollback),执行 qm list 看到该节点(示例305)状态已经是 stopped

root@pve27:~# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       
       100 ubuntu20.04-template stopped    1024              50.00 0         
       101 cnetos79-template    stopped    4096              40.00 0         
       102 kylin-template       stopped    4096              40.00 0         
       305 zhanglu-3.213        stopped    4096              40.00 0         

root@pve27:~# qm unlock 305

解决:执行 qm unlock 305,再次重试ok。

场景7:虚拟机cpu不支持avx指令集

症状:2024.06.18.在pve安装的虚拟机上创建合合ocr容器一直失败(docker run提示restarting且无任何日志)

解决:合合ocr容器及Mongodb 5.0以上版本,都要求CPU必须支持AVX指令集

  • 第1步,确认宿主机的cpu支持avx指令集
#.执行如下命令若无返回则表示不支持adx
cat /proc/cpuinfo | grep avx
lscpu | grep avx
  • 第2步,在pve控制台启用虚拟机的avx指令集支持,然后重启虚拟机即可

Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2024-06-18 20:45:13

results matching ""

    No results matching ""