分类: 信息技术

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

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

    关于字符的问题

    我决定对这件事进行深入的研究调查,当然部分原因是出于职业好奇。我觉得这件事可能与字符设置有关系。我猜想这家公司使用的不是IBM大型主机,而且系统使用的是ASCII码(American Standard Code for Information Interchange,美国信息交换标准码),而不是EBCDIC(Extended Binary Coded Decimal Interchange Code,扩增二进式十进交换码)。我首先列出了一个ASCII码换算表,从这个表中你就能看出“)”和“]”这两个字符从ASCII码转换成数据有什么不同。

    二进制

    八进制

    十进制

    16进制

    字符
    010 1001 051 41 29 )
    101 1101 135 93 5D ]

    据我所知,CERN使用的磁盘驱动器大多是SATA盘,难道这就是造成我密码丢失的主要原因吗?当然,我的七位密码中至少有四位已经丢失了。

    从这点来看,我觉得需要找到这家公司的某人向我提供第三方支持。虽然已经是下午了,但是我不费力就找到了第一个人和我谈论有关ASCII码和字位丢失的问题,几分钟之后我又找到了能够理解我所说的但却认为我是头脑发热的人,但最终我还是找到了可以提供第三方支持的那个人。我解释说,我是一名存储咨询师,在遇到这个问题时就仔细地考虑所有因素。有趣的是,谈话的过程中他接到了另一位和我遇到同样问题的计算机咨询师打来的电话,只不过他的密码被改成了其它字符。两个人在同一天遇到同样的问题。

    我向这第三个人建议说,他们应该好好检查一下于用户密码设置有关的磁盘和硬盘驱动器,我问他们所使用的驱动器类型是SATA还是光纤通道(FC),最后问他是否介意给我发一封电子邮件告诉最后结果。他爽快地答应了我的请求,当然此后就一直杳无音信。我很想得知这个问题的真正原因,但是我也可以理解他们不愿意对外宣布这样的信息。

    技术局限

    看来密码丢失的真正原因我是永远也不得而知了,但是为什么别人的密码也丢失了,或者说这个问题为什么这么普遍地存在呢?我认为目前人们对数据路径的保护有限,所以不断有数据发生丢失的情况。

    T10工作组出台了一项名为“数据完整性域”(Data Integrity Field,DIF)的新标准,可以由SCSI驱动程序传递一个校验和(checksum)字节到磁盘上(潜在的应用)。这项标准以及Sun的ZFS文件系统都是防止数据丢失的新尝试,但是目前人们对这种数据损失认识尚浅,想要彻底解决这个问题只是徒劳无获。当你遇到类似的问题时很难在短时间之内找到解决方法,于是你开始更换部件这样就更难找出问题的真正根源了。

    我认为数据损失无时无刻不在发生,而且以目前的技术水平来看我们还找不到解决这个问题的有效方法。无所不在的数据网络引发了海量数据的爆发,我们需要对数据路径进行纠错编码(Error Encoding)来保证数据不会丢失在无边的网络中。但问题是,纠错编码会降低性能、增加成本,我会为提高了的可靠性而支付额外费用,那你呢?

  • 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系统平台。

    从底层一步步探讨。

    首先,你的平台得支持VT-d或者是IOMMU,没这个就白瞎。

    其次,ESXi Console默认没有图形化界面,至于装X,那是极其不靠谱的事情。再,ESXi Console必须要分配独立的显示输出设备。啰嗦了一通……双显卡是必须的。

    第三,……理论上这样就解决了。ESXi可直通分配显卡给VM,而且该显卡最好有HDMI接口,否则你还得再处理音频输出。

    第四,遥控开关VM,USB红外设备是否可以直通到VM?VM“断电”待机后,USB红外设备接收到的信号能否通过ESXi使VM上电?

    第五,本来没有第五。但这是ESXi,上面可能运行了你的ZFS NAS等存储系统。而作为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 相关资料

    官网产品介绍

    官网产品规格

    官方拆机视频

    官方固件升级

    官方驱动支持

    玩家开箱及评测 http://bbs.et8.net/bbs/showthread.php?t=1020713 http://itcrashed.wordpress.com/2 … -n40l-micro-server/ http://www.chiphell.com/thread-320358-1-1.html http://www.chiphell.com/thread-441145-1-1.html http://www.chiphell.com/thread-459649-1-1.html

    HP MicroServer N40L Wiki

    HP Microserver N40L Build and Bios Modification http://homeservershow.com/hp-mic … s-modification.html http://www.serversplus.com/serve … servers/658553-421

  • 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映射文件的路径>/<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呢?我们来搞搞震吧!

    在NexentaStor启动使用root登录之后,你进入的是NMC shell,不管如何,先使用你的"root"账号登录,然后遵循以下步骤:

    nmc@homenas:/$ option expert_mode = 1 nmc@homenas:/$ !bash You are about to enter the Unix ("raw") shell and execute low-level Unix command(s). Warning: using low-level Unix commands is not recommended! Execute?  (y/n)

    按"y"之后,熟悉的bash#就回来了!

    nmc@homenas:/volumes#

    好吧,现在你可以为所欲为了!

    退出这个bash shell的时候,注意系统的提示。

    nmc@homenas:/volumes# exit exit

    Important: To re-sync the appliance's management state information, please consider running 'setup appliance nms restart' command.

    nmc@homenas:/$

    为系统完整性考虑,你应该考虑运行它建议的命令"setup appliance nms restart"。

  • SOHO NAS 折腾 – HP ProLiant MicroServer N40L

    杂凑大纲:

    需求篇

     

    硬件篇

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

    软件篇

    操作系统底层

    Server OS or ESXi

    ZFS及NexentaStor/NAS4Free/FreeNAS

    Windows

    〇、需求篇

     

    一、硬件篇

    1.1 HP ProLiant MicroServer N40L Quick Specs

    http://h18000.www1.hp.com/products/quickspecs/13716_div/13716_div.html

    1.2 内存

    ECC UDIMM

    为什么要使用ECC内存,对于存储系统来说,数据的持久性正确性是最重要的。不使用ECC内存,如果内存损坏而无提示,则可能会损坏数据,并往硬盘写入已损毁的数据。

    1.3 SATA/SAS扩展

    当下(2012年9月)最廉价的8口SATA3卡当属LSI的OEM型号IBM M1015/9220-8i。

    1.3.1 RAID Controller

    IBM ServeRAID M1015 SAS/SATA Controller for System x http://www.redbooks.ibm.com/abstracts/tips0740.html http://www-947.ibm.com/support/entry/portal/docdisplay?lndocid=MIGR-5073015

    [caption id="" align="aligncenter" width="400"]IBM ServeRAID M1015 SAS/SATA Controller for System x IBM ServeRAID M1015 SAS/SATA Controller for System x[/caption]

    LSI MegaRAID SAS 9240-8i http://www.lsi.com/products/storagecomponents/Pages/MegaRAIDSAS9240-8i.aspx

    [caption id="" align="aligncenter" width="540"]LSI MegaRAID SAS 9240-8i LSI MegaRAID SAS 9240-8i[/caption]

    1.3.2 HBA

    IBM HBA

    IBM 6 Gb SAS Host Bus Adapter for System x (4e4i) http://www.redbooks.ibm.com/abstracts/tips0776.html

    [caption id="" align="aligncenter" width="450"]IBM 6 Gb SAS Host Bus Adapter for System x IBM 6 Gb SAS Host Bus Adapter for System x[/caption]

    IBM 6 Gb Performance Optimized HBA (* Formerly known as the IBM 6Gb SSD Host Bus Adapter for IBM System x) http://www.redbooks.ibm.com/abstracts/tips0744.html

    [caption id="" align="aligncenter" width="450"]IBM 6 Gb Performance Optimized HBA IBM 6 Gb Performance Optimized HBA[/caption]

    LSI HBA

    LSI SAS 9211-8i HBA http://www.lsi.com/products/storagecomponents/Pages/LSISAS9211-8i.aspx

    [caption id="" align="aligncenter" width="540"]LSI SAS 9211-8i HBA LSI SAS 9211-8i HBA[/caption]

    参考: IBM ServeRAID Adapter Quick Reference http://www.redbooks.ibm.com/abstracts/tips0054.html

     

    1.4 线缆

    如何选择SAS线缆 http://stor-age.zdnet.com.cn/stor-age/2009/0514/1368653.shtml

    1.5 网卡

     

    1.6 光驱位扩展

    Orico 5226ss : 2.5″ * 6 扩展 Orico 5224ss : 2.5″ * 4 扩展

    1.7 硬盘

     

    二、软件篇

    2.1 ESXi

    SAS卡等PCI-E设备直通到虚拟机 http://www.servethehome.com/configure-passthrough-vmdirectpath-vmware-esxi-raid-hba-usb-drive/

    非官方支持的“本地”硬盘RDM挂载 http://blog.davidwarburton.net/2010/10/25/rdm-mapping-of-local-sata-storage-for-esxi/