来自UCloud的数据方舟

上周做完UCloud的数据方舟测试,今天写个书面的测评吧。

1. 介绍

1.1 UCloud

最早看到UCloud的影子是在一个开源社区,印象最深刻的就是那个简洁的Logo。当时还在学校,对云计算这个概念不是很清楚,使用过一些产品后,才知道云计算的强大之处——成本低 · 安全 · 方便

UCloud Logo

随着云计算的发展,各大互联网巨头都提供有云服务,而UCloud是一家非常专业的云计算服务商,说其专业,是因为UCloud只专注于云计算,比如典型的云服务器、云数据库等。

1.2 UDataArk(数据方舟)

还记得电影《诺亚方舟:创世之旅》和《2012》里面的诺亚方舟么?其作用是保留物种不被灭绝。在计算机领域,数据就等同于物种,是非常重要的。数据方舟是UCloud近期提供的数据备份服务,目前还处于内测阶段,我有幸提前进行了试用。

数据方舟支持手工备份和秒级备份服务。从使用感受上来说,秒级备份是亮点。各大互联网厂商都提供的云服务一般都支持手动备份(创建镜像),但是大多忽略了实时备份,然而只有实时备份才更能保证数据的完整性,秒级备份服务正是基于这点诞生的。

2. 使用

2.1 开启数据方舟

在Ucloud上创建云主机,目前只有标准版的云主机支持数据方舟服务,SSD高性能版、网络增强机型暂时不支持数据方舟服务,相信Ucloud很快会全方位支持。

在最后一步备份方案中后面打勾,才能开启这台主机的数据方舟服务。
开启数据方舟

2.2 我的云主机配置

  • 主机名:ARK
  • 机型:标准版
  • 镜像:CentOS 6.5 64bit
  • CPU:2核
  • 内存:4G
  • 本地硬盘:
    /dev/vda1 20GB系统盘(/)
    /dev/vdb 20GB数据盘(/data/)

既然数据方舟是用来备份数据的,所以刚开始我在云主机上做了一个WEB服务配置,使用了LNMP架构(Linux + Nginx + MySQL + PHP),将MySQL的data目录放在数据盘中(/data/mysql/),同时安装了一个流行的php框架Laravel,也放在数据盘中(/data/www/)。

基础配置

下面是部署在该云主机上的WEB程序,为了使测试更直观,为该Web程序配置了二级域名。
web首页

OK!既然系统环境和程序部署完成,就可以开始测试数据方舟的功能了。

2.3 手动备份测试

手动备份数量上限:系统盘和数据盘各三份,如果多于三个的话,需要先把以前的一份备份删除,才能继续创建备份。

我的个人认知是这样的,这里的手动备份相当于各大云厂商提供的镜像服务,手动备份的最大特点是灵活性高,适用于各种备份场景,在应用进行重大迭代之前进行手动备份是非常有必要的。

手动备份

等待了大概5秒钟系统盘和数据盘备份成功。

手动备份

接下来我们可以先把Web应用的数据库删除了,看看效果。

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| laraveltest |
| mysql |
| performance_schema |
+——————–+
4 rows in set (0.00 sec)

mysql> drop database laraveltest;
Query OK, 6 rows affected (0.01 sec)

现在来访问web主页,由于我使用Debug模式,页面会显示出这样的提示,意思是找不到数据库laraveltest。

PDOException in Connector.php line 47:
SQLSTATE[HY000] [1049] Unknown database ‘laraveltest’

好吧,接下来对数据盘进行恢复,来尝试一下找回我刚才弄丢的数据。需要有一点注意的是,可以在开机状态下备份,但是不能在开机状态下还原数据,需要将主机关闭后进行恢复,以保证数据的准确性

手动备份

关闭主机,选择按备份恢复,对我们刚才的备份的数据盘进行恢复。
手动备份

数据盘恢复比较快,1分钟左右就会好了,然后启动服务器。查看Web主页,显示正常。查看数据库,刚才被删除的laraveltest数据库已经恢复正常。

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| laraveltest |
| mysql |
| performance_schema |
+——————–+
4 rows in set (0.00 sec)

2.4 秒级备份测试

我认为秒级恢复是数据方舟最赞的部分,一是因为其开发技术要求肯定要高,二是可以给使用人员带来不少的便捷。秒级服务提供的具体内容如下:

  • 12小时内的任意时间,精确到秒哦
  • 24小时内的任意整点
  • 3天内的0点时刻

由于我上周就进行了使用,所以这里积攒了些秒级备份的数据。

秒级备份
秒级备份

2.4.1 秒级备份测试一

接下来把系统盘和数据盘都恢复到三天前,看看当时的Web界面是什么样子的。

关闭主机——>恢复——>按备份恢复
秒级备份

经过4分钟,系统盘和数据盘全部还原成功,开机,来一睹三天前的Web界面吧(Laravel的初始化界面)。
秒级备份

2.4.2 秒级备份测试二

这个时候,如果我使用rm把 整个磁盘删除了,还不能不能恢复成功呢?再次选择使用秒级备份,把数据恢复到今天中午时刻,观测一下是否能够成功。

[root@10-10-31-119 ~]# rm -rf / --no-preserve-root

尽管有Ucloud的数据方舟,但当我rm整个磁盘的时候,脑袋还是嗡的一下,有点晕,原谅我的承受力有点低吧(主要以前丢数据丢的有点怕了)。现在将服务器断电(由于删除了整个系统,无法正常关机),使用秒级备份,把数据恢复到今天中午13:03:34(随机敲的)

秒级备份

… … … 这次恢复花的时间稍微长点,用了15分钟。迫不及待的打开Web,观测一下,谢天谢地,一切正常。

秒级备份

3. 总结

对数据方舟的测试,断断续续用了一周的时间,在这个过程中,与数据方舟的研发人员进行过沟通,对数据方舟这款产品有了一定的理解,并且就一些细节问题进行反馈,发现数据方舟的研发团队的执行力相当高,很多问题都会当天解决,向数据方舟的研发团队致敬。下面是我对数据方舟这款产品的总结。

  • 灵活的手动备份 + 秒级的自动备份
    手动备份适用于各种场景,灵活方便。但是在一些时候手贱地误删了一些东西,而上次手动备份到刚才之间的时间段,增加存在一些很重要的数据,如果使用手动备份,会将这段时间的数据丢掉,我们可以使用秒级备份恢复到误操作的前几秒,既避免了数据的丢失,还解决的手贱造成的问题,相当吃了一次后悔药。

  • 在线实时备份,不需要暂停业务
    刚才使用了手动备份和秒级备份进行恢复系统数据,在备份过程中,没有需要对机器进行任何暂停应用的操作,也没有造成应用的任何不适,这样的方式大大的简化了业务备份的难题,进一步可以降低互联网创业人员的难度。

  • 控制台操作
    一旦服务器应用出问题,即便不是专业的运维人员,也能通过控制台将应用恢复到最近没有出错的时刻(得益于超赞的自动备份)。