FLASH快闪记忆体( 二 )


FLASH快闪记忆体

文章插图
比特反转测试图片一位的变化可能不很明显,但是如果发生在一个关键档案上,这个小小的故障可能导致系统停机 。如果只是报告有问题,多读几次就可能解决了 。当然,如果这个位真的改变了,就必须採用错误探测/错误更正(EDC/ECC)算法 。位反转的问题更多见于NAND快闪记忆体,NAND的供应商建议使用NAND快闪记忆体的时候,同时使用EDC/ECC算法 。这个问题对于用NAND存储多媒体信息时倒不是致命的 。当然,如果用本地存储设备来存储作业系统、配置档案或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性 。坏块处理NAND器件中的坏块是随机分布的 。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算 。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用 。在已製成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率 。软体支持当讨论软体支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁碟仿真和快闪记忆体管理算法的软体,包括性能最佳化 。在NOR器件上运行代码不需要任何的软体支持,在NAND器件上进行同样操作时,通常需要驱动程式,也就是记忆体技术驱动程式(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD 。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软体,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所採用 。虚拟化基于FLASH快闪记忆体的存储能够解决很多性能问题,尤其是由虚拟伺服器环境所导致的问题 。但FLASH快闪记忆体仍有很多神秘之处:它们可信吗?哪种类型的FLASH快闪记忆体最适合虚拟环境?FLASH快闪记忆体是一种记忆体技术,与RAM不同,在断电时它仍旧可以保留所存储的信息 。儘管FLASH快闪记忆体在执行读写操作时并不像RAM那样快,但性能远远高于典型的硬碟 。更为重要的是,FLASH快闪记忆体访问数据时几乎不存在任何时间延迟 。FLASH快闪记忆体技术非常适合随机I/O,而虚拟伺服器环境中恰恰存在大量的随机I/O 。对FLASH快闪记忆体主要的关注点之一是其执行写操作的方式 。FLASH快闪记忆体可以执行的写操作次数有限,这意味着FLASH快闪记忆体厂商需要开发複杂的控制器技术,对写入FLASH快闪记忆体模组的方式进行管理,确保每个FLASH快闪记忆体单元接收相同的写请求 。目前有三种类型的FLASH快闪记忆体,耐久性各不相同 。单阶存储单元(SLC)FLASH快闪记忆体在每个单元写一位数据,耐久性最好 。多阶存储单元(MLC)FLASH快闪记忆体在每个单元写多位数据,耐久性排名第二 。三阶存储单元(TLC)在每个单元写三位数据,耐久性最差 。每个单元写入的数据位越多意味着每个单元的容量越高,每GB的成本越低,同样意味着平均寿命更短 。SLC是数据中心标準,但控制器技术的不断最佳化使得MLC被大多数用例所接受 。尤其是在採用了某种方式的数据保护,比如镜像或者RAID或者使用了FLASH快闪记忆体层时 。规格介绍就在虚拟环境中使用FLASH快闪记忆体而言,通常有三种规格可供选择 。最常见的是固态硬碟,其与硬碟的规格相同 。这类FLASH快闪记忆体可以很容易地安装在伺服器内部或者存储阵列内部,直接使用HDD的驱动器插槽即可 。SSD的不足之处在于性能、密度 。在SSD中放置FLASH快闪记忆体意味着所有的存储I/O都是通过SCSI堆叠处理的 。与其他方式相比,会增加一些延迟 。儘管如此,这些系统,尤其是阵列,仍旧可以交付成千上万个IOPS,因此很少会受到需要使用SCSI协定的SSD的影响 。密度同样受到了忽视,快闪记忆体SSD厂商已经採用了独特的方式在硬碟中塞入儘可能多的FLASH快闪记忆体,与同等的HDD相比,SSD通常提供了更大的存储容量 。就某些环境而言,SCSI所增加的延迟存在问题,儘管通常我们所指的并不是虚拟环境 。当延迟是一个关注点时,可以选择PCIe SSD,将快闪记忆体设备集成到PCIe板卡上 。这通常避免了标準的存储协定堆叠而且能够在本地访问CPU 。但用于三大最为流行的虚拟环境的驱动器都是很普通的 。PCIe应该被虚拟环境视为RAM记忆体的一个扩展 。因为PCIe具备低延迟特性,能够提供性能非常高的虚拟记忆体池,这样一来动态RAM用于存储换出的页面几乎对性能没有任何影响 。另一种正在变得流行的FLASH快闪记忆体是记忆体汇流排FLASH快闪记忆体 。FLASH记忆体汇流排FLASH快闪记忆体安装在伺服器FLASH记忆体插槽中而不是PCIe汇流排中 。FLASH记忆体汇流排FLASH快闪记忆体看起来像是DRAM双排直插记忆体模组,但实际上包含的是FLASH快闪记忆体 。这种实现方式的延迟甚至比PCIe SSD还要低而且在访问CPU时提供了私有、高性能路径 。FLASH记忆体汇流排FLASH快闪记忆体在虚拟环境中套用有限,但将FLASH记忆体汇流排FLASH快闪记忆体用作虚拟交换FLASH记忆体大有裨益,当难于使用PCIe插槽时,FLASH记忆体汇流排快闪记忆体同样是刀片、1U以及2U伺服器的理想选择 。损耗FLASH快闪记忆体的损耗在VMware以及Hyper-V环境中备受关怀,类似于快取和数据去重这样的技术将会对其持久性造成负面影响 。FLASH快闪记忆体被认为是大有前途的技术,很多人认为他们可以在伺服器中部署快闪记忆体充当快取的角色 。但殊不知FLASH快闪记忆体适合读,而并不适合写 。你需要十分注意FLASH快闪记忆体的耗损,并充分利用其有限的寿命 。FLASH快闪记忆体厂商会使用DRAM,这种介质抗耗损能力比较好 。他们将所有的写操作都聚集于DRAM快取,从而减少对快闪记忆体快取的大量写操作 。这保留了快闪记忆体的完整性并有效防止了快闪记忆体的耗损 。Hyper-V则体现出略微不同的FLASH快闪记忆体耗损问题 。它在存储中套用数据去重,而对源档案执行写 。原数据以很多小的写操作写入快取,当Hyper-V在运行去重算法时,这些写操作又会二次破坏快取 。