平民架构的春天——UCloud数据方舟实战记
LNMP是最亲民的网页服务架构,整合了优秀的开源软件,想必大家再熟悉不过了,随着云计算的落地;大众创业,万众创新的倡导,为了更好的服务和安全,LNMP也迁入了云平台,比如像UCloud这样优秀的PAAS平台。而随之而来的问题是,创业公司如何保证自己的数据在云平台上的数据安全,难道还像以前一样,自己写备份脚本,自己做备份轮转吗?其实云带来的好处就是便利,轻松。我们不再需要以传统运维的方式来做备份。
如果大家还不了解UCloud,请移步知乎:云计算到底哪家强?
UdataArk(数据方舟)能给我们带来哪些惊喜
下面我以我的一次备份经历,来讲述一下用UdataArk(数据方舟)在UCloud平台做备份的有益之处。数据方舟是UCloud平台上的一款智能备份工具,它支持自动备份和手动备份两个大类。当然在这两大类细分下它还有非常大的一个亮点——体贴的秒级备份,真可谓备份都在为我们争分夺秒,彻底秒杀传统备份。后续我们会用到。关于备份细微的差别大家可以参阅: 官方详细文档
常见备份的场景:
我们来想一下,像我们的LNMP架构,一般在什么样的场景下需要备份。
1.搭建的系统环境,比如我安装的LNMP软件集,并且做了配置和优化,这样在架构出了问题,我们可以第一时间回滚到正常的时间点。一般情况下,备份两三个时间点就足够用了,无需太多。
2.网页内容和数据库,网页和数据库数据每天都在增加,这些都是需要增量备份。
3.并且我们希望在网站出问题时,能够快速恢复。
UCloud的数据方舟就很贴近我们的需求,无论是自动备份还是手动备份,无论是全备,还是增量备,数据方舟都已经很好的支持。
数据盘和系统盘如何规划(个人意见,非官方)
接下来,我们来聊聊在UCloud上使用数据方舟,我们对我们的LNMP要做哪些规划?
我们在登录Uhost(云主机)时,使用df -h 我们可以看到vda盘挂载在根分区上,我们的vdb盘挂载在/data上,这就能很好的理解,vda是我们的系统盘,vdb是我们的数据盘。我们在规划LNMP时,最好把LNMP软件装到vda中,即在根里;而像mysql的data目录,nginx的网页内容,指向vdb,即根下挂载的data目录。
这里我们主要探讨一下如何更改mysql和nginx的配置文件,来把数据存放到数据盘下,来保证合理规划备份。
我们在data目录下新建mysqldata,webdata两个目录用来存放mysql和网页数据。
[root@pangu data]# ls
lost+found mysqldata webdata
1.Mysql数据指向数据盘:
my.cnf里做如下配置
vim /etc/my.cnf
[mysqld]
datadir =/data/mysqldata
2.网页内容数据指向数据盘:
nginx.conf里做如下配置
vim /etc/nginx.conf
开始尝试备份
首先我们对系统盘做秒级自动备份,对数据盘做手动备份。两大类备份方式都来体验一番。
系统盘(vda)---->存放centos系统和LNMP------------>秒级自动备份(全部由系统自动精准完成,无需人工参与)
数据盘 (vdb) ---->存放mysql的data目录和web内容---->手动备份
无论是系统盘,还是数据盘,都是同时支持自动备份,手动备份的。这里我们只是为了避免文字冗余,系统盘选择了秒级自动备份说明,数据盘选择了手动备份说明。
故障恢复的点点滴滴
一、模拟系统故障:我们模拟系统崩溃,或者数据被误删,来测一下恢复的结果和恢复时间。(注意:以下命令请勿在生产环境中使用)
[root@pangu ~]#rm -rf / --no-preserve-root
好吧,现在连ls,poweroff的命令都找不到了。
[root@pangu ~]# ls
-bash: /bin/ls: No such file or directory
[root@pangu ~]# poweroff
-bash: poweroff: command not found
开始恢复,好吧,从UCloud的web页面控制台把故障云主机进行“断电”操作,开始恢复。(注意:只有删除根分区,找不见关机命令的机器在恢复时才需要断电,其他情况恢复,只需要“关机”操作就行)
系统恢复时间大概360秒,这里需要注意的是恢复后Uhost默认是关机状态,启动就可以了。看,在系统被破坏前1秒的mysql还在运行,注意了,我之前没有备份过mysql这个程序,这都是秒级备份自动完成的。是不是很神奇?这就是秒级备份连续数据保护的强大之处。我们每一秒的数据写入,都会被数据方舟锁备份下,有效避免传统备份的不及时。并且这不是以牺牲磁盘IO性能为代价,这也是数据方舟创新的亮点。
[root@10-10-147-43 ~]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1585 mysql 3u IPv4 9624 0t0 TCP *:mysql (LISTEN)
二、模拟数据盘内容丢失
其实,上文的删根操作,data目录依托于系统,也会被干掉,也是一样的,恢复之前,需要关机。这次恢复我们选择之前手动备份创建的还原点,来看看手动备份的效果如何。
这次更快,加开机才180秒。我们依然看到data目录(vdb)很完整。
OK,数据恢复,http状态码返回200,网页访问正常。
我们从web控制台登录,用firefox来浏览一下网页,看来,我确实不是在骗人。
恢复的日志怎么查看
选中你的Uhost,移动到备份,看到了吧,恢复成功的日志就在这,直观明了,给人一种舒服的安全感.
实测表明:数据方舟提供连续数据保护的服务;支持在线实时备份、具有精确到秒级的数据恢复能力;在线实时备份,无需暂停业务,数据方舟在备份时无需暂停业务或停止磁盘读写,不影响线上业务,不损耗磁盘I/O性能。与传统的备份耗时太长,备份需要mysql锁表,备份需要验证是否成功,备份产生太多的读写操作会降低磁盘性能,降低用户体验相比较,具有明显的时间成本优势,安全保障和良好的用户体验。
最后我想以我的桌面背景向我们伟大的云计算厂商UCloud致敬!也向UdataArk(数据方舟)研发的辛勤的小松鼠们致敬!
转载于:https://blog.51cto.com/zuoguocai/1715781
相关文章:

