Browsed by
Tag: linode

DigitalOcean 免费升级

DigitalOcean 免费升级

早上开始工作时,收到了DO的邮件,非常惊喜。DO更新了各项套餐,增加了一些新套餐,也对老套餐进行了免费升级,真是良心企业。比如原有的“$10/mo”套餐,内存从1G升级到2G,存储从30G SSD升级为50G SSD。

不过默认情况下不会自动升级,需要手工对droplet进行resize。另外需要注意的是,可以只升级CPU和Memory,如果disk也同时升级到更高容量的话,则不支持降级回原有容量。

resize操作非常简单,请参考官方文档:

https://www.digitalocean.com/community/tutorials/how-to-resize-your-droplets-on-digitalocean

网站启用IPv6应注意的事项

网站启用IPv6应注意的事项

网站支持IPv6的步骤比较简单,基本上目前常用的软件,例如Apache、Postfix、dovecot等,都已经支持IPv4和IPv6双栈,只要服务商的设备提供IPv4和IPv6连接,这些软件本身无需为IPv6做特别配置。

需要注意的是服务商处的DNS配置。如果DNS配置不全面,某些服务器在鉴权时会拒绝接受来自IPv6地址的消息。例如gmail服务器在收到 email 消息时,会鉴定DNS和IPv6地址是否匹配,如果不匹配,则视为垃圾邮件直接拒绝,可以看到如下错误警示:

Our system has detected that this 550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records 550-5.7.1 and authentication.

下面以Linode中的配置做简单介绍(对DO而言也基本如此)。假设IPv4地址是“1.2.3.4”,IPv6地址是“1:2:3:4::5:6”,域名是“demo.com”。

Reverse DNS

Linode 为每个节点分配的DNS名默认是类似的成员名,例如“1234.members.linode.com”。在 Linux 系统 ping 域名”demo.com”时,首先显示的是”1234.members.linode.com”,然后才是跳转到”demo.com”。某些服务应用会认为是PTR错误。在linode中需要设置“ reverse DNS”记录,将节点的DNS名直接指定为“demo.com”。

具体措施请参考linode的在线文档

如果同时支持IPv4和IPv6,上述文档里指导的操作需要单独操作两次,分别指定IPv4地址和IPv6地址。

MX 记录

另外一个需要注意的是 MX 记录,即邮件服务器记录。如果我们将 MX 记录设置为“mail.demo.com”,那么在DNS的A和AAAA记录中,要分别对“mail.demo.com”设置IPv4和IPv6地址,例如以下DNS记录结果:

mail.demo.com. 300 IN AAAA 1:2:3:4::5:6
mail.demo.com. 300 IN A 1.2.3.4

仅仅指定一个地址,对端有可能以域名和地址不匹配为由拒绝消息请求。

TTL

Linode 默认的TTL是3600秒,建议修改为300秒。TTL 太长太短都不好,要根据自己的实际情况调整,以方便自己网络部署、同时又不增加太多网络负担为准则。

Linode免费升级

Linode免费升级

Linode最近13周年庆,直接将内存免费翻一倍,价格保持不变,太劲爆了!

Old Plan New Plan Price
Linode 1 GB -> Linode 2 GB $10/mo ($0.015/hr)
Linode 2 GB -> Linode 4 GB $20/mo ($0.03/hr)
Linode 4 GB -> Linode 8 GB $40/mo ($0.06/hr)

有几点需要注意:

(1)如果节点是Xen架构,则需要先转换成KVM才可以进行内存升级。如果已经是KVM架构,则可以直接升级。我升级了几个节点,爽爽的!

(2)国人非常喜爱的东京数据中心,节点都是Xen架构,而且据说已经没有空闲节点,暂不支持转换成KVM,因此要等待一段时间才行。

过往都是DigitalOcean频繁推出升级或者优惠,然后Linode被迫跟随。这次感觉Linode突袭了一次。

DigitalOcean,你看到了吗?你现在还好吗?加油啊!

再见,bluehost

再见,bluehost

BlueHost(以下简称BH)是个老牌的虚拟空间服务商,与其他服务商相比,BH有很好的口碑,当然,也有相对高的价格。我们的小公司自创立以来,就使用BH的空间来支持网站(myvoipapp.com)。虽然随着我们技术水平的发展,越来越多地采用VPS和云计算资源,比如我们的云系统miniSIPServer.com以及我们为客户部署的各类系统,都换用了VPS和各类云系统,但是我们的官网始终保留在BH中。

