在家里的局域网搞了一个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. 箭头函数中的this指向

        // 箭头函数中的this指向         //     如果是箭头函数,this指向是,父级程序的,this的指向         //       如果父级程序是一个函数,函数也是有t ...

  2. 极限科技旗下软件产品 INFINI Easysearch 通过统信 UOS 认证

    近日,极限数据 (北京) 科技有限公司(以下简称:极限科技)旗下的软件 INFINI Easysearch 搜索引擎软件 V1.0 通过统信 UOS 服务器操作系统 V20 认证. 此次兼容适配基于统 ...

  3. chrome edge CORS 允许跨域

    edge: edge://flags/#block-insecure-private-network-requests chrome: 在谷歌浏览器地址栏输入"chrome://flags/ ...

  4. Linux安全审计之audit安装与使用

    场景 安全最重要的一步是内部安全,如何监控用户的行为是一个永恒不变的话题. audit可以详细监控用户的行为,详细到查看或修改了某个文件.这些都可以在日志中查看到. 安装 小贴士: CentOS默认已 ...

  5. Android 通过odex优化提高首次开机速度

    背景 客户反馈说开机时间过长,需要优化. 原文:https://blog.csdn.net/croop520/article/details/73930184 介绍 现在很多Android都需要预装很 ...

  6. Xilinx-HDF的文件内容

    Xilinx-HDF文件 原文:分享:HDF文件的更多用途 Xilnx Vivado能导出HDF文件,给Xilnx SDK创建软件工程.HDF文件的还可以有更多用途. HDF文件是一个zip文件,可以 ...

  7. [python] Python日志记录库loguru使用指北

    Loguru是一个功能强大且易于使用的开源Python日志记录库.它建立在Python标准库中的logging模块之上,并提供了更加简洁直观.功能丰富的接口.Logging模块的使用见:Python日 ...

  8. 3568F-Linux系统启动卡制作及系统固化

  9. python实用总结

    Python3 常用工具 1. 命令行快速搭建本地http服务器 python3 -m http.server 8000 在命令行中输入此命令,就会在当前目录下搭建http服务器,可以通过访问http ...

  10. MySql常用日期时间查询

    -- 某一天所在周的第一天: -- 我们知道国外的星期的第一天是从星期天开始的,所以DAYOFWEEK('2017-3-10')函数的第一天是星期天: SELECT CASE WHEN DAYNAME ...