ProxmoxVE
2019年08月24日

概述

ProxmoxVE(以下建成PVE)是基于debian的虚拟化管理系统,从目前的使用来看.UI功能做的比OpenMediaVault好的多,功能操作上也更直观.
虚拟化采用的kvm,对于一些操作需要命令行操作

常见问题

没有有效订阅

每次web登录以后,都会提示 没有有限订阅,如下:

没有有效订阅
You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.

可以通过修改验证部分,忽略弹窗:

  1. 先备份一下
cd /usr/share/javascript/proxmox-widget-toolkit/
cp proxmoxlib.js  proxmoxlib.js.backup
  1. 修改
vi proxmoxlib.js

找到if (data.status !== 'Active') {
替换为 if (false) {
3. 保存文件,重新登录.
如果还存在,可以清除浏览器缓存.就可以了

无法停止虚拟机

  1. 连接pve
ssh root@pve
  1. 删除lock文件
rm /var/lock/qemu-server/lock-101.conf

101为虚拟机编号,注意修改
3. 停止虚拟机

qm stop 101

101为虚拟机编号

重定向8006网页端口

  1. 连接到PVE,增加防火墙规则
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006
  1. 查看防火墙规则是否添加成功
iptables -t nat --line-numbers -L

如果需要删除规则,可以执行:

iptables -t nat -D PREROUTING 1

其中1为,规则的顺序索引号

如果希望持久化防火墙规则,可以安装iptables-persistent

  1. 安装
apt install iptables-persistent
  1. 使用
# netfilter-persistent
# Usage: /usr/sbin/netfilter-persistent (start|stop|restart|reload|flush|save)
netfilter-persistent save

参考:

My solution here was to use iptables REDIRECT.

iptables -t nat -I PREROUTING -i eno1 --dst <ipv4-address>  -p tcp --dport 443 -j REDIRECT --to-ports 8006
ip6tables -t nat -I PREROUTING -i eno1 --dst <ipv6-address>  -p tcp --dport 443 -j REDIRECT --to-ports 8006

After you add the rules, you can view them to verify they are correct and test.

ip6tables -t nat --line-numbers -L
iptables -t nat --line-numbers -L

Debian has a nice package to make the rules persistent.
If you have your rules already in place when you install the package, it will prompt if you want to save the existing.

apt-get install iptables-persistent

Use the following command to save future changes

# netfilter-persistent
Usage: /usr/sbin/netfilter-persistent (start|stop|restart|reload|flush|save)

无法停止虚拟机

命令行执行:

rm /var/lock/qemu-server/lock-101.conf
qm stop 101

其中101为虚拟机的编号

硬盘直通

  1. 查看硬盘ID
ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 10 Aug 25 08:03 dm-name-pve-root -> ../../dm-0
lrwxrwxrwx 1 root root 10 Aug 25 08:03 dm-name-pve-swap -> ../../dm-1
lrwxrwxrwx 1 root root 10 Aug 25 08:03 dm-uuid-LVM-lyLR1ZN7m1w7Aja7fIRyoe4B7BUsAeLUvdyglg2wQATofdhNu43rGCSYpuCyCyNl -> ../../dm-1
lrwxrwxrwx 1 root root 10 Aug 25 08:03 dm-uuid-LVM-lyLR1ZN7m1w7Aja7fIRyoe4B7BUsAeLUXupQz3iuob6qGsJT4MpraFR5GTnwI4XL -> ../../dm-0
lrwxrwxrwx 1 root root 10 Aug 25 10:18 lvm-pv-uuid-9OKvKi-UPHy-8k43-sdBO-DUDZ-jARO-sxOcdV -> ../../sdd3
lrwxrwxrwx 1 root root  9 Aug 25 08:27 scsi-3600508b1001c0091115a2f26c21226a0 -> ../../sdc
lrwxrwxrwx 1 root root 10 Aug 25 08:27 scsi-3600508b1001c0091115a2f26c21226a0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  9 Aug 25 08:26 scsi-3600508b1001c647dfc1a09fbae03742c -> ../../sdb
lrwxrwxrwx 1 root root 10 Aug 25 08:27 scsi-3600508b1001c647dfc1a09fbae03742c-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 Aug 25 12:42 scsi-3600508b1001c83323cc4d0914d4e10a7 -> ../../sda
lrwxrwxrwx 1 root root 10 Aug 25 12:42 scsi-3600508b1001c83323cc4d0914d4e10a7-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 25 12:42 scsi-3600508b1001c83323cc4d0914d4e10a7-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 25 12:42 scsi-3600508b1001c83323cc4d0914d4e10a7-part3 -> ../../sda3
lrwxrwxrwx 1 root root  9 Aug 25 08:03 usb-HP_iLO_Internal_SD-CARD_000002660A01-0:0 -> ../../sdd
lrwxrwxrwx 1 root root 10 Aug 25 08:03 usb-HP_iLO_Internal_SD-CARD_000002660A01-0:0-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 Aug 25 08:03 usb-HP_iLO_Internal_SD-CARD_000002660A01-0:0-part2 -> ../../sdd2
lrwxrwxrwx 1 root root 10 Aug 25 10:18 usb-HP_iLO_Internal_SD-CARD_000002660A01-0:0-part3 -> ../../sdd3
lrwxrwxrwx 1 root root  9 Aug 25 08:27 wwn-0x600508b1001c0091115a2f26c21226a0 -> ../../sdc
lrwxrwxrwx 1 root root 10 Aug 25 08:27 wwn-0x600508b1001c0091115a2f26c21226a0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  9 Aug 25 08:26 wwn-0x600508b1001c647dfc1a09fbae03742c -> ../../sdb
lrwxrwxrwx 1 root root 10 Aug 25 08:27 wwn-0x600508b1001c647dfc1a09fbae03742c-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 Aug 25 12:42 wwn-0x600508b1001c83323cc4d0914d4e10a7 -> ../../sda
lrwxrwxrwx 1 root root 10 Aug 25 12:42 wwn-0x600508b1001c83323cc4d0914d4e10a7-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 25 12:42 wwn-0x600508b1001c83323cc4d0914d4e10a7-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 25 12:42 wwn-0x600508b1001c83323cc4d0914d4e10a7-part3 -> ../../sda3

可以现在web管理界面中,看下要操作硬盘的编号,(诸如sda,sdb,sdc,sdd).记下要直通的硬盘id,这里以sda为例,编号为:scsi-3600508b1001c83323cc4d0914d4e10a7.
注意:不是硬盘下属的分区ID

  1. 直通硬盘
# qm set <虚拟机编号> <总线类型><总线编号> <硬盘路径>
qm set 101 --sata2 /dev/disk/by-id/scsi-3600508b1001c83323cc4d0914d4e10a7

其中101是虚拟机编号,可以在之前创建的虚拟机中看到.
总线类型,一般都是SATA硬盘
总线编号,请查看当前虚拟机-硬件-硬盘部分.顺序增加的一个编号即可.防止与已存在的编号重复.
硬盘路径地址要写全
3. 查看
在web管理界面,虚拟机中可以看到新增加的直通硬盘信息了

img镜像转换

  1. img2kvm
    下载img2kvm
  2. 使用
chmod +x img2kvm
# ./img2kvm <镜像文件名> <虚拟机编号> [存储名称]
./img2kvm synboot.img 101 os

synboot.img转换为kvm虚拟机支持的文件,增加到101号虚拟机中.保存在os存储中
其中os存储位置可选,默认是在local-vm存储中,考虑到我是在TF卡中安装的PVE,默认存储空间有限,所以还是使用硬盘扩展的空间保存虚拟机文件
3. 启用虚拟机硬盘
打开web管理界面,虚拟机-硬件,会看到未使用的磁盘,双击打开-总线类型改为SATA,确认添加.

群晖硬盘规划

默认的synboot.img所转换的磁盘文件是一个引导镜像,在初始化群晖dsm系统的时候,如果虚拟机中没有另外的磁盘,无法进行初始化(pat文件上传),会提示无法格式化磁盘,所以需要第二个磁盘.
而且初始化操作,会直接格式化所有检测到的磁盘,所以对于已经群晖数据磁盘迁移到新虚拟机的情况,在初始化操作之前不要附加到虚拟机系统.

如果需要管理个人数据,强烈建议单独再增加第三个磁盘.(一般个人数据磁盘,选择硬盘直通)

我的策略:
sata0 引导磁盘 os存储-文件
sata1 系统数据盘 os存储-文件
sata2 个人数据盘 直通raid
sata3 下载盘 直通硬盘

虚拟磁盘的效果,类似于把一个文件做成文件系统,让虚拟机使用.直通等于直接把硬盘设备给虚拟机使用.

附加已存在的磁盘

假设已经存在需要挂载的磁盘/dev/sdb

  1. 格式化
mkfs.ext4 /dev/sdb 
  1. 挂载 并且 自动挂载
vi /etc/fstab
/dev/sdb    /mnt/sdb    ext4    defaults    0 0

mount /dev/sdb /mnt/sdb
  1. 关联到PVE
    依次点击:数据中心-存储-添加:
    在弹出窗口中,
    ID <自定义标识,不要重复>
    目录 /mnt/sdb
    内容 全选上

ok,完成添加