一方面是考虑到多年数据积累,迁移整个系统是费时费力的事情,比如需要考虑email、web、ftp、论坛、blog、数据库等,想想就觉得很麻烦。另一方面,BH一直以来工作得很好,对于初创企业(尤其是没有太多技术积累的初创企业),BH提供的各类一键式安装和维护,的确省心省力,不会让人太操心,把精力更多地放在自己业务发展上。

然而最近我们终于还是花时间把网站迁移到VPS上了(推荐Linode以及DigitalOcean,两家口碑极好的VPS服务商),告别了使用时间近乎十年之久的BH。下面分享一些我们做决定时的一些动因和思考。

1、稳定性

在虚拟空间服务领域存在大量的服务商,坦率地说,绝大部分虚拟空间服务只能做个人blog等非关键应用,少数才能为严肃的商业网站提供服务,而一直以来BH都是其中佼佼者,其基础就是良好的稳定性。这也是我们一直使用BH的根本原因。

然而最近不知道是出什么问题了,也许是BH推出了VPS类业务,调整业务重心,从而忽略了原有的虚拟空间业务。总之,最近一年以来毛病不断,网络故障、主机故障、数据库故障、各类故障层出不穷,以前十年间出的问题加起来都没有最近一年多。

2、糟糕的技术支持

出问题不可怕,如果有良好的技术支持,很多问题是可以被容忍的。然而要命的是,BH的技术支持水平严重下降。很多问题本来是可以避免的,比如擅自修改php配置,居然去掉了mysql的pdo驱动,导致我们的服务大面积中断。

最离谱的是,连续几天awstats居然没有任何统计数据。由于我们以前过于信赖BH自身的工具,没有引入第三方的统计分析工具,以至于我们都无法确认这只是awstats的问题,还是BH的节点出现了严重问题,感觉非常糟糕。

BH新的技术支持人员的专业素养也让人怀疑。比如cpanel的问题、sftp等问题,域名管理配置问题等,简直答非所问,让人吃惊。而且online chat现在居然要三十几分钟的等待才能连接,实在无法理解。遥想当初使用BH的时候,还是个技术小白,几乎什么都不懂,完全是依赖即时的online chat来获得帮助,真是今非昔比。

3、隐性的商业成本

这里就不说擅自修改商业定价策略和产品包的内容。

BH的初次建站成本比较低,但是续费的时候就比较贵,这点可以接受。然后后续如果需要添加新的服务,比如HTTPS支持,独立IP等,就需要另外付费,综合起来的商业成本,实际上比使用VPS更贵一些。何况,在“lets encrypt”免费提供SSL证书的情况下,对HTTPS进行收费未必合理。实际上,我们切换到VPS后,采用了“lets encrypt”的证书进行HTTPS加密,效果很好,没有任何额外费用。

4、结论

使用VPS的技术要求门槛高一些,至少要懂一些linux的基础知识,所幸的是我们的技术水平在逐步的成长,这方面已经没有什么障碍。而BH对于初创企业目前来看还是很好的选择,只是在留住资深用户方面,还需要更扎实的服务和更稳定的系统环境。

DigitalOcean小坑

DigitalOcean小坑

DigitalOcean是我个人非常喜欢的云计算服务商,我们在部署自己的网站、云通信系统、向客户推荐等各种情况都会采用DO(以及Linode,另一个非常优秀的云计算服务商)。

绝大多数情况下,DO节点运行非常快速、稳定,然而有时候也有意想不到的情况发生。最近我们发现一个节点的服务突然中断了,经检查后发现是MySQL数据库异常退出,错误原因是内存分配不足。以前从未发生过这种情况,简单对比后发现这个节点是个小内存节点,只有512M内存(通常我们都为生产环境节点配置2G内存)。我们认为这个节点的MySQL数据库不应该占用太多内存,即便512M内存不够,加上SWAP的支持也应该足够了。

然而分析该节点信息,惊讶地发现DO默认居然没有分配SWAP区(与之对比的是,Linode可以在创建节点时指定SWAP分区)!

