手把手教你给云主机做“后悔药”
前两天,我一个创业的朋友半夜给我打电话,声音都快哭了,他说自己折腾了半年的电商后台数据,因为一次“手滑”的配置更新,加上一个隐藏已久的脚本bug,整个数据库乱码了,备份?他忘了,恢复?无从下手,看着他那边的代码库一片狼藉,我叹了口气,问他:“你当时开云主机的时候,难道没做快照吗?”
电话那头沉默了五秒钟,然后传来一个灵魂拷问:“快照是个啥?”
这大概是很多刚接触云主机的朋友都会遇到的问题,我们都知道车要买保险,手机要定期备份照片,但自己精心搭建的、装载了无数代码和数据的云主机,却常常处于“裸奔”状态,咱们就好好聊聊这个“云主机后悔药”的制作方法——快照。
想象一下,你花了一个月时间,把新家装修成了你梦想中的样子,墙壁刷了你最喜欢的颜色,家具都摆放得整整齐齐,每一根网线都理得井井有条,突然有一天,下水道爆了,污水泡了你半个家,这时候,你最需要的是什么?是时间倒流,回到一个月前装修刚刚竣工的那一刻。
云主机快照,就是那个能让你的服务器“时间倒流”的法术,它不是简单的文件备份,而是对整个云主机系统盘(有时候也包括数据盘)在某个时间点的完全“复制”,它记录下了硬盘上的每一个字节,包括操作系统、所有安装的软件、系统配置、你的网站代码、数据库内容等等。
它的作用就是“恢复”,当你遇到下面这些情况时,你就知道它的好:
误操作删文件rm -rf 命令在手,天下你有,结果删错了,快照一恢复,文件又回来了。
系统被入侵网站被挂马,核心文件被篡改,别慌,恢复到你干净的系统状态,像没发生过一样。
软件更新失败兴致勃勃地升级了某个关键组件,结果系统崩了,从快照回滚,就好像刚才什么都没发生。
你只是想“折腾”一下想测试一个新环境,又怕搞坏现有的稳定系统,先打个快照,随便折腾,大不了回到原点。
说白了,快照就是给你的服务器上了一份“时光保险”,让你在进行任何有风险的操作前,都能安心地点击“确认”。
市面上的云服务商很多,比如阿里云、腾讯云、华为云等,虽然界面和功能名称略有差异,但核心逻辑是一样的,快照功能通常都藏在云服务器的管理控制台里。
1、登录控制台:用你的账号登录你所用云厂商的官网,找到并进入“云服务器”或“云主机”的管理页面。
2、选择目标主机:在列表里找到你想要做快照的那台云主机,注意它的状态,一般需要是“运行中”或“已关机”状态,运行中做快照叫做“在线快照”,关机做快照叫做“离线快照”,在线快照不用停机,不影响业务,但可能无法保证数据100%一致(对于非常繁忙的数据库,建议先停写然后做快照),离线快照最干净,但你的业务需要短暂中断几分钟。
3、找到“快照”或“磁盘”选项:在左边栏或者这台主机的操作菜单里,找到“快照”、“磁盘快照”或者“云盘”之类的选项,点进去,你就能看到这台主机的所有硬盘(系统盘和数据盘)。
第二步:正式开始拍照,4-3-2-1”原则
找到地方后,操作就变得超级简单了,一般你只需要做两件事:点击“创建快照” 和命名。
点击创建就像你拿出手机按下快门一样,在系统盘或数据盘旁边,都有一个创建快照的按钮,点击它。
给快照起个好名字这是最重要的一步!千万别偷懒随便起个名字,你为了一键部署LNMP环境而做的快照,可以叫“LNMP环境-干净版-20231027”,如果你是为了升级PHP版本前做的备份,可以叫“PHP7.4升级前-备份”,一个好名字,在你几个月后看着几十个快照列表想哭的时候,能救命。
选择创建方式(可选)有些服务商会提供“普通快照”和“极速快照”等选项,极速快照通常效率更高,但价格可能稍贵,看你的需求和钱包。
点击确定,等待完成提交后,云平台就会在后台默默工作,这个过程一般几秒钟到几分钟不等,视磁盘大小和快照类型而定,快照创建期间,不影响你主机的正常使用,你可以继续写代码、看视频,让它在后台安静地工作。
这里可以分享一个小技巧:对于重要的业务,可以建立一个定期快照策略,设置每天凌晨2点自动打一个快照,保留7天,这样你就有一个“自动后悔药”,不用每次手动操作。
快照最牛的地方,在于它的“恢复”能力,假设有一天你系统崩了,想回到“LNMP环境-干净版”那个状态,操作也很简单:
1、 进入该主机的快照列表。
2、 找到你之前创建的目标快照。
3、 点击“回滚磁盘”或“从快照创建镜像”。
这里又有两个选择:
回滚磁盘直接拿这个快照覆盖你主机的当前系统盘。注意:这会丢失当前磁盘上所有的数据! 只能用于“我要彻底回到过去”的场景,操作前请三思,最好先对当前状态也打一个新快照。
从快照创建镜像这个更好用,它会基于这个快照生成一个新的、干净的镜像,然后你可以用这个镜像去创建一台全新的云主机,这对于“想在新机器上复刻一个一模一样的环境”或者“测试新功能前保留一个干净副本”特别有用,你可以在新机器上随便玩,玩坏了删掉就行,不影响原来的旧机器。
1、快照不是无限的:别以为可以无限打快照,快照会占用你的云盘存储空间,是需要付费的,大部分云厂商会提供一定量的免费额度,超出部分按GB收费,定期清理掉那些没用的旧快照,省钱。
2、快照不是万能的:如果你的数据丢失是因为磁盘物理损坏(虽然现在云磁盘可靠性很高,但理论上存在),快照可能也救不了你,更保险的做法是:快照 + 异地容灾备份,可以把数据手动或者用工具同步到另一个地域的OSS存储桶里。
3、数据库快照要讲方法:如果你在跑高并发的数据库(比如MySQL),建议先执行FLUSH TABLES WITH READ LOCK 命令,让数据库暂停写入,然后再做快照,或者直接使用数据库自带的备份工具(如mysqldump)导出SQL文件,再对系统盘做快照,这样能确保数据库数据的一致性,减少恢复后数据库出问题的概率。
我们总在说,做事情要像造房子一样,打地基,对于运维云服务器,打好快照这个“地基”,是性价比最高、最省心的事情,它花不了你多少钱(有时候就是几杯奶茶钱),但能在关键时刻救你于水火,让你少熬几个通宵,少掉几根头发。
我那位创业的朋友,听完我的建议后,当天晚上就给每台云主机都打了快照,后来他告诉我,这个习惯“救”了他两次,一次是误删了用户表,一次是中了挖矿病毒,只要他准备部署任何新版本,第一件事不是写代码,而是登录控制台,点击一下那个“创建快照”的按钮。
别等了,现在就打开你的云控制台,给你的云主机创建一个快照吧,这份“后悔药”,永远不嫌多。
文章摘自:https://idc.huochengrm.cn/zj/25759.html
评论