Storage

共 57 篇文章。

文件系统与大扇区

• Kernel

大扇区(超过旧式标准的512字节扇区)是改善硬件工艺或访问方式以后的一种直接提高存储密度的方法。对于磁介质来说,其盘片被分成若干的磁道(通常是同心圆)、每个磁道分成若干的扇区或称扇段,扇区是磁盘读写时的最小操作单元。对于基于闪存的存储设备而言,扇区则是一种模拟传统磁盘的概念。

阅读全文… ( 本文约 1218 字,阅读大致需要 3 分钟 )

Buffer和cache的区别是什么?

• Development

buffer和cache是两个经常被混为一谈的概念。从直观上说,两者都具备改善系统 I/O 吞吐量的能力,但是这两个概念是有区别的,其提高系统I/O吞吐量的原因也不尽相同。

阅读全文… ( 本文约 811 字,阅读大致需要 2 分钟 )

ZFS性能的一些优化结论

• Data Management

最近几天测试了一下盘很多(具体说是24块盘,其中2块热备的JBOD)的时候ZFS的性能特点。一些结论

a) ZFS的随机读性能比较差(相对于顺序读写)。这一点除了改为用mirror而不是raidz1/z2之外似乎没什么太好的办法。同样多的硬盘做成两组raidz1(11+11+2),与做成两块盘一组的11组mirror的pool相比,针对同样的数据集的随机读性能相差可达10倍多,当然,mirror的结果是顺序写性能会差一些。作为副作用,mirror时的读性能可提高大约4倍左右。

阅读全文… ( 本文约 451 字,阅读大致需要 1 分钟 )

FreeBSD CAM/AHCI committed

• Kernel

下周一的8.0-BETA2会包含这个。CAM/AHCI是按照CAM框架重写的AHCI驱动(之前是ata(4)),提供了包括NCQ等硬件特性的支持,并改善了对SATA光驱的支持。与OpenBSD的实现不同,FreeBSD实现通过扩展CAM框架使其直接对ATA设备提供支持。

阅读全文… ( 本文约 201 字,阅读大致需要 1 分钟 )

十多年以后又做了一次FAT文件恢复

• Data Management

今天又帮人做了一次恢复,上次干这个事是十几年前的事情了。数据恢复是个手艺活,恢复个60%-70%基本上靠工具,剩下的就靠运气和经验了。

想起很久以前做的一个小工具。简单地说是先把磁盘复制一份出来,然后在数据文件上去操作,把已知的链接上,然后把未知的文件的首簇、长度算出来,在空闲区里面找(很明显,大文件恢复的成功与否很大程度上取决于你多久整理一次磁盘以及是否经常删除文件)然后接个链出来。我当时很感激某文本编辑软件每次都会把之前的文件改名做BAK然后把文件整个重新写一遍。

阅读全文… ( 本文约 280 字,阅读大致需要 1 分钟 )

为什么是RAID-Z[2]而不是RAID-5

• Data Management

注意:如果您熟悉RAID请不必浪费时间阅读这篇文章。

为什么用RAID-Z/RAID-Z2而不是RAID-5呢?

答案是:RAID-5有一个不可避免的问题,即它必须使用后备电源才能保证写入的正确性。这也是为什么我一直极力反对使用低档RAID卡和软件实现的RAID-5的原因。

阅读全文… ( 本文约 551 字,阅读大致需要 2 分钟 )

ZFS做/是个好主意吗?

• Data Management

一段时间之前我曾经和很多人讨论过使用ZFS作为/的可能性。现在看来,这个也未必真就是一个很好的主意。

目前FreeBSD 8-CURRENT已经完全支持从ZFS启动了(换言之,连 /boot 也不需要了),方法是透过 GPT 分区(我最近MFC了最后一套gpart的补丁回7-STABLE,gpart将在7.1-RELEASE中以一种可用的形式出现)的gptboot。简单地说,配合ZFS v13和支持ZFS的gptboot,FreeBSD就可以从ZFS启动了。针对RAID-Z和RAID-Z2的支持也在计划中。

