ZFS时代FreeBSD系统的数据冗余策略delphij's Chaos » Che, Dong's shared items in Google Reader
2008硬盘磨损年! 我相信很多人都遇到过硬盘卡壳、掉链子的情况。当然,这篇文档的主旨不是告诉你怎么样可以绕过那些老爷子写的课本上说的金科玉律──重要的数据都应该有备份──如果你的数据最终丢失了,那么我的问题是:你的备份呢? 但是,即使你有经常备份的习惯,有些数据还是会难免出现一些没有及时备份而导致丢失的情况。我的观点是,没有备份计划的数据都不是重要数据,不要等到数据丢失了再去后悔,但是我们显然应该采取各种各样的手段来阻止没有及时备份的那一小部分数据的丢失。 硬盘 大家一起默念:它很便宜!它会坏掉! 是的,实战经验会告诉你,它很便宜!它也会坏掉!不管这个硬盘是来自什么厂商,也不管它是SATA、SCSI、SAS或者是传统的ATA接口,它出现故障只是时间早晚的问题。 为了解决这个问题,人们提出了廉价磁盘冗余阵列(RAID)的概念。例如,使用两块相同容量的磁盘组成 RAID-1 (MIRROR) 阵列,可以在其中任意一块出现问题时,从另一块中取出数据。而如果有至少3块硬盘,便可以组成 RAID-5 (注:还有其他RAID级别可以用3块硬盘组成冗余结构),只损失 1/n 的容量(n为硬盘数量)来得到带冗余的存储,使得存储可靠性得以提高。 除了改善可靠性之外,RAID还可以用来改善读写性能。例如用多块硬盘组成 RAID-0 阵列,可以将读写性能提高 n 倍,等等。我们并不讨论这些RAID级别。 不幸会发生 和很多人已经想到的一样──不要高兴的太早...... 带数据冗余的 RAID 的一个基本假设是,磁盘是不骗人的,它有两种状态:好、坏,并且,主机(或RAID控制器)能够可靠地识别这种状态。 很不幸,这句话只对了一半。一块磁盘要么是好的、要么是坏的(这里,"坏的"的定义是读写时会发生任何错误),但是主机未必能够识别这种状态。 更为严重的是,有些时候主机甚至连读出来的数据是否是正确的这件事都不知道!当你发现自己的程序在其它机器上都很正常,但是在某台机器上总是神秘的崩溃的时候,你就要看看是不是那台机器的内存或者其他存储器出现问题了。 经历了大量痛苦的数据恢复工作之后,终于有人想出了一个主意:把数据的校验和放到别的地方,例如,引用这块数据的地方,并且将元数据保存多份。解决问题的方法有很多,一种是花更多的钱去买更好的硬件,而另一种,则是采用一些合理的技术手段来降低硬件发生问题时的影响──你不是不可靠吗?那么我检查你,确认你的数据是对的我才接受;你不是容易丢失数据吗?那我就多存几份,多到将真的丢失数据的概率降到可以接受的水平为止。 这种技巧是广大劳动人民在长期的科研实践中总结出来的,并且在历史上有着相当广泛的应用。例如,传统 BSD 系统中的伯克利快速文件系统(FFS,在现代 FreeBSD 版本中称为 UFS)会保存大量的关键元数据──超级块和柱面组映射表的副本,而这些副本在布局的时候,被保证不会放在磁盘的相同盘面、柱面或扇区上,从而保证了磁盘在失去一个盘面、被划伤一个柱面,或者被子弹击穿时,仍然会有可用的超级块副本存在,从而能够恢复部分数据。 不过,简单地把所有数据保存多份有时是不需要的。首先,它会影响写入性能,并损害写操作的原子性。其次,存储设备尽管越来越便宜,但它总归还是要钱的,你不会希望把钱均匀的用在不同的数据上面──举个例子,你花12个小时写了一些代码,这些代码丢了你会很心疼;但是你的程序有bug,运行5分钟之后吐了一个2GB的core文件,这个文件丢了,你可能会觉得无所谓,至少没有丢掉代码那样心疼。那么,假如有3份存储资源,我想多数人不会给两种文件各分配1.5份,因为很明显,给代码分配2份,而给core文件分配1份,使得代码数据能够有更高的冗余度,是比较合算的做法。 对于RAID来说,一个比较常见的做法便是将一部分划成RAID-0卷,另一部分划成RAID-5卷。不过,这个做法并不完美,因为你并不能动态调整这两个卷的尺寸。如果之前规划的卷尺寸不合适,那只有停机、导出数据、重划RAID,导入数据,并祈祷下次发现不合适的时间越晚越好。 当然,这是一个极端的例子。对于个人用户来说,他们往往并不会在意 RAID-0 所带来的那一点点性能改善,而数据的可靠性才是他们更关注的事情。 个人系统中的数据冗余 虽然 RAID 是廉价磁盘冗余阵列,但是事实上它并不是那么的廉价。更重要的是,许多便携式系统,如笔记本计算机,并不具备安装多块硬盘的条件(无论是体积还是重量)。这类用户可能只有一块硬盘,但是仍然希望尽量提高他们系统中数据的可靠性。这个时候,就需要做一些存储规划了。 以我个人的笔记本计算机为例,它安装的是双系统,Windows和FreeBSD。平时工作的时候主要使用的是 FreeBSD,工作内容包括代码编写和调试、远程登录和撰写文档等等。 我们可以简单地把这个系统中的数据分成下面几类: o 操作系统。 o 第三方软件(如 X11 视窗系统、Eclipse、OpenOffice办公系统等) o 下载的数据(例如 ports、其 distfiles等等),其特点是来自互联网,只要带宽够,既不需要备份,也不担心丢失。 o 用户数据 (完全不希望丢失的数据) 我使用 ZFS 作为 / 分区(注意:这种做法有好处也有缺点,我们将在最后讨论),由于只有一块硬盘,因此除了用于引导的 UFS 之外,其余部分全部划给同一个 zpool。 针对不同类型数据的备份和冗余需要,在这个 zpool 上面建立了 4 个 ZFS: / - 即 zpool 本身的 ZFS,用于存放操作系统 /.portspace - 保存第三方软件(为什么分开放将在后面解释) /.download - 保存下载的数据,例如 CVS 代码库、ports本身及其distfiles等 /.data - 保存用户数据,包括 /home,/usr/src,自己工作用的代码库等等。这部分数据采取的保存策略是压缩,同时设置 copies = 2。 之后,做下列调整: 使用符号链接将 /usr/local 和 /var/db/pkg 放到 /.portspace 上。这样做的好处是,在进行 port 升级的时候(例如恐怖的OpenOffice、xorg之类的升级),你可以做下面的操作: zfs snapshot tank/.portspace@preclean rm -fr /usr/local/* /var/db/pkg/* 或者,如果出现问题,可以用zfs的rollback功能回到快照版本,更变态的用法甚至可以跑branch出来。 关于快照 ZFS可以在文件系统中建立大量的快照。通过脚本可以将快照操作自动化。sysutils/freebsd-snapshot提供了一组易于配置的snapshot工具,我的配置中,对 / 和 /.portspace 每天中午的时候做一次snapshot,保留3份;对 /.download 每逢6的整数倍点做一次snapshot,保留2份;对/.data每小时做一次snapshot,保留25份。 成果 在本次硬盘坏损中,使用recoverdisk恢复了3天,最后有大约3.4MB(IBM记法;最初的结果是有大约2GB数据存在问题,占磁盘总容量的5%)数据未能恢复。 使用zpool scrub共发现650处坏损数据,共导致出现了132个无法恢复的数据块,这些数据块分属于20个文件,/.data 中完全没有丢失数据。 其他一些问题: A。是否应使用 ZFS 作为 /? 答:取决于具体情况。ZFS作为/对于安装、故障恢复都会带来一些困难,并且其基于快照的revert能力也不能直接使用,只能通过复制或rsync的方法来恢复快照中的内容。 B。磁盘出现故障,通过recoverdisk恢复之后,ZFS说卷degraded,如何恢复? 答:首先zfs export,然后再重新zfs import(可能需要-f参数)。注意此时/boot/zfs必须可写。 C。ZFS的快照占多少空间? 答:取决于修改的文件数量和数据块数量。通常快照占用的空间可忽略不计(120K左右),除非此后又翻回头来狂砍/狂改文件。
10:13 Dell的Twitter策略,还可以更好 » WebLeOn's Blog
之前说到过,很多企业都已经开始意识到Twitter这种新媒体形式的价值,着手利用Twitter来进行在线营销。新营销观察最近的一篇文章也谈到了这个话题,文章中提到了Dell。Dell在Twitter的企业应用方面,应该说是一个比较有代表性的实践者,它在Twitter中使用的一些策略和收到的效果,也非常有意思。

我们先来看下Dell的Twitter帐户:
@Direct2Dell - 更新Direct2Dell的Feed,184个Followers。
@DellDirekte - 更新Direct2Dell挪威版的Feed,11个Followers。
@DellenDirecto - 更新Direct2Dell西班牙版的Feed,5个Followers。
@Direct2Dell_CN - 更新Direct2Dell中文版的Feed,8个Followers。
@ReGeneration - 更新环保网站ReGeneration的Feed,57个Followers。
@IdeaStorm - 更新IdeaStorm的Feed,55个Followers。
@StudioDell - 更新StudioDell的Feed,46个Followers。
@DellOutlet - 提供Dell产品的打折信息,人工更新,665个Followers。
@DellConsumer - 提供Dell消费类产品信息,人工更新,71个Followers。
@DellHomeOffers - 提供Dell家用类产品信息,人工更新,80个Followers。

以上是部分Dell在Twitter建立的帐户,从中我们可以发现几个明显的特点:
1,信息的传播有非常细的内容划分,不同内容用不同帐户发布;
2,大部分Dell的Twitter帐户都互相链接;
3,所有的帐户分为两类:TwitterFeed自动更新和人工更新。
4,产品打折信息受到的关注远远大于其他内容。

另外,Dell的员工在使用Twitter的时候,也都使用了统一的用户名规则:@jacquiatDELL、@LionelatDell、@JohnatDELL、@GretelatDELL,等等。

Dell对Twitter的使用很全面也很深入,也使得我们有可能归纳出一些应该注意的问题:

品牌的特色:Dell是一个以渠道和销售见长的品牌,自然而然的,@DellOutlet发布的内容成为了最受欢迎的信息,拥有最多的Followers。企业在使用Twitter的时候,一定要结合自己的特点和优势,发布一些自己的目标用户可能感兴趣的内容来建立并传播自己的品牌形象。发布打折信息当然是最直接的方法,一些相关的新技术、行业趋势分析等也会达到很好的效果。

细分和集中:在Twitter上,这种针对不同人群的信息发布对拥有众多细分市场的企业来说,是一种很好的工具。但是,这样的细分也容易让品牌印象比较分散,有一定的风险。虽然不同Twitter帐户之间的链接,也可以让用户方便发现同一品牌中其它可能感兴趣的产品或服务。但这种静态的链接和普通的网站链接起来,并没有什么优势。更何况,有很多通过第三方客户端使用Twitter的用户,他们根本看不到这些链接。如果有一个Twitter帐户可以把Dell不同Twitter帐户中发布的信息有选择的整合起来,会是一个两全其美的办法。Twhirl的Retweet功能也许可以完成这个任务。

自动与手动:用TwitterFeed这样的工具来发布企业信息非常的便捷。但如果只是单纯自动发布Feed信息,那就和一个Feed Reader没有多大的区别,也失去了这个帐户作为一个“角色”的个性。比较Dell的这些Twitter帐户,人工更新的帐户明显拥有更多的Followers,也说明了人工更新内容比苍白无力的纯TwitterFeed更有吸引力。其实,便捷和个性还是能在一定程度上兼得的。我大致看了一下,Dell员工基本上没有把Dell的Feed同步到自己的Twitter帐号中。Direct2Dll中文版(戴尔直通车)的作者@jacquiatDELL 如果能用TwitterFeed把戴尔直通车的Feed同步到自己的Twitter中,会是一件很好的事情。

除了以上三点以外,和本行业意见领袖的互动、对于时效很短的信息处理技巧、TwitterMail等辅助工具的合理应用,也是企业在利用Twitter进行营销时应该关注的问题。
09:52 迎接奥运,你准备好了吗? » Google AdSense China Blog


迎接奥运,除了做奥运志愿者、抢购奥运门票、学习“How are you”,我们还可以做什么?

据AC尼尔森的预测,2008年,网络广告市场受奥运的推动,“预测增长幅度将不低于50%”(|o|,增长幅度远远大过CPI!)。作为一名AdSenser,您是否意识到您不只是奥运文化的消费者,奥运也是帮助您获取网络广告收益的大好时机。下面,我们就如何把握奥运机会,给出一些抛砖引玉的建议。

•内容为王:
AdSense提供的广告都是“内容相关”的广告,因此一直以来,我们都请您万分重视您的内容。如果您想吸引更多奥运广告商的广告,提供更多与奥运相关的精彩内容是一个先决条件。很多知名的门户或者论坛都纷纷建立了奥运专区,如新浪、CCTV、天涯等,您也可以建筑有自己特色的奥运栏目。如果您的网站是提供论坛服务,您可以考虑构建奥运明星粉丝板块;如果您是做新闻门户的,您可以考虑增加奥运新闻频道;如果您是做视频分享网站的,您可以考虑增设奥运的视频专区。

•优化“渠道跟踪”,让奥运广告商找到您:
在前面的AdSense优化技巧当中,我们已经介绍了如何设置“自定义渠道”,让您的网站能够吸引更多广告商的定点广告投放。那么现在,让我们来一起想想如何优化我们现有的渠道设置,吸引更多的奥运广告商。

首先,让我们站在广告商的角度,来考虑广告商希望投放在什么样的网站或者频道上。与奥运直接相关的内容,当然是所奥运广告商的首选之一,因为浏览这些内容的受众会对奥运广告商的品牌有比较高的接受度。



另外,您可以结合您网站不同频道的特点来划分渠道。这里提供两个划分渠道的思路:
一是按您网站不同频道的受众来划分。为什么有些广告商会选择央视投放广告,有些广告商会在湖南卫视投放广告?不同媒体的受众不同,是广告商考虑的重要因素。比如,您的网站是做综合体育类的,有NBA篮球、高尔夫球等栏目,针对的人群分别是18-25岁的年轻人以及35-50岁具有一定经济基础的中年人,这个信息对于想单纯针对学生受众的广告商(如Adidas)和想单纯针对高端人群的广告商(如大众汽车)就非常宝贵,针对这两个不同特点,可设置渠道如下:

NBA篮球频道:


高尔夫球频道:


二是按您网站不同频道的内容来划分。比如您的网站是做电子消费品内容的,有手机、笔记本、MP3等频道,据此分类,也能帮助不同产品的广告商广告投放更加有的放矢。例如:

针对手机频道:


针对笔记本频道:


有了这些判断之后,我们就可以开始着手优化我们的“自定义渠道”了:或者您可以增加新的“奥运”渠道,将渠道代码放在所有奥运相关内容的页面上;或者根据以上思路,优化已有的渠道设置并在“说明”项里增加您网站受众或者内容的基本特性以及日均独立访问人次等指标,突出渠道的卖点。

•了解更多奥运广告信息:
很多市场调研公司,如艾瑞、AC尼尔森等都会提供奥运广告市场报告。
下面谨提供一些链接,以供您了解最新的市场情况,把握广告商的动态:
艾瑞报告:http://www.iresearch.com.cn/html/Consulting/online_marketing/Free_classid__id_1122.html
AC尼尔森报告:http://cn.nielsen.com/site/0201.htm

^==Back Home: www.chedong.com

^==Back Digest Home: www.chedong.com/digest/

<== 2008-04-07
  四月 2008  
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
==> 2008-04-09