C0reFast记事本

to inspire confidence in somebody.

0%

很久之前,对于磁盘的了解,就知道一个很关键的指标MTBF,即相邻两次故障之间的平均工作时间,也称为平均故障间隔,这个值越大越好,越大意味着硬盘更不容易坏。
对于RAID,也是很相信,觉得大多数情况下,使用RAID,就能保证数据的安全性,几乎不会有数据丢失的风险。

突然的,读到一篇对于RAID 6的文章 Why RAID 6 stops working in 2019,这是一篇2010年的文章,很遗憾到目前才读到。
这篇文章里提到了一个指标,叫URE,也就是Unrecoverable Read Error Rate,不可恢复读取错误,一般普通的桌面级别硬盘,这个指标的值为1 × 10^-14,意味着每读取10^14bit的数据,就有可能产生1bit的错误。

问题在于,这个错误是无法被检测和修复的。10^14bit,大约相当于12.5TB的数据,也就是说,每读取12.5TB的数据,就有可能产生一个错误的读取。而对于目前现在硬盘的容量越来越大,4TB,6TB硬盘的价格越来越低,这种现象会越来越严重。

在RAID5中,当整个集群有一块硬盘出现损坏需要替换时,需要进行重建,重建时,需要读取其他硬盘的数据,计算出替换的那块硬盘的数据,在重建过程中,除了需要考虑重建的时间之外,还要考虑的就是URE的影响,如果集群的容量足够大,比如超过10TB,那么,其实是有很大的概率出现读取错误的,而一旦读取出错,则RAID的重建就会失败,基本也就意味着,数据能恢复的可能性变得相当低了。所以在使用RAID5时,就需要考虑重建的问题。

不过对于企业级的硬盘,URE普遍能做到1×10^-15,就意味着大约能读取125TB的数据,容量有比较大的提升,对于SSD,这个值会更加优秀,有些SSD能达到1×10^-17甚至1×10^-18,能提供更好的数据安全性。

所以,稳定点的话,还是RAID10吧。

默认的Thunderbird设置签名后,会在新建邮件时在前面自动添加两个短横线,类似:

--
xxxxxx

如果要去掉这两个短横线分割符,需要在 工具-> 选项-> 高级-> 配置编辑 中,将 mail.identity.default.suppress_signature_separator 配置项的值修改为 true。即可去掉分割符。

原文在 Signatures - Thunderbird

If you don’t want a “– “ signature separator (the divider between the message body and the signature)
use the config editor to change mail.identity.default.suppress_signature_separator from false to true.
This requires Thunderbird 5.0 or later. If you are using Windows go to Tools → Options → Advanced → General
and press the Config Editor button. Enter suppress_signature_separator in the Filter: field and press return.
Find mail.identity.default.suppress_signature_separator in the results and double click on false in its Value column
to toggle it to true, then close the config editor and press the OK button.

新浪云的PHP 7版本运行环境上线了,相对于PHP 5,PHP 7的性能,在官方宣传和实际应用测试中,都有极好的性能表现,大多数的主流应用和框架都有超过1倍的性能提升。

随着新浪云支持PHP 7运行环境,将应用切换到PHP 7版本运行无疑是更好的选择,但是,由于PHP 7的修改十分巨大,因此,有极少部分的代码是不兼容的,需要针对性的进行修改,想比较巨大的性能提升,这些小的修改就变得微不足道了~

阅读全文 »

为什么说也许是最简单的Channel服务教程呢?因为真的很简单啊,总共只有两个文件,一共只有不到30行代码,但是已经完整的实现了HelloWorld了,除了把代码全写在一行里,不然恐怕这已经是最短的例子了~

阅读全文 »

SAE内部的一些服务,比如MySQL,包括独享型和共享型,默认是无法在外网访问的,这给本地调试带来了一些麻烦,但是,有了VPN隧道服务之后,可以利用VPN隧道服务连接到SAE的内网环境,这时候,就可以在本地计算机直接连接这些服务了。

阅读全文 »

2016年5月3号,一个被广泛使用的图片处理库ImageMagick被爆出存在一处远程命令执行漏洞(CVE-2016–3714),当其处理的上传图片带有攻击代码时,攻击代码中的远程命令将会被执行,进而可能控制服务器。
这个漏洞被命名为ImageTragick,甚至还有了一个属于这个漏洞自己的网站(https://imagetragick.com/)
同样,SAE上也是安装了这个库的,在PHP运行环境中,也是有PHP-Imagick这个扩展的,这就意味着SAE的PHP环境也是有相同的远程命令执行漏洞的。
因此SAE在第一时间修复了该漏洞,并执行了更严格的策略,和官方提供的解决方案相比,更加严格的杜绝了类似现象的发生。下面就来看看这个漏洞的产生,以及SAE是如何修复这个漏洞的。

阅读全文 »

事情的原因,是发生在某个晚上的9点30左右,SAE的报警系统突然报出了异常,所有的Web服务器的负载突然变得很高,流量也变得异常的大。
这个是很有问题的,在SAE最前面的反向代理上,是部署了SAE自己开发的‘CC防火墙’的,如果出现了异常的被攻击的情况,这些异常的流量是不会到达
Web服务器的,现在这些流量都到达了Web服务器,说明要么是攻击没有被正常判断,要没就是这不是一次攻击。

事实上确实这也不是一次攻击。

随后的分析,我们发现了一堆比较‘奇怪’的应用,为什么说‘奇怪’呢,因为这些应用的访问趋势是这样子的:

这是其中一个应用的数据,然而在这个应用的帐号下面,大约有十个类似的应用,都是这样的趋势,所以对于我们的Web服务器来说,在特定的时刻要接受
接近10倍左右的流量,对于当前的规模就有点‘顶不住’了。

阅读全文 »

工作中,需要对单个MySQL进程进行限制,并且对MySQL进程消耗的IO,CPU Time,Memory等进行统计,首先想到的就是使用Cgroups对进程进行限制,同时,Cgroups提供的一些接口,也可以非常方便地读取到进程消耗的IO,CPU Time, Memory等数据。

但是在实现自动化之后(使用了自己编写的一套管理程序来对MySQL进程进行管理),却发现了一个非常奇怪的问题:从Cgroups中读取的进程Memory消耗完全是一个不正确的值,使用ps命令查看到的MySQL进程内存大概是2G左右,可是通过读取memory子系统下memory.usage_in_bytes接口获得的数据大概只有几十KB,基本上是一个完全不相干的数值,这个就非常的奇怪了,虽然在官方的文档

阅读全文 »

在PHP的配置文件中,添加一行extension=xxxx.so,就可以使PHP加载xxx这个扩展,那么这个扩展具体是怎么被加载到PHP中的?可以看一下。

阅读全文 »