用 Python 制作可视化报表,这也太快了!
作者 | 小F来源 | 法纳斯特在数据展示中使用图表来分享自己的见解,是个非常常见的方法。这也是Tableau、Power BI这类商业智能仪表盘持续流行的原因之一,这些工具为数据提供了精美的图形解释。当然了,这些工具也有着不少缺点,比如…

Django 错误汇总
1、 解决:python manage.py migrate sessions 2、转载于:https://blog.51cto.com/jacksoner/2130665

几种负载均衡算法
几种负载均衡算法 本地流量管理技术主要有一下几种负载均衡算法: 静态负载均衡算法包括:轮询,比率,优先权 动态负载均衡算法包括: 最少连接数,最快响应速度,观察方法,预测法,动态性能分配&#…

cassandra命令
压力测试:cassandra-stress [command] -node [nodes] -mode thrift user[user] password[password] example: cassandra-stress write n10 -node 192.168.0.105 -mode thrift usercassandra passwordcassandra

《2022产业互联网安全十大趋势》发布,专家学者透析产业安全新变化
2月28日,在中国产业互联网发展联盟指导下,人民邮电报、中国信息安全、腾讯安全联合实验室、腾讯研究院联合推出《2022产业互联网安全十大趋势》。该报告由《中国信息安全》杂志出品人温哲、腾讯副总裁丁珂、腾讯研究院院长司晓等20余位行业顶级专家、学者…

slurm用户快速入门手册
1. 概述2. 架构3. 命令3.1 sacct3.2 sattach3.4 sbatch3.5 sbcast3.6 scancel3.7 scontrol3.8 sinfo3.9 smap3.10 squeue3.11 srun3.12 strigger3.13 sview1. 概述 Slurm 是一个开源、容错、高可伸缩的集群管理和大型小型 Linux 集群作业调度系统。slurm不需要对操作系统内核进…

什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
原文地址:http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/什么是CGICGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上…

5个短小精悍的 Python 趣味脚本,太赞了,非常适合小白上手!
作者 | 菜鸟哥来源 | 菜鸟学Python今天特地为大家准备了几个简单的“开胃小菜”。希望大家能够通过这几个简单而实用的小案例,活跃一下自己的思维,为接下来的工作和学习做好准备。话不多说,我们接下来就开始介绍。1、图片尺寸缩小所需库&…

AjaxFileUpload文件上传组件(php+jQuery+ajax)
jQuery插件AjaxFileUpload可以实现ajax文件上传,下载地址:http://www.phpletter.com/contents/ajaxfileupload/ajaxfileupload.js 主要参数说明:1,url表示处理文件上传操作的文件路径,可以测试URL是否能在浏览器中直接…

Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)
Hadoop生态圈-Flume的组件之自定义拦截器(interceptor) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 本篇博客只是举例了一个自定义拦截器的方法,测试字节传输速度。 1>.自…

Pandas 重复数据处理大全
作者 | 东哥起飞来源 | Python数据科学本次来介绍重复值处理的常用方法。重复值处理主要涉及两个部分,一个是找出重复值,第二个是删除重复值,也就是根据自己设定的条件进行删除操作。定位重复值对于重复值,我们首先需要查看这些重…

DEDECMS教程:上/下一篇文章标题长度的截取方法
对dedecms了解的朋友们,想必对如何获取上一篇、下一篇文章的标签也是非常熟悉。dedecms获取上一篇、下一篇文章的标签分别为:{dede:prenext getpre/}、{dede:prenext getnext}。 在这个标签里,并没有设置上一篇、下一篇文章标题字数的功能&am…

以太网帧最小字节数以及以太网碰撞
说明:本文源自多个网页,原文链接已经不可寻 以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理。以太网是不可靠的,这意味着它并不知道对方有没有收…

lodash 提取前N个元素 take
_.take(array, [n1])从数组的起始元素开始提取 N 个元素。 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><…

