需求

PVE上的群晖备份在PVE文件系统里,原来考虑过挂载PVE的文件夹到群晖,再用群晖的cloud sync来同步到百度云,不过cloud sync无法同步远程挂载的文件夹,所以这个方法不行。
然后搞了个移动硬盘做备份,OK了,见[PVE挂载移动硬盘保存备份]。

不过感觉还是略显麻烦。

考虑了另外一个思路,PVE的资源空置的还有不少,再安装一个windows的虚拟机,把PVE的目录共享给windows,然后在windows里用百度盘上传这个备份。

所以需要做的事情有几个:

  • 安装windows虚拟机
  • PVE安装NFS共享文件夹
  • Windows里挂在这个共享文件夹

安装windows虚拟机

参考另一篇文章 [PVE重置] 。
或者直接看 这篇外链文章

安装NFS

ssh到PVE之后安装NFS服务。

1
# apt-get install nfs-common nfs-kernel-server

修改exports文件,这里会指定哪些文件夹被共享:
nano /etc/exports

添加下面的条目:

1
/var/lib/vz/dump/  *(rw,rsync)

exportfs使设定生效:

1
2
exportfs -r
exportfs: /etc/exports:2: unknown keyword "rsync"

报错,检查是发现rysnc协议不被支持。

回去删掉rsync选项,只保留读写选项。

1
2
/var/lib/vz/dump/  *(rw)

再检查一下:

1
2
3
exportfs -r
/var/lib/vz/dump
<world>

OK了。

设置开机启动nfs服务:

1
# /etc/init.d/nfs-kernel-server start

挂载NFS

linux

如果是linux系统的话,用下面格式的 mountumount 指令。

1
2
3
4
# sudo su
# mount 192.168.1.5:/var/lib/vz/dump/ PVEdump
# sudo su
# umount PVEdump

windows

设置

windows下默认是没有打开nfs相关服务的。
需要打开设置,进入应用和功能,找到启用NFS,注意里面有好几个选上都要选上,确认。

指令

如果是windows系统的话,打开Terminal用下面的格式:

1
2
mount \\192.168.1.5\var\lib\vz\dump E:\
umount E:\

如果没有到设置里打开NFS的话,会报错说没有mount指令。

失败的尝试

中间尝试了用docker安装samba服务来替代NFS。
并没有成功,仅供参考吧。

1
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz 
1
2
3
4
5
6
7
8
9
apt-get update

```bash
apt-get install --no-install-recommends \
--yes \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
apt-get install ca-certificates \
curl \
gnupg \
lsb-release


curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update
apt-get install --no-install-recommends \
--yes \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin

```bash
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://wmqioyg1.mirror.aliyuncs.com"]
}
EOF
1
2
3
4
5
systemctl daemon-reload
systemctl restart docker


docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
1
2
3
4
5
6
7
8
9
10
[common]
server_addr = 74.48.83.194
server_port = 7000

[PVE portal]
type = tcp
local_ip = 127.0.0.1
local_port = 8006
remote_port = 8006

1
2
3
4
5
6
7
8


sudo docker run -it --name samba -p 139:139 -p 445:445 \
-v /var/lib/vz/dump/:/mount \
-d dperson/samba -p \
-s "public;/var/lib/vz/dump/"


Appendix - 参考文章

NFS
PVE docker install