在家里的局域网搞了一个NAS,但是由于磁盘读存速率问题导致远程copy的速度只有15MB/s,而如果NAS中的文件已在内存中有缓存则远程copy的速度为50MB/s。

于是考虑利用内存建立虚拟硬盘:

https://www.bilibili.com/video/BV1te41127vd/?vd_source=f1d0f27367a99104c397918f0cf362b7

如何建立虚拟硬盘:

1)使用第三方工具;

2)Windows10/Windows11操作系统的磁盘管理工具自带功能;

虚拟磁盘和真实物理磁盘在读取性能上的原理区别:

如果大学是学计算机专业的,而且还学过操作系统这门课后学的还OK的话,那么就应该知道操作系统在读取和存储真实物理磁盘内容时本身采取的就是内存缓存映射的机制,而这里的虚拟硬盘也是使用同样的工资机制,因此从本质上来说二者的工作原理是完全一致的,二者的区别在于管理独立性问题上。如果使用操作系统直接对真实物理磁盘进行访问那么真实物理磁盘上的文件在内存中的映射是受操作系统直接管理的,也就是说整个电脑上所有的访问过的文件与内存的映射关系是受操作系统统一调配的,操作系统会根据所有打开文件的优先级权限来对某些文件取消映射关系的,而使用虚拟硬盘的话会单独划分一部分固定内存出来的,这部分内存是不受操作系统调配的,也就是说不会由操作系统收回的,因此对虚拟硬盘中的文件与内存的映射关系不由操作系统调配和管理而是由虚拟硬盘软件所管理,说直白些就是虚拟硬盘将操作系统对指定的磁盘文件与内存的映射关系的管理权限接管了过去,避免了与其他打开文件竞争映射关系的权限。

在实际工作中的区别:

虽然二者工作原理完全一致,但是在实际应用中还是有一定区别,根据操作系统的原理可以知道,磁盘在内存中的映射文件被修改后会同步写会到磁盘中的,但是虚拟磁盘在实际工作中往往在同步写会磁盘时的同步频率较真实硬盘文件读取情况要低,这也就意味着虚拟磁盘在突然掉电的情况下更有可能丢失数据,甚至丢失更多数据(真实文件映射内存的情况下,内存的修改内容往往会及时保存到磁盘,而虚拟磁盘往往为了加速读存性能而不会及时保存到磁盘中)。

丢失文件数据或损坏数据后的恢复:

真实物理磁盘读存的情况下,即使由于掉电等问题丢失数据,那么受影响的往往也只是部分文件(掉电是内存修改内容未来得及同步到磁盘的部分文件),而虚拟磁盘是在真实物理磁盘的上面用软件形式重新划分了一个磁盘空间,而这部分空间在真实物理磁盘的文件是一个文件形式,一般是 *.vhd 格式,也就是说掉电后不仅虚拟磁盘中的文件会丢失数据,甚至会导致这个 *.vhd 文件的基本格式受损,而导致整个划分出的虚拟磁盘都无法再次挂载,甚至需要专业的数据维护才可以挂载。而真实的物理磁盘在近10多年的时间里已经建立了比较完善的掉电保护机制,比如机械硬盘会安全的收回磁盘头而不损害磁盘,固态硬盘会设置继电电容或快照技术或恢复电源后的数据重组技术,总之真实的物理磁盘会在一定程度上保证掉电后即使丢失部分文件数据也不会损坏整个磁盘的文件结构和内容。

总结来说,不论真实物理磁盘存储还是虚拟磁盘,在掉电时都可能丢失数据,但是虚拟磁盘可能丢失更多的数据甚至损坏整个磁盘内容,因此安全性更差,不过这本身也是一个矛盾的问题,即使真实磁盘读存也是存在安全级别的,比如家用磁盘和企业级磁盘就存在很大区别,因此这个也需要看具体的使用场景的需求。

关于虚拟硬盘的缺点:

源自:https://diy.pconline.com.cn/cpu/reviews/1211/3065665_all.html

  虚拟硬盘争议最大就是“断电后数据自动丢失不可恢复”。虽然现在有一些RAMDisk软件提供断电恢复功能,也仅是把临时文件关机前写进硬盘,开机再从硬盘再次调进虚拟盘中,而每次开机\关机读写零碎文件数据时间会很长,很麻烦。

