Hardware

共108篇文章。

廉价GPU时代的密码策略

• Security

很久以前我曾经建议过别人使用足够长的一大串英文单词作为密码,现时这样做已经完全不能保障安全了。

Colin Percival最近在 一篇文章 中提到了这样的数据:使用价值 $10k 的 GPU 破解使用MD5的34位英文密码(例如"You will never guess this password")所需要的时间仅为两小时(如果使用专用的硬件,以$1M投资的ASIC可以在一秒之内完成破解)。如果密码长度不够长的话,采用了特殊符号的帮助也不大。足够复杂的8位密码,例如"6,uh3y[a"使用 $10k 的 GPU 破解只需10个小时。

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

配合 APC BE550G UPS 的 apcupsd 配置

• Hardware

APC BE550G 是一种廉价的UPS,支持以 USB 线通知被保护的系统或查询状态。

在 FreeBSD 上可以用 apcupsd 来配合 USB 通知使用。

去年大河发生过一次停电事故,所以买了一个 UPS 来配合自己的机器;今天大河又来了一次大约90分钟的停电,算是完成了对 UPS 的完整测试。

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

ZFS dedup初步测试

• Kernel

最近做一个存储的项目,顺手在家测试了一下实际数据的dedup。操作系统是 FreeBSD 8.2 配合一组总共大约3MB的patch来跑ZFS v28,硬件是 Atom D510 配合 4G 内存。

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

折腾了一下 neptune 上的 ZFS

• Kernel

我一直是非常反对重装系统的。从技术上说,今天的折腾并不算是重装系统,不过因为把机器上所有的数据(是的,文件系统全部都拆掉重建了)都重写了一遍,所以还是算做了一次吧。

缘起

在采购 家里的路由器 的时候,选择了 WD 的 AV-25【1】 系列硬盘。我选的那款硬盘使用的是新式的 AF (4kiB扇区)格式。

FreeBSD 使用的主流文件系统 UFS 和 ZFS,以及 ahci(4) 驱动都 直接支持 4kiB 扇区。但是,目前市面上的AF硬盘,为了与先前的 BIOS 和操作系统(主要是 Windows XP)兼容,对于 ATA IDENTIFY 的回应,原先返回扇区尺寸的位置变成了逻辑扇区尺寸,这种做法俗称512e,即硬盘通过固件或其他方式模拟山区尺寸为512字节,并处理相关的回写操作。

以512字节为单位进行读写时,在AF格式的硬盘上是低效的。FreeBSD的 ahci(4) 驱动和对应的 ada(4) 驱动会设置 stripesize 以反映驱动器采用的实际物理扇区尺寸,但文件系统并不直接识别这个尺寸。

对于 ZFS 而言,其扇区尺寸是在创建时以 ashift 值写死的,目前在命令行没有办法指定这个值,也不能在创建 ZFS 之后修改。如果修改内核令其使用 GEOM 的 stripesize 来产生 ashift,对 AF 硬盘则会出现内核得到的 ashift 比先前已经存在的 ashift 大,从而导致 ZFS 无法识别的问题(如果创建 ZFS 时已经使用了更大的 ashift 则没有关系)。因此,必须想办法让 ZFS 在创建时就知道扇区尺寸是 4KiB。

FreeBSD 5.3-RELEASE 时新增了一个调试用的 GEOM class —- gnop。可以用它来封装其他 GEOM 对象,并改变扇区尺寸,方法是 gnop create -S 4096 /dev/gpt/store (此处 /dev/gpt/store 是一个按 4k 对齐的 GPT 分区的 label)。gnop会产生一个新的设备节点,/dev/gpt/store.nop,其向系统汇报的扇区尺寸是我们指定的 4096 字节,而不是驱动器汇报的逻辑扇区尺寸 512 字节。

使用这个设备节点创建的 ZFS 就会采用正确的 ashift 值了。

使用 zdb -C pool名字可以检查 ashift 值:对于扇区尺寸为 512 字节的 zpool,其 ashift 是 9,而我们希望的 ashift 值是12。

gnop节点在系统重启以后会消失,但 ZFS 会记住 ashift,因此并不会导致问题。此处也可以 zpool export,gnop destroy /dev/gpt/store.nop 然后再 zpool import 来验证。

经测试,ZFS在知道正确的扇区尺寸以后,持续写操作的性能可以提高至少一倍。

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

基于 Supermicro X7SPA-H (Atom D510) 的路由器(3)

• Hardware

📜 历史文件已不具备现实意义

本文介绍的是已经停产的硬件与早期 FreeBSD 8 系统的配置,内容已过时。

在前两篇中我们讨论了这台家用路由器的硬件选型、磁盘布局以及在 FreeBSD 下的功耗与内核调优。本文继续介绍日常自动维护、powerd 补丁以及专用的硬件 Watchdog 驱动。

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

基于 Supermicro X7SPA-H (Atom D510) 的路由器(2)

• Hardware

📜 历史文件已不具备现实意义

本文介绍的是已经停产的硬件与早期 FreeBSD 8 系统的调优配置,内容已过时。

接前篇硬件选型与系统安装。除了硬件上直接采用的降噪措施之外,一些软件方面的配置也可以提高其效果。

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

基于 Supermicro X7SPA-H (Atom D510) 的路由器(1)

• Hardware

📜 历史文件已不具备现实意义

本文介绍的是已经停产的硬件与早期 FreeBSD 8 系统的配置,内容已过时。

最近找时间做了一个家用的路由器。用基于Intel Atom处理器的解决方案并不便宜(与传统的嵌入式解决方案相比),但因为软硬件都是x86,因此开发起来会方便一些。另一方面,Atom的计算性能要远高于其他的传统嵌入式方案。

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

Intel CPU的Tj(max)的获得

• Hardware

本文主要是笔记,不保证其正确性,也不保证其不导致死机、崩溃或任何其他问题。


CPU的Tj(max)值可以通过读 MSR IA32_TEMPERATURE_TARGET,即 0x1a2 来获得【1】。目前,Intel正式的开发文档中并没有明确对这一MSR进行说明。早期的CPU中,Tj(max)值需要加上40到50摄氏度,目前不清楚具体哪些CPU必须如此,但从公开文档来看,已知:

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

FreeBSD 1U服务器参考配置

• Hardware

📜 历史文件已不具备现实意义

本文介绍的是已经停产的硬件,内容已过时。

此配置确认可配合 FreeBSD/amd64 8.1-RELEASE 使用。实际运行时功率少于100W(110V电的情况下电流小于0.9A),供参考。

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