Browsed by
Tag: digitalocean

Debian 8 升级 Debian 9 (DO篇)

Debian 8 升级 Debian 9 (DO篇)

这两天升级几个Debian 8 (jessie)的droplet,屡次失败,后来参考了一篇blog(请点击此处了解),并多次尝试后才最终成功。回过头来看看,其实整个过程很简单,只是被一个点卡住,就来回折腾。本文简要记录一下操作顺序和操作要点,以备日后查看。

修改 /etc/apt/sources.list 文件

这个是通用步骤了,修改成 Debian 9 (stretch) 的源即可。

deb http://deb.debian.org/debian stretch main contrib non-free
deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb http://deb.debian.org/debian stretch-proposed-updates main contrib non-free
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb http://deb.debian.org/debian-security stretch/updates main contrib non-free

deb-src http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-proposed-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian-security stretch/updates main contrib non-free

这里也可以用 DO 自己的镜像站点的源(http://mirrors.digitalocean.com/)。考虑到我们的droplet都部署在欧洲和美国,因此速度上没太大差别,还是直接取官网的源好了。

备份 /etc/cloud 目录

使用以下命令直接备份即可。这步骤非常重要,实际上是整个升级的关键点!后面操作中,必须要还原这个目录!

cp -r /etc/cloud /etc/cloud-bak

停止所有相关的服务

这也是通用步骤,没什么细讲。有什么服务就停什么服务好了。

systemctl stop apache2
systemctl stop mysql
systemctl stop fail2ban
systemctl stop dovecot

更新并升级

需要注意的是,一般情况下,升级提示是否保留原有配置时,一般都保留原有配置,这个也是默认选项。但是对于fail2ban的jail.conf文件,建议采用系统新的文件,后面手工再改即可。

我在这个更新过程中,没有提示是否保留/etc/cloud的配置,因此后面需要手工还原备份的/etc/cloud目录,如果是系统提示了,务必要保留原有的/etc/cloud配置。

apt update
apt upgrade
apt dist-upgrade

还原 /etc/cloud 目录

完成各项更新后,先不要重启系统,务必先还原 /etc/cloud 目录。这步相当关键!如果没有还原,将采用系统新的/etc/cloud 配置,导致cloud-init 过程失败,系统无法启动!

rm /etc/cloud
cp -r /etc/cloud-bak /etc/cloud

最后,就是重启系统,完成整个升级。

关于 /etc/cloud 目录,只在 DO 的系统中有这个目录,在 Linode 等其他VPS系统没有发现。感觉是 DO 处理上一个不太完善的地方,这个目录似乎没有必要暴露给客机系统,主机系统配置即可。

和 DO 的技术支持人员简单交流了这个问题,平台相关的元数据(metadata)是保留在 /var/lib/cloud 目录下,似乎 /etc/cloud 只是上游云系统的初始化配置(根据 /var/log/cloud-init.log, 系统初始化时需要从这个目录下读取 cloud.cfg 等配置)。

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

再见,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对于初创企业目前来看还是很好的选择,只是在留住资深用户方面,还需要更扎实的服务和更稳定的系统环境。