虚拟硬盘系统 —— Windows系统 磁盘加速软件 —— 优缺点以及与真实物理磁盘访问文件的区别的更多相关文章

  1. windows的磁盘操作之七——获取当前所有的物理磁盘号 加备注

     windows的磁盘操作之七--获取当前所有的物理磁盘号 2011-07-28 17:47:56 标签:windows API DeviceIoControl 物理磁盘 驱动器号 原创作品,允许转载 ...

  2. Linux下硬盘安装Windows系统。

    注意:本方法安装后会把Linux系统损坏,方法适用于完全不再需要Linux系统. 本方法在ubuntu 14.04,centos 6.5,debian 8测试成功. 安装方法是通过grub2引导Win ...

  3. 使用 windows 下的 secureCRT 软件的 通过 sftp 上传和下载文件到远端 linux 设备

    secureCRT 按下ALT+P就开启新的会话进行ftp操作. 输入:help命令,显示该FTP提供所有的命令 pwd:  查询linux主机所在目录(也就是远程主机目录) lpwd: 查询本地目录 ...

  4. golang---获取windows系统相关信息

    package main import ( "fmt" "net" "runtime" "strings" " ...

  5. 虚拟机中如何挂载物理磁盘(VMware操作)

    测试的时候难免会遇到,从真是机器拷贝东西到虚拟机中,虽说安装了VMware tools(Vm→Install VMware tools...),就可以将文件直接拖到虚拟机里面去,但是这样拷贝总是需要花 ...

  6. UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究

    内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区.4K对齐.起始扇区.恢复分区.ESP分区.MSR ...

  7. 如何在Windows版本的VMware虚拟机上安装苹果系统

    有时我想玩玩苹果系统,但自己有没有mac,只能在虚拟机上装一个苹果玩玩,但又由于某些原因虚拟机软件VMware不支持安装苹果系统,还在有大佬出于不明目的,在网上散布了适用于Windows版本的VMwa ...

  8. 转载请注明:Windows 系统必备好用软件&工具合集跟推荐 | 老D博客

    Windows 系统必备好用软件&工具合集跟推荐 97 63,371 A+ 所属分类:工具软件 一.浏览器 二.下载软件 三.播放软件 五.电子邮件客户端 六.图片/照片 浏览查看工具 七.文 ...

  9. Mac系统下使用VirtualBox虚拟机安装win7--第三步 在虚拟机上安装 Windows 7

    第三步 在虚拟机上安装 Windows 7 等待虚拟机进入 Windows 7 的安装界面以后,在语言,货币,键盘输入法这一面,建议保持默认设置,直接点击“下一步”按钮,如图所示

  10. zz Windows 10安装教程:硬盘安装Win10 系统步骤(适合32位和64位)

    Windows 10安装教程:硬盘安装Win10 系统步骤(适合32位和64位) Posted on 2015年01月28日 by 虾虾 22 Comments   最新的Windows 10 MSD ...

随机推荐

  1. LangChain让LLM带上记忆

    最近两年,我们见识了"百模大战",领略到了大型语言模型(LLM)的风采,但它们也存在一个显著的缺陷:没有记忆. 在对话中,无法记住上下文的 LLM 常常会让用户感到困扰.本文探讨如 ...

  2. Spring Cloud微服务核心架构分析

    Spring Cloud是一个相对比较成熟的微服务框架.虽然,Spring Cloud于2016年才推出1.0的release版本, 时间最短, 但是相比Dubbo等RPC框架, Spring Clo ...

  3. hdfs修复块

    磁盘满了一次,导致hdfs的很多块变成一个副本 看一下副本信息 执行 hdfs fsck / 1007个块少于3个副本一下  而且 hbase的regionsever启动报错 File /apps/h ...

  4. 在Xcode编写我们的quick help

    程序环境 Xcode 13.2.1 "写代码要经常写注释."虽然很多人不以为然,但是在使用Xcode的时候,我们在写注释的时候稍微注意一下格式的话,Xcode会给我们带来额外的正反 ...

  5. 将PaddleOCR 转为 ONNX 运行

    PaddleOCR 是目前最好的开源OCR框架, 但paddle框架的兼容性实在不怎么好, 部署的时候容易出现各种各样的问题. 如果能把PaddleOCR转成ONNX, 就可以跳过paddle框架坑的 ...

  6. SDL3 入门(4):选择图形引擎

    SDL2 创建渲染器时只能指定使用软件渲染还是硬件加速,无法选择使用哪种图形引擎实现硬件加速.SDL3 对此做了优化,可以在创建渲染器时指定 rendering driver 也就是图形引擎,比如在 ...

  7. dot net core使用BackgroundService运行一个后台服务

    不管是在控制台程序还是asp.net core程序中,我们经常会有用到一个需要长时间运行的后台任务的需求.通常最直觉的方式是使用Thread实例来新建一个线程,但是这样需要自行管理线程的启动和停止. ...

  8. P5494 题解

    来一发 \(O(\log n)\) 线性空间的解法. 考虑通过只维护线段树叶子节点的虚树的方法压缩空间,考虑记录下每个节点的编号,然后通过异或完求最低位的 \(1\) 的方式求出 LCA 的深度,然后 ...

  9. 羊城杯初赛部分misc

    羊城杯初赛部分misc Ez_misc i春秋刚考过的CVE,win11截图漏洞CVE-2023-21036(acropalypse) https://github.com/frankthetank- ...

  10. 树莓派4B-PCA9685驱动舵机

    前言 不知道你们有没有遇到过这么一种情况,直接用树莓派的引脚输出PWM控制舵机,舵机是会出现抖动的.就算代码进行一定的时延迟优化还是会有影响的. 现在我们可以使用PCA9685这个模块去驱动舵机. P ...