V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devliu1
V2EX  ›  程序员

虚拟机占用磁盘过大,能否使用 PE 或 PXE 等方式不使用虚拟硬盘?

  •  
  •   devliu1 · 2020-07-27 23:40:51 +08:00 · 2760 次点击
    这是一个创建于 1571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虚拟机多了,磁盘空间受不了了,每个虚拟机至少占 20G,并且随着虚拟机使用时间越久,临时文件多把虚拟磁盘撑满。目前想到了 2 种不需要挂载硬盘(vmdk 等)的方案,需要持久化数据时通过网络共享交换数据:

    • WinPE,PE 虽小但基本功能仍然有所欠缺,不知道有没有推荐的功能完备的 PE 系统,(似乎预装虚拟机的 agent 比较难)

    • PXE,使用 PXE 可以直接通过网络启动(虚拟机的虚拟网卡性能应该是可以的),并可以定制镜像,不是特别熟悉网络启动的工作方式,以及比较好入手的软件

    希望有经验的前辈能提供一些意见,交流一下想法

    23 条回复    2020-07-28 23:40:27 +08:00
    ysc3839
        1
    ysc3839  
       2020-07-27 23:46:02 +08:00 via Android
    你这两种方案最终都是 ramdisk,即数据存在内存中。这么做的话没法安装一些较大的软件,操作系统本身也缺失很多功能。
    darfux
        2
    darfux  
       2020-07-27 23:52:04 +08:00
    装完系统做个快照,用完直接回滚掉?
    SgtPepper
        3
    SgtPepper  
       2020-07-28 00:47:12 +08:00
    加硬盘是最简单的方法
    TsubasaHanekaw
        4
    TsubasaHanekaw  
       2020-07-28 02:16:42 +08:00
    hyperx 差分硬盘,
    chihiro2014
        5
    chihiro2014  
       2020-07-28 02:35:50 +08:00
    其实搞个 vps,它不香么
    laminux29
        6
    laminux29  
       2020-07-28 03:13:03 +08:00
    1.虚拟机的硬盘有 thin mode 瘦模式,也就是虽然显示是 XX GB,但实际上是按需分配,用多少,分配多少。一个 80G 的瘦模式硬盘,虚拟磁盘文件可能才十几 G 。

    2.如果你的文件是实打实地多,这种情况瘦模式也无法满足你的需求,加钱上硬盘是你唯一选择。
    不过这年头,硬盘不贵啊。
    ladypxy
        7
    ladypxy  
       2020-07-28 06:58:36 +08:00 via iPhone
    PXE 是没有任何问题的
    devliu1
        8
    devliu1  
    OP
       2020-07-28 07:51:47 +08:00
    @ysc3839 确实,这个想尝试一下,应该不会有大型软件

    @darfux 已经用了 Paralles 的回滚模式,使用过程中还是会占据比较大的空间,关机才能收回

    @TsubasaHanekaw 差分其实也类似虚拟机链接克隆是一个道理,差分出来的 snapshot 也会慢慢地把空间占满


    @SgtPepper @laminux29 就是不太方便加才想这些野路子,按需分配的话,运行过程中临时文件很容易撑满的,很多时候撑大了回收也只能事后处理,类似回滚模式关机才能回收

    @chihiro2014 vps 网速还是不太行,带宽贵
    devliu1
        9
    devliu1  
    OP
       2020-07-28 07:53:10 +08:00
    @ladypxy 有软件推荐吗,只听说过商用版本的无盘系统,个人用的没有了解过
    ShinichiYao
        10
    ShinichiYao  
       2020-07-28 08:00:33 +08:00
    先做完一个系统磁盘,后面的新系统虚拟磁盘都基于它作差分,每个系统都很小的
    devliu1
        11
    devliu1  
    OP
       2020-07-28 08:07:40 +08:00
    纯 ramdisk 也是一种思路,基于 ramdisk 做差分盘,这样临时文件只会落在 ramdisk 中,不会撑大 vmdk @ysc3839


    @ShinichiYao 只要子系统不断使用,临时文件写多了也会变大,也许是我的需求有点极端了😇
    ladypxy
        12
    ladypxy  
       2020-07-28 08:41:13 +08:00
    @devliu1 Citrix PVS
    cheng6563
        13
    cheng6563  
       2020-07-28 08:43:18 +08:00 via Android
    把临时文件的目录单独挂个 smb 嘛
    devliu1
        14
    devliu1  
    OP
       2020-07-28 09:30:02 +08:00
    @ladypxy thx


    @cheng6563 最大的问题是临时文件都在系统盘也不好挂,不知道影子系统之类的能不能完全阻止写磁盘操作落地
    cheng6563
        15
    cheng6563  
       2020-07-28 09:31:49 +08:00
    @devliu1 影子系统会写盘让虚拟磁盘变大的,你可以建个快照,然后用恢复快照代替开机
    zzzmh
        16
    zzzmh  
       2020-07-28 09:38:51 +08:00
    600 块钱加个 4T 机械盘
    laqow
        17
    laqow  
       2020-07-28 09:56:19 +08:00 via Android
    强制关机恢复快照可以的,或者磁盘碎片整理后合并快照
    leimao
        18
    leimao  
       2020-07-28 10:09:17 +08:00
    楼主的头像很搞笑 :)
    shunconf
        19
    shunconf  
       2020-07-28 16:33:52 +08:00
    @devliu1 无盘,需要做无盘服务器,然后客户端通过网络启动加载无盘服务器的镜像。缺点:关机就没数据了,得把数据存到其他指定盘
    devliu1
        20
    devliu1  
    OP
       2020-07-28 16:39:04 +08:00
    @cheng6563
    @zzzmh
    @laqow 好吧,我试试,感觉还是自己的想法过于复杂了,要是能花点钱解决就直接挂块 1T SSD 了 :)

    @leimao ;)


    @shunconf 可以接受,直接虚拟机挂载文件夹,大多是绿色软甲
    no1xsyzy
        21
    no1xsyzy  
       2020-07-28 19:44:32 +08:00
    Arch 的教程选择 /tmp 挂 tmpfs,实质上似乎就是个 ramdisk
    不知道你的“临时文件”是什么情况
    另外,NTFS(?) 也可以把一个盘挂在非盘符根目录的。
    其实你的需求就是临时文件不落盘,ramdisk 或者 ramdisk+unionfs 之类是最好的选择。
    devliu1
        22
    devliu1  
    OP
       2020-07-28 20:41:23 +08:00
    @no1xsyzy 临时文件就是系统运行过程中,各种读写 C 盘把虚拟磁盘撑大的这个过程中产生的文件

    我的需求应该就是 ramdisk 了
    yingfengi
        23
    yingfengi  
       2020-07-28 23:40:27 +08:00
    生产环境还是测试环境,测试环境可以搭好一台虚拟机作为模板,然后其他虚拟机直接基于这个虚拟机创建就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2830 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:52 · PVG 21:52 · LAX 05:52 · JFK 08:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.