选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
先挖好坑,等有空了再填。
今天(2014/01/14)发了4个安全公告和2个勘误公告,其中 FreeBSD-SA-14:02.ntpd 是针对 NTP 的这种攻击的因应措施。
攻击的原理是通过发送一个小包(GET_MONLIST),得到大体积的回应。而由于 NTP 使用了 UDP 协议,因此攻击者可以伪造源 IP,从而,通过较小的流量代价,即可利用其他服务器作为杠杆来攻击受害者。
正确配置的 NTP 服务器并不受这个问题影响。所谓正确配置是指 NTP 服务器配置为只允许其他机器向其查询时间,具体做法是在 /etc/ntp.conf 中增加类似下面的设置:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 127.127.1.0
(说明:上述配置是推荐的配置,实际上起作用的是 noquery)
还有一种解法是仅仅禁止 monitor 功能:
disable monitor
FreeBSD 安全公告提供的补丁采取的做法是将 monitor 功能默认禁用。用户不需要对配置文件进行修改,只需更新软件并重启 ntp 服务即可防止自己的服务器成为别人的攻击杠杆。
Read more...因为家里最近发生了几次停电,我觉得 Enough is enough,决定还是再买一台 APC BE550G 来扛家里的网络基础设施。
配置和两年前在大河用的那台 一样。
Read more...今天去 San Francisco 的 Delphix 参加了 OpenZFS Developer Summit,今天这会太充实了,先记一笔。
ZFS Channel Program:目前的 ZFS 应用程序需要以多次系统调用来完成一项功能。为了实现原子性,用户态部分实现起来比较复杂,而且最终内核中的 sync task 可能会导致长时间的延迟。提出的解决方案是在 ZFS 内核部分引入一个 Lua 字节码解释器,用户态一次灌一个脚本进去,通过脚本逻辑实现原子性,从而减少上下文切换开销并极大地简化用户态部分。
分层的 ZFS 存储:希望将 ZFS 改造为能够适应冷热存储的结构,这样可以将冷数据部分固定下来之后脱机(例如置于待机状态),从而节省能源开销。(Nexenta)
对于 spacemap/metaslab 的改良:Delphix 通过 DTrace 观察发现了一系列性能瓶颈并进行优化的实例。这个已经在 Illumos 里了,今天主要是趁热讲解一下所做的改进。比如写带宽限制从原始的限时、限量、加延迟变成了按系统中未回写数据比例作为限制条件、当 I/O 持续到来时自动切换到吞吐量优先(多排任务)的模式、写入速度减慢时减缓接受写请求等的新一代写带宽控制,使得 ZFS 的写入延迟得到了极大的改善。Adam Leventhal (这位老大也是 RAID-Z2/Z3 以及 ZFS gzip 压缩支持的作者)分享了采用的方法、评估手段等等。
明天的活动是 Hackthon,又要起个大早。
Read more...早期 FreeBSD 文档采用 jadetex 等的工具集,对 UTF-8 的支持不好。最近, Gabor 等人完成了将工具集换成 TeX Live、Apache FOP,并使用 DocBook 5.0 的工作,所以趁今天编译代码的空挡,我把 FreeBSD 简体中文文档全部换成了 UTF-8 编码。
目前这个转换还有一些小问题需要修正,目前版本的 PDF 生成已经基本算是可以看了(之前有很多由于字体配置问题导致的汉字缺失)。还需要解决下面这些问题,但是我暂时没有太多精力去做,如果有兴趣请和我联系:
在 FreeBSD doc project 换成 svn 之后,FreeBSD 简体中文文档计划基本上处于停滞状态。现在的想法是将库挪到 github 上面,方便多人合作;FreeBSD 目前已经有了对应的 github 镜像:https://github.com/freebsd/freebsd-doc,如果未来按这个计划去做的话,我打算起一个新的github项目来做。
Read more...这个方法我最早是在 佐藤 広生 在 第13回 FreeBSD勉強会 上做的 《ZFSの活用とチューニング》 演示幻灯片上看到的,当时没想太明白,而后来想明白了也没记下来。今天想起来了就先记上一笔,备忘。
一般来说,如果有很多不同的资源,那么尽量让不相关的资源同时去完成不同的任务有助于改善系统的利用率并提高吞吐量。而 Unix 上的大部分工具在设计时都是设计成阻塞的,或者说它们很大程度上能够高效地利用一种资源,而在完成一系列相互关联的任务时往往就不那么有效了。
举例来说,发送 ZFS 快照到另外一个网络的服务器上,假定发送 ZFS 快照本身在本地可以以较快的速度持续进行,但带宽比较受限,那么很显然的一个想法便是引入压缩。另一方面,在接收一侧,解压缩之后的数据写盘的速度可能没那么快,而且让压缩程序直接挤牙膏似的吐出数据给 ssh 或者 nc 往往也不能十分有效地利用带宽。在这个场景中,在发送端我们可以看到以下几个任务:
对应的,在接收端我们也可以看到与之对应的任务:
在这样一个链条中,如果全部使用标准的 Unix 命令行工具的话,任何一个环节的阻塞都可能会直接向前反馈,从而影响整个系统的吞吐量。很明显,在对方由于任何原因暂时来不及接收数据的时候,压缩操作可以继续进行,这事通过编程不难实现,但实际上我们需要的只是引入两个 dd 进程,即将发送端变成:
在新的场景中,接收端的阻塞将导致第二个 dd 的输出阻塞,而此时第一个 dd 仍然可以再吃下 16MB 的数据流(这个 16MB 需要根据具体的应用来调整,原则上它应该大于远端一次阻塞到完全恢复这段时间上游能够产生的数据量)。通过 dd 所做的 reblock,也使发出数据采用较大的块尺寸,从而进一步节省带宽。
Read more...我之前用的无线路由器是刚来美国以后不久买的 Linksys WRT310N(刷了 DD-WRT 固件)。由于 DD-WRT 的可靠性很差,因此后来买了一台采用 Atom CPU 的 PC 服务器作为网关,只使用它的 AP 功能,但是最近因为发现家里的网络稳定性越来越差,做了一段时间的功课之后决定用 Asus RT-N66U 来取代这台 WRT 310N。
Asus RT-N66U 是一款 802.11n 的无线路由器,包括 4 个千兆口、1 个做uplink的千兆口,支持 5GHz 和 2.4GHz 两种无线频率。它的下一代产品 RT-AC66U 支持 802.11ac,不过目前家里没有支持 802.11ac 的设备,加上看到一些风评认为这款 802.11ac 产品和这一代产品相比性能方面存在差距,因此就没有选择 802.11ac 的版本。
目前暂时还没有刷其他固件。不过 Henry 同学推荐了 Tomato Firmware,目前还是当做 AP 来用,假如这个固件支持 VLAN tagging 的话可以考虑试试看,如果不支持的话,可能就等淘汰它的时候再说了。
Read more...警告 刷写硬盘固件时的不当操作可能会导致硬盘无法使用。本人不承担由于使用本文中介绍的内容所导致的任何后果的责任。
上回 说到 谷奥 的一块硬盘坏了,但是忘记说实际上两块硬盘的固件都有已知问题(ST1000DM003-9YN162 固件版本 CC4D,目前的最新版本是 CC4H)。虽然在 ticket 里提到了这件事,但是 remote hand 没做升级,想想之后决定还是自己把它远程刷掉好了。
由于刷写不当会导致硬盘无法使用(实际上还是有办法恢复的,但是比较麻烦而且没法在远程做),因此为了以防万一,在执行任何操作之前应备份硬盘上全部数据。由于使用的是 graid 的镜像模式,因此事实上我们有一份完整备份,故跳过这一步。
接下来要从 Seagate 网站下载固件。考虑到刷新固件操作的危险性,不知道怎么找这个固件的人可以看到这为止了。
Read more...谷奥 的服务器硬盘坏了,而且托管商很奇怪地用了 gmirror 而不是 BIOS 直接支持的 graid(我厂 Alexander Motin 实现的与 BIOS 兼容的软件 RAID,支持 Intel、Adaptec、JMicron、nVidia、Promise和SiL等多家厂商的软RAID格式),所以趁这个机会给它换掉。记一下迁移的过程。
启动的时候, gmirror 已经 degraded 了(有一个硬盘已经换掉):
% gmirror status
Name Status Components
mirror/gm0 DEGRADED ada0 (ACTIVE)
检查分区(gpart show),确认磁盘的最后部分没被占用:
% gpart show
=> 63 1953525104 mirror/gm0 MBR (931G)
63 1953520002 1 freebsd [active] (931G)
1953520065 5102 - free - (2.5M)
=> 0 1953520002 mirror/gm0s1 BSD (931G)
0 20971520 1 freebsd-ufs (10G)
20971520 1048576 2 freebsd-swap (512M)
22020096 1931499906 4 freebsd-ufs (921G)
Intel的元数据格式需要占用磁盘的最后4K。(如果是GPT格式的,处理起来就复杂得多了,但MBR在磁盘最后并不放任何内容,因此可以直接来用)。
Read more...Google 在一篇关于 Google Maps 更新的 blog 中提到, Google Latitude 即将关闭 并转入 Google+。(另外话说,这事有必要这么偷偷摸摸的吗?)
我目前还在使用的 Google 服务有:
大致看了一下,如果有一天所有这些服务都汇入 Google+ 的话,还是能活的。所以,如果哪天 Google 真这么干的话,就只好说拜拜了。
Read more...