分类: 信息技术

  • Bit Rot 存储位衰减 无形的数据损失

    来源:ZDNet存储频道 原文:http://stor-age.zdnet.com.cn/stor-age/2007/1217/684190.shtml 时间:2007-12-17 作者:存储时代/盛瓦(编译)

    虽然人们越来越注重数据保护和数据备份,但是如果不提出有效的解决方案的话,无形中的数据丢失——或者称为“Bit rot(是指物理存储介质的衰减)”所带来的隐患将凸显出来。

    最近,全球最大的粒子物理研究实验室——CERN欧洲核子研究中心发表了一份关于数据损坏(Data Corruption)和存储介质衰减的报告。在报告中,CERN研究员Peter Keleman列出了存储专家值得关注的几个解决方案。

    那么这与我们终端用户有什么关系呢?我突然想起几个月前碰到的一个关于数据损坏的问题。

    今年8月,我访问了一家不知名的旅行公司的网站并且预订了一些行程的机票。几个小时之后,我再登录这个网站市发现密码无法通过验证了。我猜想这个公司的网站的服务器可能当机了,于是在午饭过后再一次登陆,但遇到了同样的问题。我拨打了这家公司的预订机票的电话,那头的工作人员告诉我他们没有发现任何问题,然后我又拨打了用户支持热线,他们告诉我可以把我的密码用电子邮件发送过来。

    我收到密码后非常失望,因为我原来设定的密码结尾是()!@,而发过来的密码结尾却变成了(]!@。我开始担心有人盗取了我的密码,然后更改密码使用我的信用卡(更糟糕的是,使用卡上的钱)。我再次打电话询问那家旅行公司的工作人员我的密码最后一次修改是在什么时候,被告知是在一年之前时我终于舒了一口气。

    (更多…)

  • Sun文件系统ZFS的十佳特性 [2009年文章编译]

    Sun在2005年推出开源文件系统ZFS,最初是为OpenSolaris设计的。

    以下是ZFS支持者认为ZFS具备的十佳特性:

    1、元数据校验和确保数据完整性

    数据完整性在ZFS中具有非常高的重要性,也是很多ZFS功能的先决条件。

    ZFS文件系统采用了256位校验和,当向磁盘写入数据的时候,校验和就会被作为元数据与它相关的数据分开保存。与普通的磁盘块校验和不同的是,这种校验和可以检测出错位写、误读取和误写入、DMA奇偶错误、驱动器bug、意外过量写入以及常见的物理存储的衰减(bit rot)

    2、写时才拷贝

    ZFS文件系统使用多项技术确保数据在磁盘上的一致性/连续性,其中就包括写时才拷贝(Copy on Write),也就是当数据发生变更的时候它并不会覆盖写入——它总是在指针指向变更数据之前被写入到一个新块并产生校验和。旧的数据可能被保存下来,在发生变更的过程中创建文件系统的快照。利用ZFS的文件写入是事务型的——要么将所有数据写入到磁盘,要么什么都不写入。

    3、利用Time Slider的数据快照

    OpenSolaris的最新版本展示了ZFS利用TimeSlider小型图形应用所实现的强大快照功能。可以通过配置设定对ZFS文件系统进行常规的快照操作——每15分钟,或者每小时等等。这种快照占用容量很小,而且很高效,因为它只保存与之前快照的变量。

    TimeSlider提供了对文件系统(或一个主目录)的查看功能,而且有一个可以沿着时间线返回到更早快照时间的滑块。用户可以观察特定快照时间的文件系统或者文件夹内容。如果想要恢复一份被错误覆盖的文件,或者在升级失败之后还原系统,你只需要将滑块滑向合适的快照时间即可。

    4、数据存储池

    ZFS利用可用的存储驱动器,将之聚合为一个称为zpool的资源池。这个资源池可以使用脚本、镜像或者某种RAID针对容量、I/O性能或者冗余性进行优化。如果需要更多存储,只需向zpool中添加更多存储就行——ZFS将检测并自动开始使用新添加的容量,平衡I/O并最大化吞吐量。

    5、RAIDZ和RAIDZ2

    RAID 5有一个广为人知的缺陷——RAID5 Write Hole。RAID 5在写数据的时候,是分为两步的,首先将数据写到磁盘阵列上,然后将该stripe上数据的校验码记录到阵列上,如果在刚写完数据的时候,系统断电,那么该数据对应的校验码就没有机会再恢复了。如果接下来再发生磁盘故障,RAID重建流程将出现错误数据。唯一的解决方案就是,如果整个stripe发生覆盖写入,就创建一个正确的奇偶校验块。

    RAIDZ通过使用可变宽度的条带来解决这个问题,这样每次写入实际上是一个完全的条带写入。再加上ZFS的写入时才拷贝特性,这就完全消除了RAID 5的Write Hole缺陷。RAIDZ2同理,但它使用双奇偶校验,允许阵列中丢失两个磁盘。

    设置RAIDZ/RAIDZ2阵列非常简单,只需一条命令即可。

    6、SSD混合存储池

    可以通过向存储池中添加高性能的SSD,使其变成一个固态混合存储池。当这些固态盘作为高性能缓存时,ZFS会用其储存常用数据以提高性能。另外ZFS还采用了L2 ARC(自适应替代高速缓存)技术来暂存那些无需立即保存的数据——在时间和资源允许的情况下,这些数据会被慢慢迁移到传统的更持久的硬盘驱动器中。

    7、容量

    ZFS是128位文件系统,也就是说理论上它可以保存256千万亿ZB(1ZB=10亿TB)。它的容量远超今日实际所需,至少可预见的未来是如此。

    8、数据清洗

    ZFS可以清洗存储池中的所有数据,根据相应的校验和检查每个数据来验证其完整性,检测任何潜在的数据损毁,修复可能存在的任何错误。

    当数据以冗余形式储存时——例如镜像或者RAID型阵列中——它可以检测修复任何潜在的损坏数据,且无需管理员干预。由于数据损坏都有记录,所以ZFS可以发现内存模块(或其他硬件)导致硬盘数据被错误存储的原因。

    数据清理的I/O优先级较低,因此对系统性能影响非常小。用户可以在存储池使用过程中就进行数据清洗。

    9、简单有效的管理

    使用ZFS命令,你可以用简短而有效的命令来管理系统。例如,5磁盘RAIDZ阵列可以用这样一条命令设置:

    zpool create poolname raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0

    10、更多期待

    ZFS仍在不断发展,不时有新的功能。ZFS的2009年路线图中包括增强安全性的加密功能,以及提高存储效率的重复数据删除功能。

  • 从32口到2口:ZFS和Linux MD RAID理想的SATA/SAS控制器列表

    http://blog.zorinaq.com/?e=10

    非常全面的兼容性列表,要为ZFS或Linux MD RAID挑卡的,可以从里面找信息。

  • 关于在ESXi环境下使用VM做HTPC系统

    首先要说的就是,这会非常蛋疼。

    但是本着没有困难创造困难也要上的精神,这里也从理论上探讨一下。

    目标是在ESXi下,使用Windows VM作为HTPC系统平台。

    (更多…)

  • 团购 HP ProLiant MicroServer N40L(2012年9月第2批)

    团购价格RMB1900,深圳发德邦物流,运费到付。超过20台开团。

    团购由CCFer Naco发起,报名及最新情况请猛击这里: http://nacox.com/bbs/thread-16-1-1.html

    附:

    HP ProLiant MicroServer N40L 相关资料

    (更多…)

  • ESXi 中为 VM 直通挂载本地 SATA 硬盘 (RDM)

    VMware ESXi 会先将存储设备格式化 VMFS-5(一种存储池管理格式,与 LVM 等类似),然后给虚拟机分配使用,对于即将安装的操作系统来讲,这相当于一个实际的物理硬盘,操作系统会再一次对这个“硬盘”格式化,而当一个物理硬盘出现部分数据损坏后,你是没办法拿到新电脑上直接访问里面的数据的。如果你基于 ESXi 来打造一个 NAS 家用存储系统时,比如希望安装 OmniOS/napp-it/NexentaStor/FreeNAS 之类的,系统也是推荐使用整个整个的硬盘来作为存储基础单元,而不推荐使用虚拟磁盘或磁盘分区之类。

    作为虚拟化领域的领导厂商,VMware 当然也考虑到了这个问题,ESXi 支持设备的直通,包括各种 PCIe 设备(需要 ESXi 基础硬件的某些虚拟化特性,如 VT-D/IOMMU 等支持)。对于存储,官方的 RDM 一般只有通过认证的 RAID/SCSI 卡或 iscsi/SAN 存储设备才可以 RDM。不过无论如何,直接访问主板上连接的硬盘驱动器都不被官方支持。

    那么,怎样才能让 ESXi 中的虚拟机直接访问主板挂载的 SATA 硬盘呢?这就需要我们另辟蹊径了。

    首先你得熟悉命令行操作,知道如何使用终端管理工具,使用 SSH 或 ESXi 控制台进入 ESXi 的 Shell 界面。

    第一步得找到需要映射的 RAW 驱动器名称:

    ls /dev/disks
    

    在我这边,有 4 块西数 4T SATA 红盘需要做 RDM:

    t10.ATA_____WDC_WD40EFRX2D68WT0N0_________________________WD2DWCC4E536ULXV
    t10.ATA_____WDC_WD40EFRX2D68WT0N0_________________________WD2DWCC4E7FYF8ZL
    t10.ATA_____WDC_WD40EFRX2D68WT0N0_________________________WD2DWCC4ECXUD802
    t10.ATA_____WDC_WD40EFRX2D68WT0N0_________________________WD2DWCC4EFSNCRU3
    

    在 ESXi datastore 中建立硬盘标识文件,该文件也是以 vmdk 为后缀,不过它只以文本方式保存了硬盘 RAW 信息。

    vmkfstools -z /vmfs/devices/disks/<前面找到的RAW名称> <存储RDM映射文件的路径>/.vmdk
    

    完成后,我这边的文件之一的内容是:

    # Disk DescriptorFile
    version=1
    encoding="UTF-8"
    CID=bbd41d1e
    parentCID=ffffffff
    isNativeSnapshot="no"
    createType="vmfsPassthroughRawDeviceMap"
    
    # Extent description
    RW 7814037168 VMFSRDM "WD-36ULXV-rdmp.vmdk"
    
    # The Disk Data Base 
    #DDB
    
    ddb.adapterType = "lsilogic"
    ddb.geometry.cylinders = "486401"
    ddb.geometry.heads = "255"
    ddb.geometry.sectors = "63"
    ddb.longContentID = "8a320d912c71ea70e95daffcbbd41d1e"
    ddb.toolsVersion = "0"
    ddb.uuid = "60 00 C2 90 83 11 65 46-b3 92 b2 53 25 66 8d b3"
    ddb.virtualHWVersion = "10"
    

    接下来,在 vSphere Client 中编辑虚拟机配置,以添加现有虚拟磁盘的方式,选择刚刚创建的 RDM 映射文件就 OK 了。

  • NexentaStor下获取真正的root权限

    NexentaStor一切都被封装得严严实实,即使用ssh下用root登录到它的NMC(Nexenta Management Console)也是如此。当然了,这主要还是为了安全计——如果这台机器这个OS下的系统专用作存储服务,似乎真实的root shell确已无必要,使用其WEB界面的NMV及字符界面的NMC就已足够。但凡事总有例外,如果NexentaStor运行在ESXi下,像VMware tools之类的安装活儿,你还非得真正的UNIX shell不可。

    NexentaStor其实就是Solaris开源分支的一个封装发行,那么我们怎样找到熟悉的UNIX bash呢?我们来搞搞震吧!

    (更多…)

  • SOHO NAS 折腾 – HP ProLiant MicroServer N40L

    杂凑大纲:

    需求篇

     

    硬件篇

    内存、SATA扩展、线缆、网卡、光驱位扩展、硬盘

    软件篇

    操作系统底层

    Server OS or ESXi

    ZFS及NexentaStor/NAS4Free/FreeNAS

    Windows

    (更多…)