V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fonlan
V2EX  ›  服务器

在 PVE 的不同虚拟机/LXC 容器之间共享磁盘

  •  
  •   fonlan · 320 天前 · 3435 次点击
    这是一个创建于 320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    趁着双十一入手了 EQ12 当软路由,装了一块 NVME 做系统盘,又用 SATA 口挂了一块 2T 的 SSD 做下载盘。

    计划是用一个虚拟机运行 qBittorrent 做下载器,另外运行一个或多个虚拟机/LXC 容器来跑 jellyfin 、alist 之类的服务。所以这几个虚拟机之间需要能同时访问这块 2T 的 SSD 作为数据源。

    现在 PVE 装好了,但是没找到合适的的协议来共享磁盘,NFS 应该可以,但 NFS 可能有性能损失。这方面有什么比较好的实践吗?

    19 条回复    2024-06-09 23:00:31 +08:00
    freechuzhuo
        1
    freechuzhuo  
       320 天前   ❤️ 2
    pct set 125(lxcid) -mp1 /mnt/sda1,mp=/mnt/sda1
    pve 里挂载
    zhouzm
        2
    zhouzm  
       320 天前
    推荐 samba
    Jisxu
        3
    Jisxu  
       320 天前
    pve 宿主机或者单独一个 omv 给这块 2t 的盘开 smb server ,其他所有要用硬盘的机器都用 smb 协议挂载,你用 nfs 协议也可以,看哪个方便
    iloveayu
        4
    iloveayu  
       320 天前
    你的想法可以实现,如果你对安全要求没那么高,只是家用 那 nfs 可以了,这是最方便配置和稳定的,并且可以多用户同时写入。
    根据我古早的记忆,smb 多用户同时写可能会出些莫名其妙的问题,不知道现在怎么样了。
    laminux29
        5
    laminux29  
       320 天前
    你都软路由,小主机了,还考虑 NFS 性能损失???实在搞不清你的思路。

    我倒是喜欢 SSHFS ,第一是方便部署,能跨内外网,能方便端口映射,而且协议本身自带加密,不用再去考虑加密问题。

    NFS 与 SMB ,主要是部署不方便,如果不组虚拟局域网,异地访问很麻烦,而且安全性也有问题。
    fonlan
        6
    fonlan  
    OP
       320 天前
    @freechuzhuo 我现在用的就是类似的命令,不过因为我用的不是 LXC 容器,是虚拟机所以我是用`qm set 104 --virtio1 /dev/disk/by-id/ata-xxx`这种命令直接把硬盘挂载到虚拟机上去的,但这样的话这块硬盘只有这个虚拟机能用,我现在是想把这块硬盘再共享给其他虚拟机
    fonlan
        7
    fonlan  
    OP
       320 天前
    @laminux29 主要对 NFS 能达到的性能不太了解,网上搜到的一个测试结果是千兆内网下只能达到 11MB 的写入速度,虽然不太相信只能到这么点速度但还是想先找找有没有别的 PVE 原生不依赖网络的共享方法😅
    allplay
        8
    allplay  
       320 天前
    PXE 里面开一个 LXC ,专门映射磁盘,给虚拟机内所有的 LXC 或 docker 使用
    laminux29
        9
    laminux29  
       320 天前
    @fonlan 建议使用 SSHFS ,各种特性综合起来没有短板的选手,可以代替 SMB 、NFS 。
    bt7vip
        10
    bt7vip  
       320 天前 via Android   ❤️ 1
    我的存储管理方案
    硬盘挂载到 PVE ,同时加入到 storage 中,方便查看剩余空间和直接备份虚拟机或容器。


    起一个特权 lxc>strange ,命名为 A ,挂载硬盘新建一个目录穿透到这个 strange ,在容器中部署 NFS server ,共享出去。


    因为 NFS 和 samba 需要特权容器,我有洁癖,所以后面用于接入 strange 的 CLI 全是起的虚拟机。


    起一个虚拟机,命名为 B ,挂载 NFS 共享,用于 pt 下载。


    起一个虚拟机,命名为 C ,挂载 NFS ,同时部署 samba severe ,用于共享给局域网或虚拟局域网,samba 是有很多缺点,但是挡不住可以在 win10 以上直接加载 iOS 文件,香的一批。


    起一个虚拟机,命名为 D ,挂载 NFS ,部署 vsFTPd ,用于 FTP 只读共享。


    其中最主要的不是多层结构,是权限下落,不用一路 777 ,仍然安全落到 PVE 下挂载硬盘的子目录切权限可靠。


    B C D 服务可随时下线上线重新部署,丝毫不影响其他服务的运行。


    B C D 服务都是单独服务用户,即使被入侵,也只是在服务影响之内。交叉文件除外。


    以上方案在加一个 wire guard 组网,体验直线上升,Windows 起个 robocopy 备份异地文件,异地挂载 samba ,随时随地登录 PVE 管理,在起个 grafana 做个大屏展示。


    目前遇到的问题是:samba 和 FTP 对 emoji 表情符号不支持,下载的 ytb 视频会因为表情符号导致文件丢失。
    fonlan
        11
    fonlan  
    OP
       319 天前
    @bt7vip #10 嗯,又查了一圈,似乎内网不加密的情况下确实是 NFS 性能最好,我暂时不需要 SAMBA 和 FTP ,我内网用的更多的是 Webdav ,感觉性能比 SAMBA 好
    tingfeng1
        12
    tingfeng1  
       163 天前
    @laminux29 打扰一下,请问是不是服务端打开 ssh server, 然后客户端装个 sshfs ,就可以挂载了
    laminux29
        13
    laminux29  
       163 天前   ❤️ 1
    @tingfeng1

    1.SSH Server OS 与 SSH Client OS 都要设置时间自动更新,建议 1 小时一次。Linux 用 crontab ,Windows 用任务计划就行。

    2.对于 OS 为 Linux 的 SSH Client OS ,需要在 Linux SSH Client OS 上设置对 SSH Server OS 的证书免密登录。

    3.在 SSH Server OS 创建专门的文件夹,作为 SSHFS 的仓库目录。

    4.对于 OS 为 Linux 的 SSH Client OS ,安装 sshfs:
    apt install -y sshfs
    然后创建测试目录,进行临时挂载远程 SSHFS 目录测试。测试成功后,删除这个测试目录。
    最后编辑 /etc/fstab ,实现开机自动挂载。

    5.对于 OS 为 Windows 的 SSH Client OS ,按顺序:
    安装 WinFSP;
    安装 SSHFS-Win;
    安装 SSHFS-Win-Manager-Setup;
    以上 3 款软件都在 Github 且免费。
    tingfeng1
        14
    tingfeng1  
       162 天前
    @laminux29 非常感谢,想问一下第一条的自动更新是指更新什么
    laminux29
        15
    laminux29  
       162 天前
    @tingfeng1 自动更新时间,也就是自动同步时间。

    对于 Linux 来说,是让 crontab 每隔 1 小时甚至 1 分钟执行一次:ntpdate -d -v 0.centos.pool.ntp.org

    对于 Windows 来说,是加一条计划任务,让系统每隔 1 小时甚至 1 分钟执行一次:w32tm /resync
    tingfeng1
        16
    tingfeng1  
       162 天前
    @laminux29 明白了
    Feather0314
        17
    Feather0314  
       113 天前
    wsl2 使用的 9p 貌似性能最佳,但是文档少的可怜,linux VM 共享还好,Window VM 弄不成。也不知道咋解决
    Feather0314
        18
    Feather0314  
       113 天前
    或者有没有人尝试过 virtiofs 。貌似也是一个很好的解决方案
    insomnia417
        19
    insomnia417  
       102 天前
    unraid 解决方案可能更好 原生 SHFS
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:50 · PVG 05:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.