在家里的局域网搞了一个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. jquery的树状菜单

    <body>     <ul>         <li>一级菜单                 <ol>                 <li ...

  2. 剑指Offer-47.求1+2+3+...+n(C++/Java)

    题目: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 分析: 利用短路与来判断n是否大于0,从而实现递 ...

  3. ETL工具-nifi干货系列 第一讲 揭开nifi神秘面纱

    1.nifi简介 Apache NiFi 是基于流程编程概念的数据流系统.它支持强大且可扩展的数据路由.转换和系统中介逻辑的有向图.NiFi具有基于Web的用户界面,用于设计.控制.反馈和监控数据流. ...

  4. rsync备份

    备份工具rsync 备份是太常见.且太重要的一个日常工作了. 备份源码.文档.数据库.等等. 类似cp命令拷贝,但是支持服务器之间的网络拷贝,且保证安全性. 学习背景 超哥游戏公司要每天都要对代码备份 ...

  5. Do not access Object.prototype method 'hasOwnProperty' from target object

    hasOwnProperty 判断对象是否为空 在使用 hasOwnProperty 判断对象是否为空时遇到了一下问题,总结一下 // Do not access Object.prototype m ...

  6. Lecture6

    Smiling & Weeping ---- 我渴望你的在场,又渴望你的缺席,你终究是我深藏的借口 第六章 GitFlow工作流实战 6.0 引言 在实际项目开发工作中,常常会有自测.联调.提 ...

  7. [OC]一个括号新建一个类

    [OC]一个括号新建一个类 特别说明 以下代码仅仅用于说明用途,命名也不是特别规范,小朋友不要模仿哦. 前言 在iOS开发中,我们会经常用到这么一段代码: UIView *myView = [UIVi ...

  8. 15-容器简介与Docker安装

    传统企业应用构建 应用被直接部署在操作系统之上,并且操作系统直接安装于硬件之上应用被操作系统绑定 操作系统被硬件绑定 缺点 部署非常慢(启动应用的速度非常慢) 成本非常高(原有服务器的操作系统不支持这 ...

  9. AtCoder Beginner Contest 302 H. Ball Collector 题解 可撤销并查集

    为了更好的阅读体验,请单击这里 AtCoder Beginner Contest 302 H. Ball Collector 题意跳过. 可以视作将 \(a_i, b_i\) 之间连了一条边,然后 \ ...

  10. IPTABLES管理

    iptables 是 Linux 管理员用来设置 IPv4 数据包过滤条件和 NAT 的命令行工具.iptables 工具运行在用户态,主要是设置各种规则.而 netfilter 则运行在内核态,执行 ...