针对pve8进行内容修正

This commit is contained in:
gaolifeng
2024-04-03 12:20:38 +08:00
parent 24d82cfcef
commit 6b958d334c
22 changed files with 101 additions and 87 deletions

View File

@@ -4,6 +4,8 @@
Aquar系统是一套整合了多种开源组件的系统集合。Aquar本质上是跑在Proxmox VE虚拟化平台上的若干个虚拟机以及其中自动化脚本的组合。目的是通过一定的预设置以及自动化脚本让本来相互独立的虚拟机之间互相关联使服务器整体上更加易用。
**update 2024.4** 2023年6月pve8更新到了稳定版本本篇指南也针对pve8的变化进行了修正若你在搭建时发现文档中存在问题请在issue中提出来我会找时间修正。
### 核心能力:
- 开机显示宿主机最新IP
@@ -92,6 +94,8 @@ Aquar理论上可以运行在任何X86设备上但建议至少运行在j4125
取得一个公网IP对于提升系统易用性的好处是很大的。最直接的好处就是你可以通过DDNS工具来让自己在公网上直接访问到Aquar上的服务否则你就需要借助各种内网穿透手段达到相同的目的。另外一点也很重要就是远程桌面软件parsec在没有公网IP的情况下将很难建立起连接而parsec恰恰是目前远程桌面软件中体验最好的那个。
如果你无法获取公网IPv4地址也不用担心随着IPv6的发展现在的主流家用宽带都已经能够分配IPv6地址而IPv6地址天生就是公网地址。你可以打电话给宽带的运营人员把家里的光猫设置为桥接模式并在自己的路由器中打开ipv6功能。通过重启路由器或者等待一段时间几小时或几天等到整个局域网中的设备都使用了桥接模式下的新IPv6地址。此时就可以去专门IPv6测试网站上测试一下你的IPv6连通性如何了如果测试通过了你大概率就可以顺利使用parsec、ddns等依赖公网ip的工具了。
### 场地
系统运行时不可避免的产生噪音,主要是风扇声以及机械硬盘写入的声音。即使你使用无风扇的低功耗平台来搭建系统,机械硬盘的声音也是不容小觑的,所以强烈不建议将机器放在卧室等休息的地方。
@@ -172,10 +176,18 @@ OS配置页面选择你上传的TrueNAS IOS镜像并设置操作系统类型
![cef6c0bce5c678620e5b65ae7703dc61.png](./_resources/9174e540850a452d8c8b9bb77a01a6e0.png)
CPU分配了2核另外CPU类型选择了host据说可以提升性能
CPU分配了2核另外CPU类型选择了host在单机情况下这样设置可以获得最小性能损耗
![2b5588315c2f55cfb79679c0e926f58a.png](./_resources/298b46af195e46978cc90c19c12a0c60.png)
在8.x版本的系统中如果使用的是混合架构的CPU如12代i7可以直接在界面的CPU Affinity设置中指定绑定的CPU序号下图的意思是将这个虚拟机的4个核绑定给8-11核也就是能效核E核
![c6a170806f464b3fb71b207cfe545717.png](./_resources/c6a170806f464b3fb71b207cfe545717.png)
查看CPU多核类别的方法是使用`lscpu -e`命令可以看到E核的MAXMHZ会低于P核。
![8bbb54ec64554b84aa8e749f9c3d6585.png](_resources/8bbb54ec64554b84aa8e749f9c3d6585.png)
内存方面由于TrueNAS推荐使用16G以上内存空间所以分配了16G内存但实测在8G内存下也可以正常运行。
![b01828022d70beb7cc49953bf490b8df.png](./_resources/c6df94f705314703bff47499e6405bc3.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -14,7 +14,7 @@ TrueNAS下的NFS服务配置
4.在表单中选择/mnt/目录下自己存储池同名的文件夹
![27c766f389d6cbe5ec77aef771f9cc32.png](../_resources/241888b9568c41fa9f174eb65e95507e.png)
![76f74ba7d7254ffd9caa591ab3d99a4f.png](../_resources/76f74ba7d7254ffd9caa591ab3d99a4f.png)
5.点击ADVANCED OPTIONS高级选项。设置NFS的描述信息勾选Enabled启用NFS共享然后在高级选项中设置为将所有用户的操作都映射为aquar用户。aquar用户创建步骤及原因解释请参考用户配置章节

View File

@@ -14,14 +14,14 @@ TrueNAS下的WebDAV服务配置
4.选择自己想要使用WebDAV服务共享的目录这里我只需要使用WebDAV同步joplin笔记数据所以仅选择了存放joplin数据的目录。另外需勾选Change User & Group Ownership选项在TrueNAS下WebDAV服务的用户名必须是"webdav",我尝试赋权给其他用户但没有成功。
![62ffd10c9ee75a504e8a6e812045d3ee.png](../_resources/89a261daaddd47efaf1a85f8a108aa92.png)
![d879f753b18a4ca299d421bf69b0a370.png](d879f753b18a4ca299d421bf69b0a370.png)
5.验证服务
打开浏览器,输入`http:[TrueNAS内网地址]:8080[/WebDAV服务的名称]`例如http://192.168.0.104:8080/joplindata)如果页面弹出登录提示说明服务已经启动。
打开浏览器,输入`http:[TrueNAS内网地址]:8080[/WebDAV服务的名称]`例如http://192.168.0.104:8080/webdav)如果页面弹出登录提示说明服务已经启动。
![dd641520f2e1759f293fb39275d2e71f.png](../_resources/8d607b024a8942bf8f95e774b353942a.png)
用户名填写webdav密码填写在Services页面设置的密码即可在网页中看到共享目录中的内容。
![17f4cbee4654b7025669c1283ca47cf8.png](../_resources/c6ff350b366c4d81a734aff71e136625.png)
![40f08230c3924e93918c84621d990f3e.png](../_resources/40f08230c3924e93918c84621d990f3e.png)

View File

@@ -13,7 +13,9 @@ TrueNas配置SMB
3.然后转到sharing下配置想要共享出去的目录选择存储池的根目录配置上同样没有做什么特殊的改动截图供参考。
![45771324e2a045b3845e45238ae7a9a7.png](../_resources/45771324e2a045b3845e45238ae7a9a7.png)
![f3568c30ec9724c6bca94434c05cc95f.png.png](../_resources/f3568c30ec9724c6bca94434c05cc95f.png)
![23559d3d55244676ae6fdb64dae0c7fc.png](../_resources/23559d3d55244676ae6fdb64dae0c7fc.png)
4.在同一个局域网中,在文件管理器显示各个硬盘页面的空白处右键,选择“添加一个网络位置”。

View File

@@ -26,14 +26,14 @@ qm set <vm_id> <disk_type>[n] /dev/disk/by-id/<type>-$brand-$model_$serial_nu
例如我想把“ata-...JLA9MS”这块硬盘直通给id为101的虚拟机执行的语句是
```
qm set 101 -scsi2 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
qm set 101 -sata1 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
```
其中qm set是命令101就是虚拟机的id-scsi2指的是使用scis模式直通且其通道编号是scsi2每个虚拟机建立出来以后给他挂载的系统盘编号通常是xxx0如sata0、scsi0等新挂载的硬盘编号只要不与这台虚拟机上已有的编号重复即可。执行完以后如果一切正常控制台会返回一个提示“update VM ...”,具体如下所示:
其中qm set是命令101就是虚拟机的id-sata1指的是使用sata模式直通且其通道编号是sata1每个虚拟机建立出来以后给他挂载的系统盘编号通常是xxx0如sata0、scsi0等新挂载的硬盘编号只要不与这台虚拟机上已有的编号重复即可。执行完以后如果一切正常控制台会返回一个提示“update VM ...”,具体如下所示:
```
root@pve:~# qm set 101 -scsi2 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
update VM 101: -scsi2 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
root@pve:~# qm set 101 -sata1 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
update VM 101: -sata1 /dev/disk/by-id/ata-HGST_HUS724040ALA640_PN1334PCJLA9MS
```
4.这时候打开虚拟机的管理页就可以看到有一块新的硬盘出现在设备列表中,但颜色是橙色的,表示还没有生效,这时重启这台虚拟机就可以使其生效了。

View File

@@ -29,7 +29,7 @@ GRUB_CMDLINE_LINUX_DEFAULT="quiet"
把它改成如下内容, 如果是amd cpu则改成amd_iommu
```
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off,vesafb:off"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
```
@@ -42,7 +42,6 @@ GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off,vesafb:off"
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
```
添加完后如下所示
@@ -55,7 +54,6 @@ vfio_virqfd
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
```
完成后wq保存退出
@@ -66,12 +64,14 @@ vfio_virqfd
6,重启pve
7.在硬件设置功能中点添加-> PCI设备在设备列表中选择想要直通的显卡。勾选“所有功能”勾选PCI-Express勾选“高级"(默认就已勾选)
7.在硬件设置功能中点添加-> PCI设备在设备列表中选择想要直通的显卡。打开“高级"设置项,勾选“所有功能”,勾选主GPUPrimary GPU勾选PCI-Express
![452a79b828df411fb716e70164355868.png](../_resources/452a79b828df411fb716e70164355868.png)
8.打开虚拟机可以看到已经有这个设备了,但是显示没有驱动,到官网上下载驱动,安装好以后显卡就可以正常使用了。
9.将原来的虚拟显卡去掉。关闭虚拟机将硬件列表中原来的显示Display设置为nonenone
9.将原来的虚拟显卡去掉。关闭虚拟机将硬件列表中原来的显示Display设置为VirtIO-GPU。经试验这样配置可以在同时使web console显示及物理显示器画面正常并且parsec可以正常调用独显的解码
10.将新直通的独显设置为主显卡。找到硬件列表中的显卡配置项双击打开设置页面勾选“主GPU”后保存。
![dfc3c7b2041a4e40bb29965623c648ff.png](../_resources/dfc3c7b2041a4e40bb29965623c648ff.png)
11.给独显的接口连接上显示器,重新打开虚拟机, 如果一切正常的话,就可以看到开机画面了。
11.给独显的接口连接上显示器,重新打开虚拟机, 如果一切正常的话,就可以看到开机画面了。安装parsec并启动后也可以正常远程连接。

View File

@@ -4,13 +4,13 @@ truenas下配置用户及权限
![9f2f8d15a5de142b7f850b470c28cf92.png](../_resources/2a0a3ba374b84fccbf463341b1299b04.png)
2.在下面的设置中在存储池中新建一个aquar目录作为aquar的家目录可以在TrueNAS的Shell页面中`mkdir /mnt/aquar_pool/aquar`目录权限勾选如下图所示并勾选Samba Authentication选项。
2.在下面的设置中在存储池中新建一个aquar目录作为aquar的家目录可以在TrueNAS的Shell页面中`mkdir /mnt/aquarpool/aquar`目录权限勾选如下图所示并勾选Samba Authentication选项。
![003ca7d995022796e275c95e7e02ff18.png](../_resources/0f16199a069d4a0c9a2130e6b02ce20e.png)
![f01f2a2d36e745f4a5c50632d4ee83ef.png](../_resources/f01f2a2d36e745f4a5c50632d4ee83ef.png)
3.设置nfs共享选项的高级映射所有用户到aquar用户详见[NFS设置章节](./TrueNAS下的NFS服务配置.md)
4.在truenas的终端中chown -R aquar:aquar /mnt/aquar_pool
4.在truenas的终端中chown -R aquar:aquar /mnt/aquarpool
~~5.把aquar用户添加到gid=666组中与webdav用户同组~~

View File

@@ -3,7 +3,10 @@
PVE更新了7.4版本以后官方提供了一个可选的6.2版本的内核这样一来就可以通过自行将系统内核升级到这个版本来获得对Intel 12代以后CPU核显的直通能力了。这篇文档除了直通配置以外还包含了jellyfin硬解的配置。
# 操作步骤
## 1.升级pve内核至6.2版本
## 1.升级pve内核至6.2版本PVE8以上直接跳过
**注意如果你使用的PVE版本是8那么PVE的核心本身就是6.2以上的所以在这种情况下应该直接跳过步骤1。**
1.1设置软件源为:
@@ -50,7 +53,7 @@ proxmox-boot-tool kernel pin 6.2.11-1-pve
3.0 以超级用户身份登录
3.1`vi /etc/default/grub`编辑grub配置将GRUB\_CMDLINE\_LINUX\_DEFAULT的值改为"quiet intel\_iommu=on video=efifb:off,vesafb:off i915.enable_guc=7",配置全文如下
3.1`vi /etc/default/grub`编辑grub配置将GRUB\_CMDLINE\_LINUX\_DEFAULT的值改为`quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream`,配置全文如下
```conf
# If you change this file, run 'update-grub' afterwards to update
@@ -61,7 +64,7 @@ proxmox-boot-tool kernel pin 6.2.11-1-pve
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off,vesafb:off i915.enable_guc=7"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
@@ -98,7 +101,7 @@ GRUB_CMDLINE_LINUX=""
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
# vfio_virqfd # 若内核在6.2版本以下需要打开注释
```
3.3 `vi /etc/modprobe.d/blacklist.conf` 编辑黑名单让pve开机不加载核显驱动,这个文件可以不存在vi打开时是新建状态添加完配置后文件全文如下
@@ -108,20 +111,30 @@ blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
```
3.4 `vim /etc/modprobe.d/kvm.conf`在其中加入如下内容。
### 3.4 重载系统配置
```
options kvm ignore_msrs=1 report_ignored_msrs=0
```
ignore_msrs=1 意为忽略异常 report_ignored_msrs=0 意为不报告异常
3.4.1`update-grub`刷新grub配置
3.4.2`update-initramfs -u -k all`刷新initramfs
3.4.3`reboot`重启pve
**3.5 重载系统配置**
3.4.4`dmesg | grep -e DMAR -e IOMMU -e AMD-Vi`查询系统状态是否确实开启了IOMMU
3.5.1`update-grub`刷新grub配置
### 3.5 确定核显的设备号
3.5.2`update-initramfs -u -k all`刷新initramfs
3.5.1 执行`lspci`命令可以看到pci设备的列表大致如下
3.5.3`proxmox-boot-tool refresh`使用PVE8版本新增的工具刷新配置。
3.5.4`reboot`重启pve
3.5.5`dmesg | grep -e DMAR -e IOMMU -e AMD-Vi`查询系统状态是否确实开启了IOMMU
**3.6 确定核显的设备号**
3.6.1 执行`lspci`命令可以看到pci设备的列表大致如下
```txt
root@aquar:~# lspci
@@ -152,22 +165,22 @@ root@aquar:~# lspci
其中可以看出来00:02.0是intel的核显。
3.5.2 执行`lspci -n -s 00:02` 命令得到完整的设备号8086:4680记录下来下一步会使用。
3.6.2 执行`lspci -n -s 00:02` 命令得到完整的设备号8086:4680记录下来下一步会使用。
```txt
root@aquar:~# lspci -n -s 00:02
00:02.0 0380: 8086:4680 (rev 0c)
```
3.6 `vi /etc/modprobe.d/vfio.conf `配置直通的核显信息ids替换成3.5.2记录下来的设备号
3.7 `vi /etc/modprobe.d/vfio.conf `配置直通的核显信息ids替换成3.5.2记录下来的设备号
```conf
options vfio-pci ids=8086:4680
```
3.7执行`update-initramfs -u`更新Initramfs
3.8执行`update-initramfs -u`更新Initramfs
3.8 `reboot`重启pve
3.9 `reboot`重启pve
## 4.配置ubuntu

View File

@@ -4,14 +4,18 @@ PVE的默认软件源是他的企业服务地址(enterprise.proxmox.com),我
1.在pve的Web页面中选中pve节点再打开Shell页面。
2.在命令行中执行`mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak`把之前的enterprise配置废除。
2.在命令行中执行下面的命令把之前的enterprise配置废除。
```
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak
```
3.在命令行中执行`vi /etc/apt/sources.list`,打开软件源配置文件。
将内容替换为如下的清华大学源。
将内容替换为如下的清华大学源。下面是8.x版本的设置7.x版本则是将`bookworm`改成`bullseye`
```
deb https://mirrors.ustc.edu.cn/debian bullseye main contrib
deb https://mirrors.ustc.edu.cn/debian bullseye-updates main contrib
deb https://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib
deb https://mirrors.ustc.edu.cn/debian bookworm main contrib
deb https://mirrors.ustc.edu.cn/debian bookworm-updates main contrib
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
```

View File

@@ -115,25 +115,6 @@ services:
depends_on:
- "mariadb"
restart: unless-stopped
# jellyfin:
# image: ghcr.io/linuxserver/jellyfin
# container_name: jellyfin
# environment:
# - PUID=1000
# - PGID=1000
# - TZ="Asia/Shanghai"
# # - UMASK_SET=<022> #optional
# volumes:
# - /opt/aquar/storages/apps/jellyfin/config:/config
# - /opt/aquar/storages/apps/jellyfin/data/tvshows:/data/tvshows
# - /opt/aquar/storages/aquarpool/movies:/data/movies
# # - /opt/vc/lib:/opt/vc/lib #optional
# ports:
# - 8096:8096
# - 8920:8920 #optional
# - 7359:7359/udp #optional
# - 1900:1900/udp #optional
# restart: unless-stopped
jellyfin:
image: nyanmisaka/jellyfin
container_name: jellyfin
@@ -229,26 +210,26 @@ services:
ports:
- "3306:3306"
restart: unless-stopped
filerun:
image: filerun/filerun
container_name: filerun
environment:
FR_DB_HOST: mariadb
FR_DB_PORT: 3306
FR_DB_NAME: filerun
FR_DB_USER: root
FR_DB_PASS: root
APACHE_RUN_USER: aquar
APACHE_RUN_USER_ID: 1000
APACHE_RUN_GROUP: aquar
APACHE_RUN_GROUP_ID: 1000
depends_on:
- mariadb
ports:
- "8008:80"
volumes:
- /opt/aquar/storages/apps/filerun/html:/var/www/html
- /opt/aquar/storages/aquarpool:/user-files
# filerun:
# image: filerun/filerun
# container_name: filerun
# environment:
# FR_DB_HOST: mariadb
# FR_DB_PORT: 3306
# FR_DB_NAME: filerun
# FR_DB_USER: root
# FR_DB_PASS: root
# APACHE_RUN_USER: aquar
# APACHE_RUN_USER_ID: 1000
# APACHE_RUN_GROUP: aquar
# APACHE_RUN_GROUP_ID: 1000
# depends_on:
# - mariadb
# ports:
# - "8008:80"
# volumes:
# - /opt/aquar/storages/apps/filerun/html:/var/www/html
# - /opt/aquar/storages/aquarpool:/user-files
navidrome:
image: deluan/navidrome:latest
container_name: navidrome

View File

@@ -1,15 +1,17 @@
echo '********开始修改pve源为国内源********'
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak
if ! grep -q '##\[aquar config start\]##' /etc/apt/sources.list;
then
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list <<EOF
##[aquar config start]##
deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib
deb https://mirrors.ustc.edu.cn/proxmox/debian bullseye pve-no-subscription
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription
##[aquar config end]##
EOF
else
@@ -190,14 +192,14 @@ systemctl enable ipupdater.service
ls -l /dev/disk/by-id/
# 获取到这个命令的磁盘信息
qm set 101 -scsi2 /dev/disk/by-id/ata-ST4000VX015-3CU104_WW618Q3D
qm set 101 -scsi3 /dev/disk/by-id/ata-ST4000VX015-3CU104_WW6199F0
qm set 101 -sata1 /dev/disk/by-id/ata-ST4000VX015-3CU104_WW618Q3D
qm set 101 -sata2 /dev/disk/by-id/ata-ST4000VX015-3CU104_WW6199F0
# 配置TrueNAS的存储池
cp /etc/default/grub /etc/default/grub.bak
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/s/quiet/quiet quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off i915.enable_guc=7/g' /etc/default/grub
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/s/quiet/quiet quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream/g' /etc/default/grub
cat > /etc/modules <<EOF
vfio