JavaScript 中的有限状态机
http://www.ibm.com/developerworks/cn/web/wa-finitemach/JavaScript 中的有限状态机Page navigation系列文章有限状态机很早就已用作设计和实现事件驱动的程序(比如网络适配器和编译器)内复杂行为的组织原则。现在,可编程的 Web 浏览器为新…

健身也内卷?这届网友用 Python 掌握了做标准俯卧撑的秘诀
自己在家锻炼时,我们很难知道自己的动作是否标准。本文作者用Python写了一个可以检测俯卧撑动作是否标准的程序,一起来看看他是怎么做的。 译者 | 章雨铭 出品 | CSDN 在新加坡军队中,有一种测试叫做IPPT(个人身体素质测试&#x…

Linux下配置SNMP
SNMP(Simple NetworkManagement Protocol ):简单网络管理协议本案列为Linux环境搭建(CentOS-6)使用yum进行安装:yum install -y net-snmp安装完成后先查看网络配置:netstat -anupl确认161端口被…

重磅!MaxCompute助力阿里开源自研语音识别模型DFSMN,准确率高达96.04%
阿里开源语音识别模型DFSMN 在近期举行的云栖大会武汉峰会上,装有DFSMN语音识别模型的“AI收银员”在与真人店员的PK中,在嘈杂环境下准确识别了用户的语音点单,在短短49秒内点了34杯咖啡。此外,装备这一语音识别技术的自动售票机也…

全球网络拓扑图
原文出自海外一个论坛:http://board.us.ikariam.com/board16-miscellaneous/board205-discussion-board/67724-internet/InternetSo, I always take a look at these maps and also information on the workings of the internetAnd I have questions:Are there map…

Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享
作者 | 一只河马h来源 | 简说Python一、前言二、需求描述三、开始动手动脑3.1 安装相关第三方包3.2 导入需要用到的第三方库3.3 读取pdf文件,并识别内容3.4 对识别的数据进行处理,写入csv文件总结前言扫描件一直受大众青睐,任何纸质资料在扫描…

根据listObject中的某个字段排序
compareTo必须是两个对象之间的比较(比如Long,Integer...),以下例子是升序排序 private void businessSort(List<WxDailyBusinessInfo> wxDailyBusinessInfo) { //排序前for (int i 0; i < wxDailyBusinessInfo.size(); i) {System.out.println(new Gson(…

CC国内厂商现状
(1)阿里云的产品 CC攻击 攻击者攻击服务器的认证页面、登录页面、游戏论坛等。还是用饭馆的例子,CC攻击相当于,坏人霸占收银台结账、霸占服务员点菜,导致正常的客人无法享受到服务。 游戏盾如何防御CC攻击?…

网络模型 - 随机网络,无标度网络,分层网络
转自: http://www.flickr.com/photos/caseorganic/4510691991/in/set-72157624621620243小图大图Network Models - Random network, Scale-free network, Hierarchical network随机网络The Erds–Rnyi (ER) model of a random network14 (see figure, part A) start…

一文介绍机器学习中的三种特征选择方法
作者 | luanhz来源 | 小数志导读机器学习中的一个经典理论是:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。也正因如此,特征工程在机器学习流程中占有着重要地位。广义的特征工程一般可分为三个环节:特征提取、…

[转化率预估-1]引言
原文:hhttp://www.flickering.cn/ads/2014/06/%E8%BD%AC%E5%8C%96%E7%8E%87%E9%A2%84%E4%BC%B0%E2%80%94%E2%80%94%E5%BC%95%E8%A8%80/ 最近几年,“计算广告学”的概念风生水起,让我们这些从事在线广告匹配技术的程序猿着实荣耀了一把。这在参…

reportNG定制化之失败截图及日志
先从github上拉下 reportNg的源代码 reportng 拉下源码后我们使用IDEA进行导入 1、reportng.properties 增加部分类表项 这里我们直接在末尾添加 logLog Info screenshotScreen Shot durationDuration2、results.html.vm 修改结果的html,我们目前只修改fail的情况下…

基于 OpenCV 的手掌检测和手指计数
作者 | 努比 来源 | 小白学视觉 利用余弦定理使用OpenCV-Python实现手指计数与手掌检测。 手检测和手指计数 接下来让我们一起探索以下这个功能是如何实现的。 OpenCV OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为…

side menu待研究
2019独角兽企业重金招聘Python工程师标准>>> http://fontawesome.bootstrapcheatsheets.com/ http://www.queness.com/post/14666/recreate-google-nexus-menu http://www.jqueryscript.net/demo/Sliding-Side-Menu-Panel-with-jQuery-Bootstrap-BootSideMenu/ &a…

Gitlab Issue Tracker and Wiki(一)
本节内容:创建第一个问题创建第一个合并请求接受合并请求工作里程碑在提交中引用问题创建维基百科页使用Gollum管理维基百科一. 创建问题1. 登陆Gitlab服务器2. 切换到想要创建问题的项目3. 点击Issues.4. 点击【New issue】5. 根据情况进行填写。二. 创建合并请求1…

runtime实践之Method Swizzling
利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题。这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧。这些技巧中最具争议的或许就是 Method Swizzling 。 介绍一个技巧࿰…