多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

华为云存储实战:EVS/OBS/SFS/CBR挂载、快照与备份恢复全攻略

华为云存储实战:EVS/OBS/SFS/CBR挂载、快照与备份恢复全攻略 买了一台华为云服务器结果数据盘没挂载白花花的存储空间看不到摸不着手一抖把数据库表删了差点当场把工位掀了备份倒是做了可恢复的时候傻了眼备份里啥也没有。这几个场景我估计在华为云上折腾过的朋友多多少少都遇到过。很多人对EVS、OBS、SFS、CBR这一堆缩写不陌生可真到了要动手配置、要救数据的时候往往就卡在某个细节上一卡就是大半天。这篇文章我就把自己在项目里实际用华为云存储服务的那套流程整理出来从EVS云硬盘的挂载、快照救数据到OBS对象存储管理再到SFS共享文件系统最后是CBR备份还原一条线走通。文中涉及的删除操作、快照恢复、跨区域复制这些高风险动作我会把关键参数和注意事项都标出来。不管你是在准备华为ICT大赛云赛道备赛还是公司项目里正在做云上架构选型这套实战记录应该都能帮你少踩几个坑。1. 板块拼图先搞清这四种存储分别解决什么问题很多人第一步就栽在概念混淆上。EVS、OBS、SFS、CBR这几个缩写看着像一家人实际上每种服务的形态和使用场景差异非常大。EVSElastic Volume Service云硬盘就是云服务器的“本地磁盘”你创建一台ECS实例时分配的系统盘和数据盘都属于EVS。它的特点是延迟低、性能高必须挂载到某一台云服务器上才能用不能独立存在。可以把它理解为电脑里的C盘、D盘关机后数据不丢但你不能把这块盘直接拿到另一台电脑上插上就读。OBSObject Storage Service对象存储服务面向互联网的分布式存储存的是对象文件元数据通过HTTP/HTTPS协议访问。它不依赖任何一台云服务器适合存放静态资源、图片视频、备份归档、大数据分析数据等。K8s里常用的Velero备份后端、大数据场景下的数据湖存储底层很多都是对象存储。SFSScalable File Service弹性文件服务提供标准的NFS/CIFS文件共享协议多台云服务器可以同时挂载同一个文件系统实现数据共享。在HPC高性能计算、媒体处理、企业OA系统这类“多机需要读写同一批文件”的场景下SFS是首选。CBRCloud Backup and Recovery云备份这是华为云的备份服务可以对EVS云硬盘、SFS Turbo文件系统、ECS整机等资源做周期性备份并在需要时恢复到原资源或新资源上。把这四种服务看成“电脑城装机”就很好理解EVS是你买的硬盘OBS是你网盘里那份随时可以分享链接的文件SFS是办公室所有人都能访问的共享文件夹CBR则是你给整个电脑做的一键还原系统。2. EVS云硬盘从创建到挂载的完整实操2.1 在控制台上创建一块数据盘登录华为云控制台进入“云硬盘 EVS”页面点击“创建磁盘”。这里有几个参数需要重点看区域必须和你的ECS服务器在同一个区域否则无法挂载。可用区同样要和ECS保持一致。不同可用区之间磁盘是不能直接挂载的。磁盘类型一般分超高IO、通用型SSD、高IO等。数据库这类高并发随机读写场景选超高IO日志存储、普通文件存放选高IO就够用不要把预算浪费在用不到的性能上。容量系统盘一般是40-100GB起步数据盘按需申请。EVS支持后期扩容所以初期不建议买太大先按业务量估算一个合理值。数据源可以选择“空磁盘”“从快照创建”“从镜像创建”等。如果是新项目直接选空磁盘即可。创建完成后磁盘状态会显示“可用”。注意这个“可用”只是说磁盘可以被挂载了它此时的正确说法是“未挂载、未初始化”你没把它挂到ECS上它就是一块废铁。2.2 挂载到ECS实例上在EVS磁盘列表右侧的操作栏里点击“挂载”弹窗里选择目标ECS实例确认后挂载。这个操作没什么难度但有一点必须强调挂载前一定要确认目标ECS和数据盘在同一区域、同一可用区否则控制台根本选不到那台服务器。挂载完成后磁盘状态会从“可用”变成“正在使用”。此时如果你直接登录服务器执行lsblk或fdisk -l能看到一块新的裸设备比如/dev/vdb但它是没有任何文件系统的也不能正常写入数据。2.3 格式化与文件系统初始化新的数据盘挂载后不能直接用你需要先分区、格式化、挂载目录。假设磁盘设备名是/dev/vdb我们给它创建一个分区并格式化为 ext4 文件系统# 1. 查看磁盘信息 lsblk # 2. 对 /dev/vdb 进行分区依次输入 n、p、1、两次回车、w fdisk /dev/vdb # 3. 格式化为 ext4 文件系统也可以用 mkfs.xfs 等命令 mkfs.ext4 /dev/vdb1 # 4. 创建挂载点目录 mkdir -p /data # 5. 临时挂载 mount /dev/vdb1 /data # 6. 查看挂载结果 df -h这样只是临时挂载服务器重启后就失效了。要永久生效需要写入/etc/fstab# 先备份fstab cp /etc/fstab /etc/fstab.bak # 写入挂载配置 echo /dev/vdb1 /data ext4 defaults 0 0 /etc/fstab # 校验配置是否正确 mount -a写完之后建议先执行mount -a测试一遍如果没有报错再重启。万一fstab配置错了服务器重启后可能直接起不来到时候还得通过控制台VNC登录去改回来非常折腾。2.4 EVS扩容操作后期磁盘不够用了EVS支持在线扩容。在控制台点击“扩容”将容量调大然后在服务器内部执行以下操作让新空间生效# 确认分区表如果是直接扩容整个磁盘没有新建分区可以跳过fdisk growpart /dev/vdb 1 # 如果是 ext4 文件系统 resize2fs /dev/vdb1 # 如果是 xfs 文件系统 xfs_growfs /data关于扩容有几个要点控制台的扩容操作是“热操作”正常情况下不需要关机。但如果业务负载特别高稳妥起见建议低峰期操作。扩容只支持增大容量不支持缩小容量规划时留点余量。云硬盘做过快照后再扩容虽然不影响但建议扩容前先拍个快照万一操作出错可以回滚。3. 快照救数据数据库误删之后的黄金45分钟3.1 为什么快照是“后悔药”EVS快照技术本质上是对云硬盘数据在某个时间点的一致性备份它在华为云底层通过写时复制技术实现。简单说创建快照时并不是把整块盘的数据复制一份而是给原磁盘建立一个时间点标记记录哪些数据块在那个时刻是“干净”的等到原盘上的数据块发生变化时再把旧数据复制到快照存储中。这样快照创建速度极快几秒钟到几十秒就能完成而且不会明显影响磁盘I/O。这个机制决定了快照的主要用途并不是“定期异地容灾”而是“回滚当前磁盘到某个历史状态”。你在重大操作前打一个快照相当于给磁盘拍了一张X光片出问题了直接退回去。3.2 创建快照的正确姿势在控制台进入“云硬盘 EVS”选择目标磁盘找到“快照”页签点击“创建快照”给快照起一个一眼就能看懂的名字比如20250118_before_db_migration。如果是数据库服务器建议在创建快照前先确保数据库处于一致性状态。MySQL可以执行FLUSH TABLES WITH READ LOCK后创建快照创建完成后再UNLOCK TABLES。如果业务不能停机至少也要确保没有正在执行大批量写入否则快照能恢复磁盘数据但数据库层面可能有不一致日志回放会花额外时间。FLUSH TABLES WITH READ LOCK; -- 此时去控制台创建快照 UNLOCK TABLES;3.3 快照恢复数据从快照创建新盘这里有一个关键误区需要澄清EVS快照不能直接“原地还原到原云硬盘”至少控制台常规操作路径不是这样。正确的用法是“用快照创建一块新磁盘”然后再将新磁盘挂载到服务器上手动拷贝数据。这个操作的步骤进入“云硬盘 EVS”页面选择“快照”页签。找到之前创建的快照点击“创建磁盘”。磁盘类型、容量等参数可以继承快照信息也可以按需调整但容量不能小于快照对应的原盘大小。新磁盘创建完成后挂载到目标ECS上可以是原来那台也可以是另一台。在服务器内执行lsblk查看新磁盘然后挂载、读取数据。有一次我在处理一个生产库误删表的情况时就是用这个方法把数据盘从快照恢复成一块新盘挂载到一台临时抢救用的ECS上再把误删前还在的数据导出成SQL文件重新导回生产库。整个过程不需要动原盘风险可控操作窗口也足够灵活。3.4 快照策略建议快照不是创建得越频繁越好。华为云EVS的快照会占用OBS存储空间这部分不额外计费但建议保持合理数量快照数量过多且保留时间过长后期管理起来很痛苦。我个人的习惯是重大变更前升级内核、修改数据库结构、批量导数据手动创建一次快照用固定前缀标记时间段。周期性的自动快照策略按业务重要性设置每天或每周一次保留7天就够。快照名称一定要规范项目名_资源名_日期_用途否则一个月后你看到三十多个快照根本分不清哪个是哪个。4. OBS对象存储管理从控制台到API使用4.1 OBS和EVS的本质区别OBS对象存储和EVS块存储的差异非常大。EVS是“挂在服务器上的硬盘”而OBS是“通过URL访问的存储空间”。你可以把OBS理解成一个无限容量的网盘通过HTTP RESTful API来上传、下载文件也可以通过SDK把它集成到应用代码里。常见的OBS使用场景包括静态网站托管把前端打包后的 dist 目录直接上传到OBS桶开启静态网站托管就可以得到一个无需服务器的网站访问地址。图片视频存储配合CDN加速提供全局低延迟的静态资源访问。数据备份归档EVS快照备份、数据库备份文件可以直接存到OBS成本远低于块存储。大数据分析数据湖DataArts Studio、MRS等大数据组件可以对接OBS作为数据存储位置。OBS管理最核心的两个概念是“桶Bucket”和“对象Object”。桶是存储空间的容器对象则是存储在桶里的任意文件。桶名在全局必须唯一创建后不能改名这一点要格外注意。4.2 通过控制台创建桶并上传文件进入“对象存储服务 OBS”页面点击“创建桶”需要指定区域就近选择跨境业务需要注意合规问题。桶名称全局唯一只能包含小写字母、数字、中横线和点号。数据冗余策略单AZ存储成本低多AZ存储可用性更高。对可用性要求高的线上资源建议选多AZ。桶策略默认是“私有”外部无法直接访问。如果要对外提供公开读取能力比如存放网站静态资源需要调整桶策略或对象ACL。上传文件非常简单控制台直接把文件拖拽进去就行。但当你需要批量上传几十GB的本地备份文件时控制台的HTTP上传效率太低这时就用命令行工具obsutil支持分段并发上传速度快得多。# 配置OBS访问密钥 obsutil config -iAK -kSK -eendpoint # 上传文件到桶 obsutil cp /home/user/backup.tar.gz obs://my-bucket/backup/ # 上传整个目录 obsutil cp /home/user/datadir obs://my-bucket/datadir -r # 从桶下载文件 obsutil cp obs://my-bucket/backup/backup.tar.gz /home/user/download/这里有一个要注意的点AK/SK相当于访问密钥一定不要提交到Git仓库里。可以用环境变量保存也可以用IAM委托的方式给ECS一个临时的安全凭证。4.3 OBS生命周期策略管理数据OBS一个很实用的功能是生命周期规则。你可以针对桶里的对象设置自动转储或删除策略。比如日志文件可以设置30天后转成低频访问存储90天后转成归档存储180天后直接删除。这样既能降低存储成本又不影响业务数据追溯。在控制台配置生命周期规则的参数如下规则名称以用途命名比如logs-autoclean-90days。前缀可以精准匹配某个目录下的对象。转换操作标准存储转低频访问、再转归档存储。过期删除设置对象删除前的保留天数或者设置一个具体的删除日期。这个功能对于长期运行的项目特别有用我最早对接的日志系统每天产生接近200GB的日志对象用了生命周期策略之后成本直接压缩到原来的三分之一。4.4 OBS静态网站托管细节如果你想用OBS搭一个静态网站在桶属性里找到“静态网站托管”开启后需要设置默认首页通常是 index.html和404页面。同时还要给桶配置公共读策略。配置完成后访问地址是https://桶名.终端节点/。这个方式的优点是成本极低、高可用缺点是没有办法自定义复杂的路由规则也不支持服务端动态渲染。适合放个人博客、前端演示项目、活动落地页这些场景。5. SFS共享文件存储多台服务器共享数据的正确打开方式5.1 SFS和EVS的选型差异用过NFS的人都懂SFS的价值它让多台ECS像访问本地文件夹一样访问同一份数据。如果业务需要多台服务器并发读写同一批文件比如K8s集群里的共享存储、HPC任务分发、媒体文件共享处理EVS是做不到的你必须上SFS。华为云SFS目前主要分两种SFS容量型原通用文件系统和SFS Turbo高性能版。SFS Turbo在IOPS和带宽上远高于容量型适合对性能要求较高的场景比如AI训练数据读取、数据库备份目录共享等。5.2 创建SFS文件系统并挂载在控制台进入“弹性文件服务 SFS”点击“创建文件系统”选择协议类型NFS是Linux服务器挂载用的CIFS是Windows用的、VPC和子网。创建完成后控制台会给出一个挂载地址比如192.168.1.100:/在Linux服务器上的挂载操作# 安装NFS客户端 apt-get install -y nfs-common # Ubuntu yum install -y nfs-utils # CentOS # 创建挂载目录 mkdir -p /mnt/sfs # 挂载 mount -t nfs 192.168.1.100:/ /mnt/sfs # 查看挂载结果 df -h要配置开机自动挂载写入/etc/fstab192.168.1.100:/ /mnt/sfs nfs4 defaults,_netdev 0 0这里有个非常关键的点_netdev必须加上表示这是网络设备要等网络就绪后再挂载。如果不加服务器启动时可能因为网络还没初始化完成而挂载失败导致启动卡住或报错。5.3 多台服务器共享时的权限与性能注意多台服务器同时挂载同一个SFS文件系统后文件读写权限由NFS的权限体系控制。默认情况下root用户会被映射为匿名用户nobody如果你需要在不同服务器上以root身份写入需要调整挂载参数mount -t nfs -o noresvport,vers3 192.168.1.100:/ /mnt/sfs关于SFS的性能有几个常见坑大量小文件写入时NFS协议本身的元数据开销会导致性能下降建议将大量小文件打包为大文件再上传。SFS的IOPS和带宽是按文件系统规格固定的多个客户端同时高负载读写时存在争抢需要业务侧做合理的文件分片。文件锁在某些场景下行为不一致多服务器并发写入同一个文件时建议用追加写或者通过业务逻辑做好互斥。5.4 SFS和OBS的联动使用在实际项目里SFS和OBS经常配合使用。一个常见模式是OBS存原始文件SFS存工作缓存。比如视频转码场景原始视频放OBS转码任务在ECS上运行ECS挂载SFS作为中间产物存储转码完成后把结果回传OBS。这样既充分利用了对象存储低成本的归档能力又保证了工作阶段的高速读写。6. CBR云备份给整个云上架构上双保险6.1 CBR与快照、镜像的区别很多人搞不懂CBR云备份和EVS快照到底有什么区别这里我直接对比一下维度EVS快照CBR云备份镜像粒度单块云硬盘单块盘/整机/SFS整机/磁盘存储位置与磁盘同区域独立备份存储库镜像服务跨区域复制不支持直接复制支持支持恢复方式从快照新建磁盘恢复到原资源或新资源用镜像新建服务器适用场景临时回滚、救援定期容灾备份批量部署同配置服务器CBR的最大优势是“整机备份”。你可以一次把某台ECS的系统盘数据盘打包备份后期恢复时直接生成一台新ECS或者在原ECS上执行整机还原。这个能力在防勒索病毒、跑批任务前保护、更换故障机器时特别有用。6.2 创建备份策略在CBR控制台里第一步是创建“存储库”它相当于一个备份容器定义了备份数据的存放位置、规格和保护策略。存储库有两种类型云服务器备份存储库和云硬盘备份存储库。云服务器备份存储库可以保护整台ECS云硬盘备份存储库只能保护单个数据盘。创建存储库时核心参数有两个容量按你需要保护的磁盘总大小预估比如两台ECS各100GB就申请200GB的存储库容量。策略可以绑定预设策略备份周期支持按天/按周可以指定备份时间点、保留数量或保留天数。创建策略时我一般建议保留最近7天的每日备份加4个每周备份这样既支持快速回滚到最近任意一天又能覆盖一周以上的数据风险窗口。如果系统内有重要业务数据库可以单独加大保留天数比如30天。6.3 整机备份的恢复流程执行恢复操作的流程如下在CBR控制台进入“云服务器备份”找到目标备份副本。点击“恢复”按钮选择“创建新云服务器”或“在原服务器上恢复”。如果选择创建新服务器需要指定新的实例规格、VPC、子网等。注意恢复出来的新ECS的密码、密钥等信息可能与原机不同需要在控制台重置密码后登录。如果选择原服务器恢复系统会停机并进行数据覆盖。这个操作是不可逆的执行前一定要再确认一次最新数据是否需要保留。我实际遇到的一个坑是恢复出的新ECS的内网IP和原来不一样。如果你这台服务器上挂载了数据库集群、注册了域名解析、配了负载均衡后端恢复完成后必须手动把这些引用改过来否则业务还是不通。所以备份恢复演练一定要做不能只停留在“有备份”的心理安慰上。6.4 日常运维中的备份检查CBR配置好了之后不是一劳永逸的。我曾见过一个项目备份策略配置了半年结果一条告警都没有直到一次故障需要恢复数据才发现那个存储库容量已经满了备份任务连续失败了两个月管理员完全不知情。建议日常做三件事每周在控制台确认最近的备份任务执行状态。存储库容量使用率超过70%时提前扩容别等满了再处理。每季度做一次备份恢复演练开通一台测试ECS用备份副本恢复少量数据做验证。这就是为什么很多企业强制要求“备份恢复演练纳入运维SOP”不是说备份不重要而是备份在你真正需要它之前永远不知道自己有没有配错。真到数据丢了才发现备份不可用那种绝望谁也不想体会。7. 我踩过的坑和一些个人体会这几种存储服务单独用都不难但它们组合在一起时坑就藏在细节里。第一个坑是操作系统无法识别新挂载的数据盘。EVS挂载完成后控制台显示“正在使用”但服务器里lsblk看不到磁盘。排查思路是先确认是不是云平台层面的热插拔失效非必须的话重启服务器。大多数时候重启后就能识别但下次记得先执行echo 1 /sys/class/block/sda/device/delete之类的操作前慎重这些底层操作最容易把系统搞出奇怪问题。第二个坑是把EVS和SFS的“共享”能力搞混了。EVS云硬盘实际上也是支持多台ECS共享挂载的共享盘但共享盘要求所有ECS必须在同一可用区且文件系统和应用层要自己处理并发访问问题。简单场景下多台服务器共享数据直接上SFS更省心。第三个坑是权限问题。OBS桶的读写权限SFS文件系统的root squashCBR备份的跨账号共享这些和权限沾边的地方问题的根源往往不是功能不会用而是权限模型没吃透。建议花半小时把IAM细粒度授权和桶策略官网文档读一遍绝对值得。写作最后想再提示一下在华为云上做存储服务的演练建议先在测试环境完整跑一遍“数据盘挂载→写入数据→创建快照→模拟误删→恢复数据”的流程。这个流程看起来简单但其中涉及的操作路径、控制台按钮位置、命令执行顺序只有亲手操作过才能形成肌肉记忆。真到生产环境出事时你不会希望自己是第一次打开那个恢复界面。如果你正在备考华为ICT大赛云赛道这套流程更是基本功中的基本功。存储是云计算的底盘EVS、OBS、SFS、CBR这四种服务就是底盘上的四个关键支柱。别再停留在“了解概念”的阶段打开控制台实操一遍你收获的东西一定比看十篇教程都多。
返回列表