Proxmox VE
- Proxmox VE上传ISO镜像教程
- Proxmox VE 虚拟机磁盘的选择
- 如何更新 Proxmox VE
- Cloud Image and Cloud Init Proxmox 模板
- Proxmox 安装后设置
- 启用 IOMMU
- Linux 使用前设置
- PVE 后台添加证书
- 在 PVE上安装 Openwrt(VM)
- PVE 网络命令
- PVE 开启 ipv6
- PVE 无法关闭虚拟机解决办法
- 强制停止 VM
Proxmox VE上传ISO镜像教程
Proxmox VE上传ISO镜像教程
上传镜像很简单。
默认的iso镜像仓库为(PVE——local——内容)
这里有个模板选项,如果不知道如何下载,在哪儿下载镜像,可以直接在模板下载,当然,我博客页写了一篇在哪儿下载的文章
linux各发行版下载 也可以去清华大学镜像站下载。
我们看看PVE提供的模板有哪些。如下图,竟然全是lxc就是openvz。不是我们需要的镜像,如果不开openvz,就不用管了
我这里上传了一个ubuntu的镜像。
Proxmox VE 虚拟机磁盘的选择
这么多类型?怎么选才能让PVE的磁盘性能得到最优的结果?
先说一下基本的概念吧。
- VirtIO Block:
一种很好的半虚拟化磁盘驱动 - VirtIO SCSI:
VirtIO block优化后的半虚拟化磁盘驱动 - VirtIO SCSI Single:
和VirtIO SCSI一样,只不过一个SCSI磁盘对应一个VirtIO的控制器
那3者有什么区别呢?
当然是VirtIO-SCSI性能比VirtIO-Block性能好
参考:https://www.ovirt.org/develop/release-management/features/storage/virtio-scsi.html
virtio-scsi 功能是一种新的半虚拟化 SCSI 控制器设备。它是 KVM 虚拟化存储堆栈替代 virtio-blk 并改进其功能的替代存储实施的基础。它提供与 virtio-blk 相同的性能,并增加了以下直接好处:
- 改进的可扩展性——虚拟机可以连接到更多的存储设备(virtio-scsi 可以处理每个虚拟 SCSI 适配器的多个块设备)。
- 标准命令集——virtio-scsi 使用标准 SCSI 命令集,简化了新功能的添加。
- 标准设备命名——virtio-scsi 磁盘使用与裸机系统相同的路径。这简化了物理到虚拟和虚拟到虚拟的迁移。
- SCSI 设备直通——virtio-scsi 可以将物理存储设备直接呈现给来宾。
与 virtio-blk 相比,Virtio-SCSI 提供了直接连接到 SCSI LUN 的能力,并显着提高了可扩展性。virtio-SCSI 的优势在于它能够处理数百个设备,而 virtio-blk 只能处理大约 30 个设备并耗尽 PCI 插槽。
virtio-scsi 旨在取代 virtio-blk,保留了 virtio-blk 的性能优势,同时提高了存储可扩展性,允许通过单个控制器访问多个存储设备,并能够重用客户操作系统的 SCSI 堆栈。
简要的可以参考下图
从实际上看
我们创建一个虚拟机,使用VirtIO SCSI控制器,创建了2个SCSI设备,一个VirtIO BLK设备。
在系统下可以看到如下信息
从上面的信息来看,
VirtIO BLK是有独立的磁盘控制器的,叫做:Red Hat VirtIO Scsi controller。
VirtIO SCSI控制器名字叫做:Red Hat VirtIO SCSI pass-through contoller
VirtIO BLK磁盘名叫做:Red Hat SCSI Disk Device
VirtIO SCSI磁盘名叫做:QEMU QEMU HARDDISK SCSI Disk Device
VirtIO-SCSI | VirtIO-BLK | |
磁盘名 | QEMU QEMU HARDDISK SCSI Disk Device | Red Hat SCSI Disk Device |
控制器 | Red Hat VirtIO SCSI pass-through contoller | Red Hat VirtIO SCSI controller |
驱动 | vioscsi.sys | viostor.sys |
然后我们将磁盘控制器改成VirtIO-SCSI-Single
在OS上面再次看
显而易见,VirtIO-SCSI-Single控制器,是一个SCSI磁盘对应一个控制器,这样可以提高性能
有个明显的例子如下https://c.cra.moe/t/topic/24
这边跑了个数据
上面是VirtIO-SCSI-Single模式,下面是普通的VirtIO-SCSI模式
两者看起来差距不大。但是从理论上,还是single模式效益高点。
所以总目前的结论来看,在PVE中要发挥最大的磁盘性能,建议使用VirtIO-SCSI-Single模式的SCSI硬盘。
如何更新 Proxmox VE
编辑
/etc/apt/sources.list
deb http://ftp.us.debian.org/debian buster main contrib
deb http://ftp.us.debian.org/debian buster-updates main contrib
# security updates
deb http://security.debian.org buster/updates main contrib
# not for production use
deb http://download.proxmox.com/debian buster pve-no-subscription
执行
apt-get update
apt dist-upgrade
Cloud Image and Cloud Init Proxmox 模板
安装步骤
- 选择您的 Ubuntu 云映像
- 下载 Ubuntu(替换为您从上面选择的 URL)
wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
- 创建一个新的虚拟机
qm create 8000 --memory 2048 --core 2 --name ubuntu-cloud --net0 virtio,bridge=vmbr0
- 将下载的 Ubuntu 磁盘导入到 local-lvm 存储
qm importdisk 8000 focal-server-cloudimg-amd64.img local-lvm
- 将新磁盘作为 scsi 控制器上的 scsi 驱动器附加到 vm
qm set 8000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-8000-disk-0
- 添加云初始化驱动器
qm set 8000 --ide2 local-lvm:cloudinit
- 使云初始化驱动器可启动并限制 BIOS 仅从磁盘启动
qm set 8000 --boot c --bootdisk scsi0
- 添加串行控制台
qm set 8000 --serial0 socket --vga serial0
不要启动你的虚拟机
现在,配置硬件和云初始化,然后创建模板并克隆。如果您想扩展您的硬盘驱动器,您可以在创建模板之前或克隆新机器之后使用此基础映像。我更喜欢根据需要克隆一台新机器后扩展硬盘驱动器。
- 创建模板
qm template 8000
- 克隆模板
qm clone 8000 135 --name yoshi --full
故障排除
- 如果您需要重置您的机器 ID
sudo rm -f /etc/machine-id
sudo rm -f /var/lib/dbus/machine-id
- 然后关闭它,不要启动它。下次启动时会生成一个新的 id。如果没有,您可以运行:
sudo systemd-machine-id-setup
Proxmox 安装后设置
Proxmox 版本 7.X
(有关 Proxmox 7 的完整指南,请参阅此链接)
更新
- 编辑
/etc/apt/sources.list
deb http://ftp.debian.org/debian bullseye main contrib
deb http://ftp.debian.org/debian bullseye-updates main contrib
# security updates
deb http://security.debian.org/debian-security bullseye-security main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
- 编辑
/etc/apt/sources.list.d/pve-enterprise.list
# deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
- 执行
apt-get update
apt dist-upgrade
reboot
贮存
- 擦除磁盘
fdisk /dev/sda
然后 P 表示分区,然后 D 表示删除,然后 W 表示写入
检查 SMART 监控
smartctl -a /dev/sda
IOMMU(PCI 直通)
(请参阅Proxmox PCI 直通)
- 编辑
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
update-grub
- 编辑
/etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
update-initramfs -u -k all
reboot
VLAN
- 限制 VLAN
nano /etc/network/interfaces
- 设置 VLAN
bridge-vlan-aware yes
bridge-vids 20
NIC 团队示例
nano /etc/network/interfaces
auto eno1
iface eno1 inet manual
auto eno2
iface eno2 inet manual
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer2+3
auto vmbr0
iface vmbr0 inet static
address 192.168.0.11/24
gateway 192.168.0.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
#lacp nic team
如果您正在运行 Proxmox 7,请在此处查看修改后的 LAGG / LACP配置
克隆
在克隆 Linux 机器后运行的命令,以便它重置克隆它的机器的所有信息。
- 更改主机名
sudo nano /etc/hostname
- 更改主机文件,找到主机名并更改它
sudo nano /etc/hosts
- 重置机器ID
rm -f /etc/machine-id /var/lib/dbus/machine-id
dbus-uuidgen --ensure=/etc/machine-id
dbus-uuidgen --ensure
- 重新生成 ssh 密钥
regen ssh keys
sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server
- 重启
启用 IOMMU
进入
nano /etc/default/grub
找到 "GRUB_CMDLINE_LINUX_DEFAULT",变成
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
更新 grub
update-grub
重启
Reboot
验证硬件直通开启是否成功
dmesg | grep -e DMAR -e IOMMU
应该有一行看起来像“DMAR:IOMMU enabled”。如果没有输出,说明有问题。
点对点模式
Intel 和 AMD 芯片都可以使用附加参数“iommu=pt”,以与上述相同的方式添加到内核 cmdline。
iommu = pt
这仅在必要时启用 IOMMU 转换,适配器不需要对内存使用 DMA 转换,因此可以提高管理程序PCIe 设备(未传递到 VM)的 性能
所需模块
添加到 /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
请注意,在基于 5.4 的内核中,其中一些模块已经直接内置到内核中。
IOMMU 中断重映射
如果没有中断重新映射,就无法使用 PCI 直通。设备分配将失败,并显示“无法分配设备“[设备名称]”:不允许操作”或“未找到中断重新映射硬件,将设备传递到非特权域是不安全的。” 错误。
所有使用 Intel 处理器和芯片组且支持 Intel Virtualization Technology for Directed I/O (VT-d) 但不支持中断重新映射的系统都会看到此类错误。较新的处理器和芯片组(AMD 和 Intel)提供中断重新映射支持。
要确定您的系统是否支持中断重新映射
dmesg | grep 'remapping'
如果您看到以下行之一:
- "AMD-Vi: Interrupt remapping enabled"
- "DMAR-IR: Enabled IRQ remapping in x2apic mode" ('x2apic' can be different on old CPUs, but should still work)
然后支持重新映射。
如果您的系统不支持中断重新映射,您可以通过以下方式允许不安全的中断:
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
验证 IOMMU 隔离
对于工作 PCI 直通,您需要一个专用的 IOMMU 组,用于要分配给 VM 的所有 PCI 设备。
你应该有类似的东西:
# find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups /1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3 /devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:1a.0
/sys/kernel/iommu_groups/5/devices/0000:00:1b.0
/sys/kernel/iommu_groups /6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.5
/sys/kernel/iommu_groups/8/devices/0000:00:1c.6
/sys /kernel/iommu_groups/9/devices/0000:00:1c.7
/sys/kernel/iommu_groups/9/devices/0000:05:00.0
/sys/kernel/iommu_groups/10/devices/0000:00:1d.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.2
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
/sys/kernel/iommu_groups/12/devices/0000:02:00.0
/sys/kernel/iommu_groups/12/devices/0000:02:00.1
/sys/kernel/iommu_groups/13/devices/0000:03:00.0
/sys/kernel/iommu_groups/14/devices/0000:04:00.0
要拥有单独的 IOMMU 组,您的处理器需要支持称为 ACS(访问控制服务)的功能。确保为此在 BIOS 中启用相应的设置。
除至强 E3-1200 外,所有至强处理器都支持它们(E3、E5)。
对于 Intel Core 则不同,只有部分处理器支持 ACS。只要支持 VT-d,任何比下面列出的更新都应该支持 ACS。请参阅https://ark.intel.com了解更多信息。
Haswell-E (LGA2011-v3)
i7-5960X (8-core, 3/3.5GHz)
i7-5930K (6-core, 3.2/3.8GHz)
i7-5820K (6-core, 3.3/3.6GHz)
Ivy Bridge- E (LGA2011)
i7-4960X (6-core, 3.6/4GHz)
i7-4930K (6-core, 3.4/3.6GHz)
i7-4820K (4-core, 3.7/3.9GHz)
Sandy Bridge-E (LGA2011)
i7 -3960X(6 核,3.3/3.9GHz)
i7-3970X(6 核,3.5/4GHz)
i7-3930K(6 核,3.2/3.8GHz)
i7-3820(4 核,3.6/3.8GHz)
来自 Ryzen 第一代和更新版本的 AMD 芯片也很好。
如果您没有专门的 IOMMU 组,您可以尝试:
1) 将卡移动到另一个 pci 插槽
2) 将“pcie_acs_override=downstream”添加到内核引导命令行(grub 或 systemd-boot)选项中,这有助于某些 ACS 实施不良的设置。
- 查看有关编辑内核命令行的文档
更多信息:
http://vfio.blogspot.be/2015/10/intel-processors-with-acs-support.html http://vfio.blogspot.be/2014/08/iommu-groups-inside-and-out.html
确定您的 PCI 卡地址,并配置您的虚拟机
最简单的方法是使用 GUI 在 VM 的硬件选项卡中添加类型为“Host PCI”的设备。
或者,您可以使用命令行:
使用“lspci”找到您的卡。地址应采用以下格式: 01:00.0 编辑 <vmid>.conf 文件。它可以位于:/etc/pve/qemu-server/vmid.conf。
将此行添加到文件末尾:
hostpci0: 01:00.0
如果您有一个多功能设备(例如带有嵌入式音频芯片组的 vga 卡),您可以手动传递所有功能:
hostpci0: 01:00.0;01:00.1
或者,自动传递所有函数:
hostpci0: 01:00
PCI Express 直通
添加设备时选中 GUI 中的“PCI-E”复选框,或手动将 pcie=1 参数添加到 VM 配置:
machine: q35
hostpci0: 01:00.0,pcie=1
PCIe 直通仅在 Q35 机器上受支持。
请注意,这并不意味着分配没有此设置的设备将只有 PCI 速度,它只是为来宾设置一个标志,告诉它该设备是 PCIe 设备,而不是“真正快速的传统 PCI 设备”。一些来宾应用程序从中受益。
GPU 直通
对于 VM 配置,它们有 4 种可能的配置:
GPU OVMF PCI 直通(推荐)
为您的 VM 选择“OVMF”作为“BIOS”,而不是默认的“SeaBIOS”。您需要安装支持 uefi 的来宾操作系统。(对于 Windows,请尝试 win >=8)
使用 OVMF,您还可以将 disable_vga=1 添加到 vfio-pci 模块,如果可能,它会尝试从 vga 仲裁中选择退出设备:
echo "options vfio-pci ids=10de:1381,10de:0fbc disable_vga=1" > /etc/modprobe.d/vfio.conf
并且您需要确保您的显卡具有 UEFI 可启动 rom:http: //vfio.blogspot.fr/2014/08/does-my-graphics-card-rom-support-efi.html
bios: ovmf
scsihw: virtio-scsi-pci
bootdisk: scsi0
scsi0: .....
hostpci0: 01:00,x-vga=on
GPU OVMF PCI Express 直通
同上,但将机器类型设置为 q35 并启用 pcie=1:
bios: ovmf
scsihw: virtio-scsi-pci
bootdisk: scsi0
scsi0: .....
machine: q35
hostpci0: 01:00,pcie=1,x-vga=on
GPU Seabios PCI 直通
hostpci0: 01:00,x-vga=on
GPU Seabios PCI Express 直通
machine: q35
hostpci0: 01:00,pcie=1,x-vga=on
如何知道显卡是否兼容 UEFI (OVMF)
获取并编译软件“rom-parser”:
git clone https://github.com/awilliam/rom-parser
cd rom-parser
make
然后转储你的VGA卡的ROM:
cd /sys/bus/pci/devices/0000:01:00.0/
echo 1 > rom
cat rom > /tmp/image.rom
echo 0 > rom
并通过以下方式对其进行测试:
./rom-parser /tmp/image.rom
输出应如下所示:
Valid ROM signature found @0h, PCIR offset 190h
PCIR: type 0, vendor: 10de, device: 1280, class: 030000
PCIR: revision 0, vendor revision: 1
Valid ROM signature found @f400h, PCIR offset 1ch
PCIR: type 3, vendor: 10de, device: 1280, class: 030000
PCIR: revision 3, vendor revision: 0
EFI: Signature Valid
Last image
要与 UEFI 兼容,您需要在结果中添加“类型 3”。
NVIDIA 提示
一些 Windows 应用程序,如 geforce experience、Passmark Performance Test 和 SiSoftware Sandra crash 可能会使 VM 崩溃。您需要添加:
echo "选项 kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
如果您在“dmesg”系统日志中看到大量警告消息,请添加以下内容:
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf
用户报告说 NVIDIA Kepler K80 GPU 在 vmid.conf 中需要这个:
args: -machine pc,max-ram-below-4g=1G
“romfile”选项
http://lime-technology.com/forum/index.php?topic=43644.msg482110#msg482110
默认情况下,某些主板无法通过第一个 PCI(e) 插槽上的 GPU,因为它的 vbios 在启动期间会被遮蔽。您需要在其“正常”工作时捕获其 vBIOS(即安装在不同的插槽中),然后您可以将卡移动到插槽 1 并使用转储的 vBIOS 启动 vm。
要转储 BIOS:
cd /sys/bus/pci/devices/0000:01:00.0/
echo 1 > rom
cat rom > /usr/share/kvm/vbios.bin
echo 0 > rom
然后您可以通过以下命令传递 vbios 文件(必须位于 /usr/share/kvm/ 中):
hostpci0: 01:00,x-vga=on,romfile=vbios.bin
故障排除
BAR 3:无法保留 [mem] 错误
如果您在尝试将卡用于 VM 时遇到此错误:
vfio-pci 0000:04:00.0: BAR 3: can't reserve [mem 0xca000000-0xcbffffff 64bit]
您可以尝试添加以下内核命令行选项:
video=efifb:off
查看有关编辑内核命令行的文档
香料
Spice 在通过 GPU 时可能会带来麻烦,因为它会向来宾提供“虚拟”PCI 显卡,并且即使两张卡都出现,一些驱动程序也会遇到问题。总是值得尝试禁用 SPICE 并再次检查是否出现故障。
HDMI 音频噼啪声/损坏
某些数字音频设备(通常通过 GPU 功能添加)可能需要启用 MSI(消息信号中断)才能正常运行。如果您遇到任何问题,请尝试更改客户机中的 MSI 设置并重新启动客户机。
此处提供了简化此操作的 Windows 工具:https ://github.com/CHEF-KOCH/MSI-utility/releases/latest
Linux 来宾通常会自行启用 MSI。要强制将 MSI 用于 GPU 音频设备,请使用以下命令并重新启动:
echo "options snd-hda-intel enable_msi=1" >> /etc/modprobe.d/snd-hda-intel.conf
使用“lspci -vv”并检查设备上的以下行以查看是否启用了 MSI:
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
如果显示“启用+”,则 MSI 正在工作,“启用-”表示支持但已禁用,如果该行缺失,则 PCIe 硬件不支持 MSI。
这也可以潜在地提高其他直通设备(包括 GPU)的性能,但这取决于所使用的硬件。
BIOS 选项
确保您使用的是适用于主板的最新 BIOS 版本。通常 IOMMU 分组或直通支持在以后的版本中得到了改进。
一些可能需要更改以允许直通工作的常规 BIOS 选项:
- IOMMU 或 VT-d:设置为“启用”或等效项,通常“自动”不一样
- 'Legacy boot' 或 CSM:对于 GPU 直通,它可以帮助禁用此功能,但请记住 PVE 必须安装在 UEFI 模式下,因为如果不启用此功能,它将无法在 BIOS 模式下启动。禁用此功能的原因是它避免了已安装 GPU 的传统 VGA 初始化,使它们能够在以后根据直通要求重新初始化。尝试在单 GPU 系统中使用直通时最有用。
- “Resizable BAR”/“Smart Access Memory”:如果在主机上启用此功能,某些 AMD GPU(Vega 及更高版本)在 Windows 客户机中会遇到“Code 43”。无论哪种方式(目前),VM 都不支持它,因此推荐设置为“关闭”。
验证操作
启动虚拟机并在 CLI 上输入 qm 监视器:“qm monitor vmnumber” 验证您的卡是否在此处列出:“info pci”然后在您的客户操作系统上安装驱动程序。
注:卡支持可能仅限于 2 或 3 个设备。
注意:PCI 设备只能连接到单个 VM。
注意:只要它所连接的 VM 正在运行,此过程就会从 proxmox 主机操作系统中移除该卡。
注意:使用 PCI 直通将驱动器直接呈现给 ZFS(FreeNAS、Openfiler、OmniOS)虚拟机可以进行测试,但不建议用于生产用途。具体的 FreeNAS 警告可以在这里找到: http ://forums.freenas.org/threads/absolutely-must-virtualize-freenas-a-guide-to-not-completely-losing-your-data.12714/
USB 直通
如果您需要通过 USB 设备(键盘、鼠标),请遵循此 wiki 文章:
https://pve.proxmox.com/wiki/USB_physical_port_mapping
Linux 使用前设置
在本教程中设置我们的第一个 Linux 服务器,并逐步完成正确的设置。
更新
sudo apt-get update
sudo apt-get upgrade
重新配置无人值守升级
sudo dpkg-reconfigure --priority=low unattended-upgrades
在您选择的文本编辑器中验证无人值守升级配置文件
/etc/apt/apt.conf.d/20auto-upgrades
要通过自动升级配置禁用自动重启,编辑以下文件
/etc/apt/apt.conf.d/50unattended-upgrades
并通过删除前导斜杠取消注释以下行
//Unattended-Upgrade::Automatic-Reboot "false";
帐户
添加用户
sudo adduser someuser
添加到 sudoers
sudo usermod -aG sudo someuser
SSH 服务器
安装
sudo apt-get install openssh-server
将密钥从客户端复制到服务器
ssh-copy-id someuser@192.168.0.100
切换到基于密钥的身份验证
sudo nano /etc/ssh/sshd_config
添加这些属性
PasswordAuthentication no
ChallengeResponseAuthentication no
联网
静态IP
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens18:
dhcp4: no
addresses:
- 192.168.0.222/24
gateway4: 192.168.0.1
nameservers:
addresses: [192.168.0.4]
安装
oh-my-zsh
sudo apt-get update
sudo apt-get install zsh
sudo apt-get install powerline fonts-powerline
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
修复 LVM
sudo lvm
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
exit
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
主机名
sudo hostnamectl set-hostname
sudo nano /etc/hosts
时区
检查时区
timedatectl
更改时区
sudo timedatectl set-timezone
如果你想要一个菜单,你也可以使用
sudo dpkg-reconfigure tzdata
NTP时间
sudo nano /etc/systemd/timesyncd.conf
NTP=192.168.0.4
sudo timedatectl set-net off
sudo timedatectl set-ntp on
安装 kvm 代理
sudo apt-get install qemu-guest-agent
防火墙
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
fail2ban
sudo apt-get install fail2ban
sudo cp /etc/fail2ban/fail2ban.{conf,local}
sudo cp /etc/fail2ban/jail.{conf,local}
sudo nano /etc/fail2ban/jail.local
backend = systemd
检查状态
sudo fail2ban-client status
sudo fail2ban-client status sshd
PVE 后台添加证书
- 首先我们为自己的域名申请免费的ssl证书,此步骤略,腾讯云、阿里云后台都可以免费申请一年的域名ssl证书。
- 申请到证书后下载,得到xxxx.crt和xxxx.key
- 将xxxx.crt和xxxx.key重命名为 pve-ssl.crt pve-ssl.key,然后将pve-ssl.crt和pve-ssl.key上传到pve主机的/etc/pve/nodes/xx目录下,xx表示pve节点名称,此处我用scp进行上传
scp pve-ssl.crt pve-ssl.key root@192.168.2.3:/etc/pve/nodes/xx
- 使用openssl命令,将pve-ssl.crt转换为pve-ssl.pem
openssl x509 -in pve-ssl.crt -out pve-ssl.pem -outform PEM
- 删除目录下pveproxy-ssl.key和pveproxy-ssl.pem,重新生成。此步骤非常重要,否则进入不了PVE后台。
rm -rf pveproxy-ssl.key pveproxy-ssl.pem
systemctl restart pveproxy
至此,我们已经成功添加PVE后台ssl证书,再次打开后台管理地址已经没有烦人的不安全提示。
在 PVE上安装 Openwrt(VM)
创建虚拟机
1、一般
- 节点【pve】
- VM ID【100】
- 名称【openwrt】
2、操作系统
- 选择【不适用任何介质】
- 类别【Linux】
- 版本【5.x-2.6Kernel】
3、系统
- 完全照下图即可,下一步
4、硬盘
- 完全照下图即可,下一步
5、CPU
- 核心数量 【4】
- CPU权重【1025】
- 启用NUMA【☑️】
6、内存
- 内存(MB)【4096】
7、网络
- 完全照下图即可,下一步
8、点击【完成】
9、分离硬盘
- 选择刚刚创建的“Openwrt”虚拟机
- 硬件
- 硬盘(scsi0)
- 点击【分离】
- 硬盘(scsi0)
- 硬件
10、删硬盘和光驱
- 【未使用的磁盘0】
- 点击【删除】
- 【CD/DVD驱动器(ide2)】
- 点击【删除】
添加启动盘
1、终端登入PVE
ssh root@192.168.2.5
cd /root/
qm importdisk 100 openwrt.vmdk local-lvm --format=qcow2
2、导入成功后在‘Openwrt’虚拟机的“硬件”选项卡就能看到一个“未使用的磁盘0”,选中它点击编辑,弹出配置窗口,设备类型选“sata”,最后点击添加。
3、切换到虚拟机的“选项”选项卡,双击“引导顺序”,第一引导项选“Disk ‘sata0’”。
添加虚拟网卡
1、添加虚拟网卡到虚拟机
- 选择“Openwrt”虚拟机
-
- 硬件【添加 > 网络设备】
- 桥接选【vmbr1】
- 网卡模型选【Virto】
- 点击【添加】
- 硬件【添加 > 网络设备】
-
PVE 网络命令
网络配置
/etc/network/interfaces
IP 地址
vi /etc/issue
vi /etc/hosts
修改hosts
etc/hosts
修改dns
/etc/resolv.conf
重启网络接口和web管理服务
/etc/init.d/networking restart
service pveproxy restart
ip a
ip命令取代了ifconfig命令。上面的命令“ip a”将列出检测到的所有网络适配器,并显示它们的状态(向上/向下)。
ifup
ifup命令将调出(激活)(在线)特定的网络适配器。
ifdown
ifup命令将带下(停用)(离线)特定的网络适配器。
上面的命令也适用于虚拟/绑定适配器,例如vmbr0。
接口配置列表的位置
如果您想编辑接口列表,您可以在这里找到它们:
/etc/network/接口
只需使用这样的nano命令即可进行编辑:
nano /etc/network/接口
安装网络工具
如果您不想处理必须记住的新命令,如“ip a”等......也许您只是想安装您习惯于ifconfig的相同网络命令,只需键入以下命令即可安装它们:
apt-get更新
安装网络工具
PVE 开启 ipv6
Proxmox安装后默认没有通过SLAAC配置公网ipv6地址,使用debian/ubuntu的方法配置ipv6提示错误不支持的方法auto。
1
|
iface vmbr0 inet6 auto |
原来Proxmox使用的是ifupdown2,非debian/ubuntu使用ifupdown。
查看内核也已经开启ipv6自动配置:
1
2
3
4
|
cat /proc/sys/net/ipv6/conf/vmbr0/accept_ra 1 cat /proc/sys/net/ipv6/conf/vmbr0/autoconf 1 |
查看已开启ipv6转发:
1
2
|
cat /proc/sys/net/ipv6/conf/vmbr0/forwarding 1 |
需要将accept_ra值改成2才能自动配置SLAAC ipv6地址:
1
2
3
4
5
6
7
|
/etc/sysctl.conf net.ipv6.conf.all.accept_ra=2 net.ipv6.conf.default.accept_ra=2 net.ipv6.conf.vmbr0.accept_ra=2 net.ipv6.conf.all.autoconf=1 net.ipv6.conf.default.autoconf=1 net.ipv6.conf.vmbr0.autoconf=1 |
PVE 无法关闭虚拟机解决办法
通过 ps命令查看对应 VM进程
ps -ef|grep "/usr/bin/kvm -id 101"|grep -v grep
- 这里查找到的进程ID是20582
- 将这个进程杀掉
kill 20582
强制停止 VM
- 查询 VMID运行 PID号
ps aux | grep "/usr/bin/kvm -id VMID"
- 停止 PID运行
kill -9 PID