V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
huangdog
V2EX  ›  NAS

分享一下我用 hyper-v 做的 nas 服务器,非常稳定省心,模块化,懒人福音

  •  2
     
  •   huangdog · 3 天前 · 5571 次点击
    分享一下我用 hyper-v 做的 nas 服务器,非常稳定省心,模块化,懒人福音

    这里提供方向理念和思路,至于实现(安装,设置 等等具体步骤),网上教程已经非常多,在这里就不表了。

    我在我的 diynas 安装 windows server 2019 ,只开 hyper-v ,不安装第三方软件,尽量在 host 保持软件纯粹。

    在 hyper-v 里,我开了 2 个 vm:
    一个 vm 是用来管理硬盘的 nas 系统,作用只有一个,就是提供访问接口(比如 SMB ),给其他电脑,vm ,其他设备等存取硬盘的内容。在 host ,我把所有硬盘都脱机,然后都安排给这个 vm ,硬盘直通,让这个装了 nas 系统的 vm 直接管理它们。这个 nas 系统,可以装 windows server ,可以装 omv ,可以装 truenas ,什么都可以。我自己为了方便让硬盘用 ntfs ,就装 windows server 2019 。因为 ntfs 的兼容性非常棒,随时把硬盘拔出来插到电脑上直接读取。如果想要更详尽的硬盘管理,比如硬盘休眠,可以装 truenas 。由于我会定时整机关机,所以我不需要由 nas 系统来提供硬盘休眠。这个 vm 尽量不要折腾它,改变它,让它持续稳定运行,没有折腾它的必要。

    另一个 vm 是下载机,用作下载和文件同步的系统,以 smb 的方式连接装了 nas 系统那个 vm ,装的 os 是 windows 10 ltsc 2019 ,里面装了各种下载软件,百度云,bt ,pt 软件,btsync ,goodsync 等,非常繁杂,这是我这套 nas 服务器提供各种花样服务的 vm 。这个 vm 是经常被折腾的,很容易出问题,但这个 vm 出问题,也不会影响到其他设备访问硬盘里面的内容。,喜欢折腾的可以装黑群,但我不喜欢无意义的折腾,而且不够稳定,所以我装 windows 。黑群的软件,在 windows 上面很容易找到代替品,没必要迷信黑群。windows 的兼容性是无与伦比的。

    使用 hyper-v 的好处是,可以更方便管理这些干活的系统:
    0.windows 系的极高硬件兼容性,省心!
    1.比如定期快照,vm 出问题崩溃了,1 秒恢复。
    2.还有把功能模块化,一个 vm 专门做管理硬盘,不安装任何第三方软件。一个 vm 专门提供功能,安装各种软件,非常繁杂,这个 vm 特别容易出现问题,比如出现软件冲突等,即使这个 vm 炸了,也不影响旁边专职管理硬盘的 vm ,对其他设备访问硬盘毫无影响。
    3.host 关机,可以自动保存 vm 的运行状态。host 开机就可以自动恢复这些 vm 的运行状态,在 vm 的角度,就像从来没有关机过那样。非常方便。为了延长硬盘寿命,我在 host 设置了每天半夜定时关机,白天定时开机,整机停机。
    4.最重要的是,使用 hyper-v 这种 type1 虚拟机对性能的损耗非常低!既有 type1 虚拟机的高性能,又有图形界面的方便管理。

    备份文件方面:
    在手机上,我在手机上安装 btsync ,在下载机 vm 里也安装一个 btsync ,手机文件会自动经过做下载机的 vm 里面的 btsync ,以同步方式存储到隔壁 nas 系统的 vm 的硬盘里面。

    在 pc 上,我用 goodsync ,直接往第一个 nas 系统的 vm 提供的存储接口(就是 SMB )备份 pc 的文件进去。整个过程,管理硬盘的第一个 vm ,从来不需要安装任何第三方软件,只需要提供访问硬盘的接口,其他系统会自己用各自的软件通过这个接口往 nas 系统提供的硬盘存取东西。这才是 nas 的最基本基本功用:管理硬盘,提供访问接口。

    我的理念就是:
    不重复造轮子,尽量依赖现成的成熟软件( windows server ,btsync ,goodsync )。模块化管理,vm 可随时替换,复原,保存运行。非常稳定省心。

    平时管理这台 nas 服务器,我都用 RDP 连上去 host 和 vm 。使用 RDP ,比群晖那个 web 界面管理,强多了,最纯粹直接的桌面体验。
    57 条回复    2024-12-24 23:56:50 +08:00
    lslqtz
        1
    lslqtz  
       3 天前
    我是 Windows Server 2022 做 NAS 开 SMB 共享, 同时开了 SS-Server 做内网连接, 然后 BT 软件做种加一些辅助自动化工具, Hyper-V 用于开 VM 跑其它的一些服务和虚拟环境 (共享 GPU). RDP/AnyDesk 管理 (前者图形性能弱, 后者分辨率有限).

    没有太多的需求比如备份文件之类的, 如果有需求的话可能我会自己写个轮子完成.

    GUI 的操作方式对监视资源和使用客户端软件相对比较友好, RDP 的协议优势又提高了远程桌面的使用体验.
    lslqtz
        2
    lslqtz  
       3 天前
    目前唯一的缺陷是 NTFS 不支持 CoW, ReFS 似乎可靠性不太好. DDNS, 交给 Router 来管理.
    kk2syc
        3
    kk2syc  
       3 天前   ❤️ 2
    @lslqtz RDP 图形不弱啊,改一下注册表开启高帧,夜深人静的时候,我都用 ipad+RDP 玩黄油。
    COW
        4
    COW  
       3 天前 via Android
    我也是定时关机,现在懒得折腾了,直接 win server ,搞了个目录开文件共享...
    nicefrp
        5
    nicefrp  
       3 天前
    同时 Hyper-V ,开了一堆虚拟机,做不同的服务,然后将服务通过 FRP 或者 NPS 暴露出去,不用每次服务器到期搬家都头大了。
    lekai63
        6
    lekai63  
       2 天前 via iPhone
    host vm 全 win 情况下 op 方案挺好

    只是我们如果把全 win 换成全 debian 不是更好嘛? docker 方便。
    Greenm
        7
    Greenm  
       2 天前 via iPhone
    win 主要就是自己跑服务,跑自动化,跑计划任务不方便。看你描述,好像备份 vm hyperv 也不提供原生支持? 这个就不如 pve esxi 了
    huangdog
        8
    huangdog  
    OP
       2 天前
    对于想尝鲜不同 nas 系统,或者部分非全部硬盘开 raid ,可以再开多一个 vm ,在里面装上其他 nas 系统,把部分硬盘安排给这个 vm ,硬盘直通。
    这样的玩法很灵活,不用所有硬盘都开 raid 。而且软 raid 的话,可以这个 nas 系统的 vm 开软 raid 。另一个 nas 系统不开软 raid 。

    群晖也是全系软 raid ,可见软 raid 的稳定性是足够在生产环境使用的。

    对于视频转码,我可以再开一个 vm 去做,或者在现成提供服务的 vm 做,做 nas 系统的 vm 不装任何第三方软件,保持软件纯粹,功能单一性,高稳定性,不被其他服务影响。
    huangdog
        9
    huangdog  
    OP
       2 天前
    @lekai63 为什么不是部分 vm 装 win ,部分 vm 装 debian ?
    jerrywaffle
        10
    jerrywaffle  
       2 天前 via iPhone
    之前用 hyperv 出现过 vm 无法恢复的问题,就不再信任 hyperv 了
    bjfane
        11
    bjfane  
       2 天前
    vm1 如果是也是 windows server ,且只有 smb 共享,是不是直接放在宿主上就更好了
    yinmin
        12
    yinmin  
       2 天前 via iPhone
    @huangdog windows server 内置“删除硬盘重复数据”功能,开启有惊喜。

    另外,hyper-v 的硬盘性能还不错,ntfs 对掉电保护也好,绝大多数环境下没必要直通硬盘,直接用 vhdx 虚拟硬盘配合“删除硬盘重复数据”更佳。
    bsfmig
        13
    bsfmig  
       2 天前
    @yinmin 同感。以我的使用体验看,直通硬盘不如直通阵列卡。反正 HV 支持 PCIE 直通也有不少年了。
    bsfmig
        14
    bsfmig  
       2 天前
    @Greenm 当然支持,Windows Server Backup 就是干这个的。不像 VMW 把自家的备份解决方案直接废弃了,要求用户买第三方的。
    xclimbing
        15
    xclimbing  
       2 天前
    WinServer 最大的问题就是 smb 等服务兼容性有问题,你 smb 共享出去了,但另一台机器连接不上,是不是就比较恶心。
    再一个对 nfs 、macOS 网络服务等支持也不佳。比如,你怎么让 winserver 支持 TimeMachine 。当然,将提供 nas 的 vm 换成黑群、truenas 之类的专业 nas 系统能解决这个问题。
    n43635
        16
    n43635  
       2 天前
    和我最开始的 nas 差不多,我是用 server2012 作为宿主虚拟机装 linux 辅助,用了 5 年基本没出过大问题。
    但是我比较爱折腾,时间久了就发现 win 折腾起来比 linux 麻烦太多了,导致很多东西都装到 linux 里去了,winserver 就显得有点鸡肋,
    索性后来直接装 PVE 当宿主,有需要用 win 的地方开个虚拟机辅助一下就行了
    Jacobson
        17
    Jacobson  
       2 天前
    几台机器,用 server+hyper-v 多年,自从 hyper-v 支持黑群 7.2 之后,基本上补齐了最后一块短板了。

    做 NAS 可以,做服务器可以,做 all in one 更是手拿把攥,可盐可甜,折腾的时间和技术成本极低。

    最主要是 win 的功耗控制非常精细。

    包括主力机也都是常年用 server 系统了。
    gmuubyssss
        18
    gmuubyssss  
       2 天前   ❤️ 1
    直接 ESXI 不是更舒服么。
    f1ynnv2
        19
    f1ynnv2  
       2 天前   ❤️ 3
    host 是 Ubuntu, 只装了个 Docker, 所有服务都在 docker 里,包括 smb, syncthing 以及自己写的各种工具。
    lslqtz
        20
    lslqtz  
       2 天前
    @kk2syc 我搞 solidworks 的, 一顿一顿的, 黄油没什么性能压力, 游戏两个也都不行
    lslqtz
        21
    lslqtz  
       2 天前
    已经选择用 GPU 编码, 并且开硬件加速了.
    badgv
        22
    badgv  
       2 天前 via Android
    这种玩法只适合高性能主机,不太通用,更通用的做法是一个系统使用 docker 实现各种服务,尽量少在主系统折腾
    tony666999
        23
    tony666999  
       2 天前 via iPhone
    Esxi 不香吗
    kizunai
        24
    kizunai  
       2 天前
    请问用于开 hpyer-v 的 windows server 2019 自己要占用多大的内存?
    han3sui
        25
    han3sui  
       2 天前
    hyper 直通硬盘,sata 线序还能变吗,换了之后能自动识别?
    Tink
        26
    Tink  
       2 天前
    不需要 win server2019 呀,直接装 hyperv 或者 esxi 不是更好吗
    huangdog
        27
    huangdog  
    OP
       2 天前
    @kizunai 不开 hyper-v 的时候 2G 以下,现在内存便宜,捡垃圾可以捡到很大的内存,我为我的 NAS 服务器装了 32G 内存,DDR3 起跳,DDR2 真的淘汰了,捡垃圾都看不上。
    huangdog
        28
    huangdog  
    OP
       2 天前
    @han3sui 不能变。为什么要变,插上去之后就很少拔下来。开了“重复数据删除”更不能拔出来,只能在原来的 windows server 上用,要拔出来在其他地方用,要先关掉“数据重复删除”。
    huangdog
        29
    huangdog  
    OP
       2 天前
    @Tink 为了图形界面,为了 RDP ,方便管理,我不精通 powershell ,命令行。而且装了 windows server 2019 ,不激活也照样可用。无谓提高使用门槛特意装 hyper-v core ,而且听说单纯运行 hyper-v core 很容易自己出现问题,需要 windows admin center 管理着它,那我还不如直接用 windows server 2019 来管理 hyper-v 。windows server 2019 开机不运行 hyper-v ,就占 2G 以下的内存,现在的内存这么便宜,伤得起。
    cyan2z
        30
    cyan2z  
       2 天前
    op 宿主机啥配置,vm 的下载机卡吗?
    ps: rdp 还能连 vm 啊,研究下
    huangdog
        31
    huangdog  
    OP
       2 天前
    CPU:E3-1285lv4
    内存:32G
    显卡:核显
    SSD:镁光 MX500 1TB

    RDP 可以连安装了 windows 10 ltsc 2019 和 windows server 2019 的 VM 。可以连装了 windows server 2019 的 host 。

    下载机 VM 给了 8 核,4G 内存,很流畅,系统是 windows 10 ltsc 2019
    NAS 系统 VM 给了 2 核,2G 内存,其他设备访问它也很流畅,系统是 windows server 2019

    CPU 应该可以用差一点的,比如 i3 ,都不是一些高算力的活动,开虚拟机主要是内存要多。
    huangdog
        32
    huangdog  
    OP
       2 天前
    如果 NAS 系统的 VM 想要使用 truenas 来进行硬盘休眠的话,需要买一个 HBA 卡,插到 pcie 插槽,在 hyper-v 开 PCIE 直通,让 truenas 全权控制这张 HBA 卡,才可以使用硬盘休眠。windows server 2016 开始,hyper-v 才支持 PCIE 直通。

    但我不需要硬盘休眠,我的 NAS 系统的 VM 是装 windows server 2019 ,并开启重复数据删除,半夜 host 自动关机,整机停机。

    开启了重复数据删除的硬盘,想要拔出来插到其他电脑使用,需要先在里面关掉数据重复删除,这个硬盘才可以被其他电脑识别并读取。
    huangdog
        33
    huangdog  
    OP
       2 天前
    @huangdog 对于要使用 truenas ,而且接的硬盘很多的话,HBA 卡要买宽金手指,PCIE X 数多的,就是 PCIE X4 X8 X16 这类,便宜的可能 PCIE X 数不够多,导致带宽不够:
    https://forums.truenas.com/t/multiply-your-problems-with-sata-port-multipliers-and-cheap-sata-controllers/1504
    fish3125
        34
    fish3125  
       2 天前
    请问为什么您的 e3 的 4 核 8 线程 hyper 可以分配出 8+2 核心。
    我用 win11 ,16 线程 cpu ,所有虚拟机加起来如果超过 16 给虚拟核心就无法启动。
    huangdog
        35
    huangdog  
    OP
       2 天前
    @fish3125 可能 win11 的限制,要 windows server 才可以这样。
    raptor
        36
    raptor  
       2 天前
    PVE 不比这香多了……
    PrinceofInj
        37
    PrinceofInj  
       2 天前
    @huangdog #32 如果开启了重复数据删除的硬盘在去重前的体积已经超过硬盘的总容量,会是什么表现?
    Admstor
        38
    Admstor  
       2 天前
    楼主这样用完全没问题
    而且很提倡这样用
    M5tuA
        39
    M5tuA  
       2 天前 via iPad
    谢谢楼主分享
    hez2010
        40
    hez2010  
       2 天前 via Android
    @raptor hyper-v 有 GPU-PV 半虚拟化,直接把宿主机的 GPU 分区共享给所有 VM 一起使用,而且同时支持客户机是 Windows 和 Linux ,性能几乎没有损失(虽然 Linux 需要自己编译内核把 dxg 驱动搞进去),同时宿主机上使用 GPU 也不受影响。光这点就比 pve 香太多了。
    kk2syc
        41
    kk2syc  
       2 天前
    @lslqtz solidworks 渲染起来什么远程顶得住啊 /doge
    ltkun
        42
    ltkun  
       2 天前 via Android
    咖喱味好浓啊 不习惯用 win 除了办公 Windows 不可靠
    y1y1
        43
    y1y1  
       1 天前 via iPhone
    说得好 我选择 pve
    yytbob
        44
    yytbob  
       1 天前
    @xclimbing 之前 我之前也是和你一样的问题,Windows Server 2012 使用 SMB 共享的确好多奇怪的 bug ,今年改换 Windows Server 2022 之后 bug 全部消失了。Time Machine 也是可以支持的,YouTube 上有教程可以搜,用了小半年还挺稳定的。
    tsanie
        45
    tsanie  
       1 天前
    @hez2010 pve 也可以开 vGPU 把一张显卡同时分配给多个 vm
    SakuraYuki
        46
    SakuraYuki  
       1 天前
    现在黑裙用 rr 引导非常稳定了,不算折腾,开机个一年都出不了问题,反倒是 windows 的软件开久了会有小 bug
    mcluyu
        47
    mcluyu  
       1 天前
    我连主路由都是 hyper-v 跑的,winserver2022 , 其他服务用 docker desktop 使用 wsl 管理, 远程可以 ssh 连回去,也可以 RDP , 不好的就是 Window update , 平均大概一个月多会重启一次,不过也好就当定时重启了、 另一个是重启后 docker 概率 bind volume 读取失败, 导致某些服务获取不到配置文件会出问题需要删掉重新运行
    sairoa
        48
    sairoa  
       1 天前
    同样使用 Windows server ,配置是 cc150 加上 64G 内存,因为有台 ds220+所以文件管理同步备份之类的都在白裙里,这台服务器主要跑下载和备份 ds220+里的重要数据,还有一些虚拟机服务。平常也用这个服务器远程桌面做回家跳板机。
    个人用 windows server 主要就是喜欢 ntfs ,硬盘抽出来随便插到哪个电脑都能读数据。hyper-v 也在用,博客就放在 hyper-v 虚拟机里,不过对于楼主各种直通就有点无法理解了,hyper-v 做直通很麻烦,想用直通个人觉得 esxi 更方便。
    leonme
        49
    leonme  
       1 天前 via iPhone
    pve 和 esxi 不是更好吗?
    zhucegeqiu
        50
    zhucegeqiu  
       1 天前
    为了延长硬盘寿命,每天定时关机再开机???
    relsoul
        51
    relsoul  
       1 天前
    之前用 pve 的时候 有次断电 导致磁盘文件有问题,整个服务都起不来,后面直接换 win11 +hyper-v 做 all in one ,
    omv+owt+qb download
    目前运行了好几个月 还没啥问题
    naoying
        52
    naoying  
       1 天前
    Linux 内核在服务器和高并发场景下更具优势,而 Windows 内核在应用和桌面虚拟化场景下更适合
    qqjt
        53
    qqjt  
       1 天前
    消费级主板装 windows server 经常有部分驱动装不上的问题,虽然不影响使用,但是强迫症很难受
    ifwww
        54
    ifwww  
       18 小时 22 分钟前
    硬盘经常通电断电是减寿,不是延长
    yijiangchengming
        55
    yijiangchengming  
       17 小时 5 分钟前
    差不多,不过我是装的 win1124H2,然后激活成企业多会话版。WSL 提供基础的 k3s 和 smb 服务。剩下的靠 hyper-v 虚拟机。原本是 PVE ,但是我发现 windows 更省电。
    huangdog
        56
    huangdog  
    OP
       6 小时 19 分钟前
    @ifwww 哪有经常,一天以内,开关各 1 次而已,硬盘的设计是接受这种开关频率的。普通家用 pc 也是这种开关频率,甚至一天以内多次开关都有。靠硬盘休眠的话,很少机会可以让硬盘可以真正休眠,SMB 稍微检查一下连接状态,硬盘就又要重新被唤醒了。所以我认为让硬盘减少损耗,最直接的方法就是关掉,停电,让它不转。
    huangdog
        57
    huangdog  
    OP
       3 小时 5 分钟前
    如果在 windows server 设置的 SMB 只能读,不能写,需要这样做

    右键其中一个共享
    ![Markdown logo]( )
    ![Markdown logo]( )
    ![Markdown logo]( )
    ![Markdown logo]( )

    选上“完全控制”,并按确认,一路确认
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1112 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:02 · PVG 03:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.