检索了DO的文档,对这种情况的解释是建议采用更多内存的节点,SWAP做缓存会拖慢系统,并可能影响其他用户。原则上这点没错,如果频繁发生内存不够的情况,的确应优先升级节点,采用更多内存。然而,如果仅仅是在尖峰时刻偶尔少量内存不足,采用SWAP过渡一下完全合理。

更重要的是,即使SWAP相对而言慢一些,但相比程序crash而言,一个慢点但是稳定的系统显得更合理。同时考虑到DO采用SSD硬盘,速度可以接受,因此我们手工增加了2G的SWAP设置。事实证明,内存在忙时实际只少了1M,用SWAP来应对这1M内存的需求,相当合理。

在DO节点增加SWAP很容易,请点击这里了解细节。文档是基于Ubuntu 14.04,我们的节点是Debian 8,按照这篇文档的介绍,也能设置成功。

以下是简要的步骤记录:

(1)创建 swap 文件:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

(2)修改 /etc/fstab 文件,添加以下项即可:

/swapfile none swap sw 0 0
linode-VPS内核升级记录

linode-VPS内核升级记录

由于linode默认的内核(ubuntu10.04)缺省将SIP等协议过滤模块编入了内核,而且linode默认没有采用模块化的方式,因此被迫重新编译内核。linode提供了一篇文档指导如何使用自编译的内核,但是在细节上实际还是有不同,导致按照文档的步骤编译后,系统没办法启动。于此记录一下,以备后续需要。

采用linode的文档编译和配置,往往会出现以下一些错误:

i8042 no controller found
udevd[1077]: failed to create queue file: no such file or directory
udevadm[1816]: error sending message: connection refused.

第一个错误涉及menu.lst,在这个文件中,不能像文档那样,启动时携带’quiet’参数。

第二个错误与Ubuntu版本可能有关,需要人工指定/dev,需要修改/etc/fstab的配置(后续说明细节)。

基本步骤如下:

下载最新的kernel代码并解压:

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.7.6.tar.bz2

将系统原有的config导入到kernel源代码的目录下,同时根据自己的需要修改.config文档:

zcat /proc/config.gz > .config

顺序执行以下命令:

make oldconfig
make -j3 bzImage
make -j3 modules
make
make install
make modules_install

如果成功,应该在/boot目录下看到新生成的内核文件,例如vmlinuz-3.7.6等。

创建/boot/grub/menu.lst文件,添加以下内容:

default 0
timeout 5
title           Custom Compiled, kernel 3.7.6
root            (hd0)
kernel          /boot/vmlinuz-3.7.6 root=/dev/xvda ro

注意,Ubuntu版本可能还需要安装grub软件:

apt-get install grub

修改/etc/fstab目录,添加以下内容:

dev             /dev            devtmpfs        0       0

完成上述步骤后,修改linode中该node的profile,将kernel修改为pv-grub-x86_32,然后重启启动该node即可完成升级。SSH登录系统,使用uname -a命令即可查看新内核版本。

2013-07-19 update:

在编译3.9.x内核时,出现以下错误信息:

/bin/sh: bc not found

此时,安装bc即可:

apt-get install bc

 

网络慢时初步诊断方法

网络慢时初步诊断方法

在linux环境下,可以使用mtr跟踪各环节的丢包率。如果是使用Ubuntu系统,缺省应该已经安装了mtr,如果没有的话,可以使用下述命令安装:

sudo apt-get install mtr-tiny

使用mtr进行丢包率检查的命令也比较简单:

mtr --report 您的站点

例如您的网站是demo.com, 则命令为 mtr –report demo.com即可.

下面是最近一个测试报告,不解释。

HOST: ubuntuLTS Loss% Snt Last Avg Best Wrst StDev
 1. 121.15.56.1 0.0% 10 21.7 24.7 17.6 35.7 5.5
 2. 121.15.56.1 0.0% 10 19.6 23.0 19.5 39.2 6.1
 3. 113.106.45.61 10.0% 10 20.9 21.3 19.7 27.8 2.5
 4. 219.133.30.234 0.0% 10 21.0 20.7 18.7 22.7 1.3
 5. 121.34.242.226 10.0% 10 21.5 23.6 21.5 25.3 1.4
 6. 202.97.35.246 0.0% 10 24.0 24.2 21.4 28.6 2.0
 7. 202.97.60.90 10.0% 10 26.4 23.9 21.6 27.3 1.9
 8. 202.97.52.162 0.0% 10 189.0 191.5 187.6 200.7 3.6