但是,我认为现阶段使用ZFS做/仍然是风险相当大的事情。

阅读全文… ( 本文约 1082 字,阅读大致需要 3 分钟 )

ZFS时代FreeBSD系统的数据冗余策略

• Data Management

2008硬盘磨损年!

我相信很多人都遇到过硬盘卡壳、掉链子的情况。当然,这篇文档的主旨不是告诉你怎么样可以绕过那些老爷子写的课本上说的金科玉律──重要的数据都应该有备份──如果你的数据最终丢失了,那么我的问题是:你的备份呢?

但是,即使你有经常备份的习惯,有些数据还是会难免出现一些没有及时备份而导致丢失的情况。我的观点是,没有备份计划的数据都不是重要数据,不要等到数据丢失了再去后悔,但是我们显然应该采取各种各样的手段来阻止没有及时备份的那一小部分数据的丢失。

硬盘

大家一起默念:它很便宜!它会坏掉!

是的,实战经验会告诉你,它很便宜!它也会坏掉!不管这个硬盘是来自什么厂商,也不管它是SATA、SCSI、SAS或者是传统的ATA接口,它出现故障只是时间早晚的问题。

为了解决这个问题,人们提出了廉价磁盘冗余阵列(RAID)的概念。例如,使用两块相同容量的磁盘组成 RAID-1 (MIRROR) 阵列,可以在其中任意一块出现问题时,从另一块中取出数据。而如果有至少3块硬盘,便可以组成 RAID-5 (注:还有其他RAID级别可以用3块硬盘组成冗余结构),只损失 1/n 的容量(n为硬盘数量)来得到带冗余的存储,使得存储可靠性得以提高。

除了改善可靠性之外,RAID还可以用来改善读写性能。例如用多块硬盘组成 RAID-0 阵列,可以将读写性能提高 n 倍,等等。我们并不讨论这些RAID级别。

不幸会发生

和很多人已经想到的一样──不要高兴的太早……

带数据冗余的 RAID 的一个基本假设是,磁盘是不骗人的,它有两种状态:好、坏,并且,主机(或RAID控制器)能够可靠地识别这种状态。

很不幸,这句话只对了一半。一块磁盘要么是好的、要么是坏的(这里,“坏的"的定义是读写时会发生任何错误),但是主机未必能够识别这种状态。

更为严重的是,有些时候主机甚至连读出来的数据是否是正确的这件事都不知道!当你发现自己的程序在其它机器上都很正常,但是在某台机器上总是神秘的崩溃的时候,你就要看看是不是那台机器的内存或者其他存储器出现问题了。

阅读全文… ( 本文约 3066 字,阅读大致需要 7 分钟 )

FreeBSD的坏损硬盘修复工具──recoverdisk(1)

• Data Management

2008硬盘磨损年,你需要这个工具,是的,即使你有备份,只要那备份不是实时的,你还是会需要这个工具。

recoverdisk(1)是FreeBSD 7.0新引入基本系统(/sbin!)的磁盘复制工具,这个工具对于修复硬盘、光盘、存在坏盘上的文件等各种情形都能非常有效地进行迅速修复:它首先尝试以1MB的块尺寸读取和写入数据,随后是64K和512字节(1扇区),遇到错误时会自动跳过,从而最大限度地从损坏的磁盘上恢复数据(如果是用 dd(1) 来恢复数据,通常在遇到坏区时会丢掉整个block,而recoverdisk则是先跳过,然后回过头来用较小的块尺寸重新读取直到失败,而此时主要的数据都已经恢复了)。

参与评论

Lenovo笔记本质量真是差得离谱

• Hardware

Lenovo laptops has bad quality.

这台Thinkpad T61是我这么多年以来用过的唯一一台:
This Thinkpad T61 is the only laptop that I have encountered in my many year usage of laptop computers:

硬盘在机器购买半年之内坏掉两块;
It has hard drive with bad sectors with only half year after purchase;

阅读全文… ( 本文约 227 字,阅读大致需要 1 分钟 )