Nas系统:Proxmox VE

Proxmox VE是一款基于Debian为底层的、完整的、开源的,企业级服务器虚拟化管理平台。同时支持KVM(虚拟机)和LXC(容器)两种虚拟化技术。

所以Proxmox VE是相对理想的一套虚拟化方案,主要有以下几个原因:

  • 够成熟,有一定的使用规模,网络上也有不少教程。
  • 一站式解决方案,使用相对简单。KVM太底层,折腾起来费劲。 OpenStack太庞大。
  • 免费。Vmware要收费,而且挑硬件。(也有免费的)
  • 不挑硬件。得益于底层是Debian Linux,所以不论是服务器(Dell PowerEdge R630),工作站(Dell Precision Workstation T5810),还是个人电脑(英特尔酷睿 i3-4170)均可以成功安装

 

1、安装

这个比较简单,下载 ProxmoxVE 社区版的镜像:官网地址

刻录到 U 盘里,然后安装到物理机上就可以了,和安装一套linux系统差不多。

想要教程的建议看底部的参考资料,2篇教程[1][2],很详细了。

注意:如果使用个人PC,请一定要在BIOS中打开虚拟化技术(Intel (VMX) Virtuallzation Technology或AMD SVM Mode)。

 

2、配置

Proxmox VE安装之后,有2个储存点。

  • local-lvm
    位置在/dev/pve,储存镜像。
  • local
    位置在/var/lib/vz/template/iso,储存iso镜像 。直接点击local——内容——点击上传就可以上传ISO。

 

3、直通

3.1、直通硬盘

进入PVE的SSH,或者直接进入PVE管理网页Shell

查看你现在的存储设备的序列号:

ls /dev/disk/by-id

然后就能看到所有存储设备的序列号

比如我的软路由主机上有两块硬盘,一个东芝SSD,一个是西数的硬盘,需要挂载的是西数的硬盘

我的西数硬盘序列号是ata-WDC_WDXXXX_XXXX_XXXX,记住这个序列号

然后输入以下代码(请把硬盘序列号换成你硬盘的,100换成你LEDE的虚拟机ID)

qm set 100 -sata1 /dev/disk/by-id/ata-WDC_WDXXXX_XXXX_XXXX

如果返回以下信息,说明已成功挂载

update VM 100: -sata1 /dev/disk/by-id/ata-WDC_WDXXXX_XXXX_XXXX

然后可以进入PVE管理网页,查看是否真的挂载成功.如果看到LEDE虚拟机硬件设备里有这个,就说明成功。

3.2、直通GPU

gpu虚拟化还未能在proxmox的web管理界面提供支持,因此,要启用这个功能,得登录proxmox所在宿主机的系统debian,进行如下操作:

修改grub(与centos稍有差异)。编辑文件/etc/default/grub,修改行“GRUB_CMDLINE_LINUX_DEFAULT="quiet",使其为“GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 。执行指令“update-grub” 使修改生效。

root@pve55:~# update-grub

Generating grub configuration file ...

Found linux image:   /boot/vmlinuz-4.15.17-1-pve

Found initrd image:   /boot/initrd.img-4.15.17-1-pve

Found memtest86+ image:   /boot/memtest86+.bin

Found memtest86+ multiboot image:   /boot/memtest86+_multiboot.bin

Adding boot menu entry for EFI firmware   configuration

done

为检验其效果,用一下指令验证其有效性。

root@pve55:~# dmesg   | grep -e DMAR -e IOMMU

[      0.000000] ACPI: DMAR 0x00000000C88CAD70 0000B8 (v01 INTEL  HSW        00000001 INTL 00000001)

[      0.000000] DMAR: Host address width 39

[      0.000000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0

[      0.000000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap   c0000020660462 ecap f0101a

[      0.000000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1

[      0.000000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap   d2008020660462 ecap f010da

[      0.000000] DMAR: RMRR base: 0x000000c883b000 end: 0x000000c8847fff

[      0.000000] DMAR: RMRR base: 0x000000cb000000 end: 0x000000cf1fffff

[      0.000000] DMAR-IR: IOAPIC id 8 under DRHD base  0xfed91000 IOMMU 1

[      0.000000] DMAR-IR: HPET id 0 under DRHD base 0xfed91000

[      0.000000] DMAR-IR: Queued invalidation will be enabled to support   x2apic and Intr-remapping.

[      0.000000] DMAR-IR: Enabled IRQ remapping in x2apic mode

如果执行“dmesg | grep -e DMAR -e IOMMU”没有输出,则表明存在问题。极有可能是bios设置的问题,需要启动cpu的vt-x支持。对于amd类型的cpu,/etc/default/grub文件对于修改为“GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on”。该项目还支持几个值,可根据情况增加。

新增模块。修改文件/etc/modules,加入如下的行(默认为空):

vfio

vfio_iommu_type1

vfio_pci

vfio_virqfd

IOMMU隔离校验。执行指令 “find /sys/kernel/iommu_groups/ -type l”,有输出则表示正常

root@pve55:~# find   /sys/kernel/iommu_groups/ -type l

/sys/kernel/iommu_groups/7/devices/0000:00:1b.0

/sys/kernel/iommu_groups/5/devices/0000:00:16.0

/sys/kernel/iommu_groups/13/devices/0000:03:00.0

/sys/kernel/iommu_groups/3/devices/0000:00:03.0

/sys/kernel/iommu_groups/11/devices/0000:00:1d.0

/sys/kernel/iommu_groups/1/devices/0000:01:00.1

 

参考资料

  1. 韦易笑.KVM 虚拟化环境搭建 - ProxmoxVE.知乎    
  2. 姚雷.基于PROXMOX VE的家庭NAS搭建方案.知乎