ECS数据分区丢失问题处理方法、常见误区和最佳实践


本期分享嘉宾 子岳 多年客户系统和网络运维经验,擅长系统故障分析和排查,目前聚焦VPC网络相关问题处理。

ECS数据分区丢失问题处理方法、常见误区和最佳实践

概述

我们在处理客户磁盘相关问题时,经常遇到操作系统中数据盘分区丢失的情况。本文档介绍了Linux和Windows下常见的数据分区丢失问题,以及对应的处理方法,同时给出客户最佳实践以避免可能的数据丢失风险。
重要
在对数据修复之前,首先需要对分区丢失的数据盘创建快照。快照创建完成后再进行尝试修复,如果在修复过程中出现问题,可以通过快照回滚还原到修复之前的状态。

工具说明

磁盘分区修复和数据恢复使用的工具:
Linux : fdisk testdisk partprobe
1、fdisk
Linux 系统默认有的分区工具。
2、testdisk
Linux 系统默认没有安装。比如 Centos 系统可以通过 yum install -y testdisk 在线进行安装。主要用作对 Linux 系统磁盘分区恢复或者数据恢复。
3、partprobe
Linux 默认工具。主要是在系统不重启的情况下,让 kernel 重新读取分区。

**Windows:磁盘管理,数据恢复软件
1、磁盘管理 **
系统自带工具,可以对磁盘进行分区格式化等操作。
2、数据恢复软件
一般是商业软件,可以去相应的官网进行下载使用。主要作用是文件系统异常恢复数据。

案例分析

案例1:Linux 下数据盘分区丢失和数据恢复处理办法

Linux 数据盘分区丢失或者数据丢失一般是用户重启系统后显现出来的。首先怀疑可能是用户 /etc/fstab 下没有配置自动挂载,所以先让用户手动挂载下。
如果手动挂载出现报分区表丢失:

那么我们通过如下3个办法先尝试进行处理。

一、通过 fdisk 进行分区恢复

一般用户对数据盘分区的时候,分区磁盘的起止扇区一般使用默认的值,所以可以先尝试直接使用fdisk 新建分区进行恢复。

如果这个方法尝试无效,那么就使用 testdisk 工具尝试修复。

fdisk 分区操作说明:
https://help.aliyun.com/document_detail/25426.html

二、通过 testdisk 工具恢复分区

1、输入 testdisk /dev/xvdb (请写需要回复的磁盘名称),然后默认“Proceed” 回车

2、选择 默认一般选择 “Intel” ,如果您是 GPT 分区,则选择 “EFI GPT” 进行扫描:

3、选择 “Analyse” 分析回车

4、可以看到没有任何信息,我们继续 “Quick Search” 快速搜索回车

5、可以看到找到一个分区信息,选中回车继续

6、选择 “Write”保存分区,如果不是我们需要的分区,可以继续搜索

7、按 “Y” 确认保存分区

8、这个时候可能的/dev 下还是看不到这个分区文件,我们需要通过partprobe /dev/xvdb 命令手动刷新分区表。
然后重新挂载,查看数据盘里的数据情况。

TestDisk使用说明:
http://www.cgsecurity.org/wiki/TestDisk

三、通过 testdisk 直接恢复数据

在某些情况下,tedisk 扫描出分区,但是无法保存分区的时候,可以尝试直接把文件恢复处理,具体处理步骤如下:
1、testdisk 已经找到分区,我们可以按 “P” 列出文件:

2、可以看见存在的文件,将要恢复的文件选中,然后按 “C”

3、然后选择需要复制的目标目录,我们以恢复到home为例

4、可以看到提示复制成功

5、切换到 home 目录查看,可以看见文件已经恢复了

案例2:Windows 下数据盘分区丢失和数据恢复处理办法

一、磁盘显示为 “外部”磁盘导致没有显示分区

1、我们可以通过磁盘管理查看磁盘,磁盘显示“外部”

2、针对显示为“外部”的磁盘,可以在磁盘区块上右击,选择导入外部磁盘,点击确定即可

二、磁盘显示为 “脱机”状态导致没有显示分区

1、我们可以通过磁盘管理查看磁盘,磁盘显示“脱机”

2、针对显示为“脱机”的磁盘,可以在磁盘区块上右击,选择联机,点击确定即可

三、未分配盘符导致无法显示分区

1、在磁盘管理,可以看到数据盘可以被系统正确识别,但是未分配盘符给这块磁盘。

2、右击磁盘右侧的色块,在弹出的菜单中选择“更改驱动器号和路径”:重新分配驱动号即可。

四、在磁盘管理无法查看到该数据盘,出现“枚举卷期间出错”的报错

1、在磁盘管理里面无法查看到数据盘,在系统日志里面报“枚举卷期间出错”错误:

2、打开Windows PowerShell 命令窗口,执行winrm quickconfig命令进行修复,在弹出询问: 执行这些更改吗【y/n】? 输入 “y” 确认执行

3、修复完毕后重新打开磁盘管理,数据盘已可以正常显示

五、数据盘变成RAM

在某些特殊情况下,我们发现Windows下Disk变为RAW格式。Disk显示Raw disk是因为Windows无法识别其上的文件系统。这通常是记录文件系统类型或者位置的信息丢失或者损坏了,如partition table或者boot sector。比较可能的原因列举如下:
 外接硬盘发生这种问题通常是因为断开时没有使用”safely remove hardware” 的选项;
 意外断电导致的磁盘问题也比较常见;
 硬件层故障也可能导致磁盘分区信息丢失;
 底层与磁盘相关的driver或应用,例如我们使用的diskprobe工具就可以直接修改磁盘的表结构;
 计算机病毒。
微软官方给出的修复磁盘RAM是使用Dskprobe工具进行修复,详情请参考微软官方文档:
Dskprobe Overview
https://technet.microsoft.com/en-us/library/cc736327(v=ws.10).aspx

除了上述此外,Windows下有大量的免费或商业的数据恢复软件来进行丢失数据的找回。例如,您可以尝试使用Disk Genius工具扫描,来尝试恢复相应的文件。

常见误区与最佳实践

数据是用户的核心资产,很多用户在ECS上构建网站、自建数据库(MYSQL/MongoDB/REDIS)。如果出现数据丢失情况,会给用户的业务带来巨大的风险。如下是我们在数据安全方面总结常见误区和最佳实践。

常见误区

有些用户认为阿里云的底层存储基于三副本,因此认为操作系统内数据没有任何丢失风险。实际上这是误解,底层存储的三副本提供对数据磁盘的物理层保护,但如果系统内部使用云盘逻辑上出现问题,比如中毒,误删数据,文件系统损坏等情况,还是可能出现数据丢失。此时,我们需要通过快照、异地备份等相关技术最大保证数据的安全性。
云盘的三副本说明
ECS 用户对虚拟磁盘的读写最终都会被映射为对阿里云数据存储平台上的文件的读写。阿里云提供一个扁平的线性存储空间,在内部会对线性地址进行切片,一个分片称为一个 Chunk;对于每一个 Chunk,阿里云会复制出三个副本,并将这些副本按照一定的策略存放在集群中的不同节点上,保证用户数据的可靠。至于 ECS 实例内由于病毒感染、人为误删除或黑客入侵等软故障原因造成的数据丢失,需要采用备份、快照等技术手段来解决。任何一种技术都不可能解决全部的问题,因地制宜的选择合适的数据保护措施,才能为宝贵的业务数据筑起一道坚实的防线。
具体参考:
https://help.aliyun.com/document_detail/35108.html

最佳实践

数据盘分区恢复以及数据恢复是处理数据丢失问题最后的一道防线,但未必一定能够恢复数据。我们强烈建议用户参考如下最佳实践,通过数据进行自动快照、手动快照快照和各类备份方案,最大程度保证数据的安全性。
1、启用自动快照
根据实际业务情况,对系统盘、数据盘启动自动快照。需要注意的是,自动快照在更换系统盘、服务器到期后或手动释放磁盘时,自动快照可能会被释放。
关于自动快照释放行为,可以在 ECS控制台>全部磁盘 中找到对应磁盘,选择 修改磁盘属性 进行设置,默认选择 自动快照随磁盘释放,选择后,当磁盘手动释放、磁盘随实例释放或更换系统盘时,该磁盘的自动快照会被自动删除。如果想保留快照,您可以手动去掉该选项。
详情请参考:
ECS云服务器自动快照FAQ
https://help.aliyun.com/knowledge_detail/40552.html

2、手动快照
请在任何重要或有风险的操作前,请手动执行快照。例如:
 系统升级内核
 应用升级变更
 磁盘数据恢复
在对用户磁盘做恢复的时候,一定要先对创建该磁盘的快照,快照完成后做相应的操作。

3、OSS、线下、异地备份
用户可酌情使用OSS、线下、异地的方式进行重要数据的备份。

时间: 2025-01-30 07:04:31

ECS数据分区丢失问题处理方法、常见误区和最佳实践的相关文章

《智能数据时代:企业大数据战略与实战》一第3章 大数据:有所为有所不为3.1 大数据分析最佳实践

第3章 大数据:有所为有所不为 3.1 大数据分析最佳实践 很显然,与任何其他技术或过程一样,大数据问题也有最佳实践.在大多数情况下,最佳实践通常来自多年的测试和测量结果,以此作为基础,不断发展.然而,如今的大数据概念要相对新颖,在推导相关最佳实践的过程中人们总会去依赖并利用此前经过证明的有效方法.尽管如此,当前各种新的最佳实践正如雨后春笋般不断浮现,这意味着我们仍然可以从他人的错误和成功中吸取经验教训并由此判断出哪些才是真正有效的方法. 大数据的革命性特质往往会影响最佳实践,因此今日的最佳到明

asp和php下textarea提交大量数据发生丢失的解决方法_php技巧

我用textarea提交大量的阿数据 我开始字段类型选的是mediumtext,数据有丢失 后来我改成了longtext,数据依然丢失, 而且发现和mediumtext提交到数据库中的数据量是一样的, 并没有增加.该怎样解决呢? asp下只需要用下面的方法即可 复制代码 代码如下: Sub Content()     Dim i,sContent     ' 取提交过来的数据     ' 据说对大表单的自动处理,要使用循环,否则大于100K的内容将有可能取不到,单个表单项的限制为102399字节

《DevOps实战:VMware管理员运维方法、工具及最佳实践》——3.4 管理源代码

3.4 管理源代码 源代码管理(SCM,Source Code Management)是DevOps环境中必不可少的元素.想象一下:如果你要把基础设施转换为代码,重要的是有一种回顾任何更改.在新更改引入问题(例如,在最好的情况下是定期出现不稳定的情况,在最糟糕的情况下引起停机)时回到文件不同版本的手段.有些人可能认为"容易"的方法是建立文件的多个拷贝,每个都使用唯一的名称(Vagrantf?ile1.Vagrantf?ile2.Vagrantf?ile01012015等),但是接着当你

PQMagic重新分区硬盘分区丢失的解决方法_应用技巧

       问:前两天我用PQ将C盘进行重新分区为6GB,重新安装了Windows XP操作系统后,C盘却只有3GB,另外的3GB不知道分到哪去了.请问我该怎么办? 答:PQ工具是可以在不损失硬盘中的保存数据前提下对硬盘进行重新分区的工具,功能非常强大,但是如果操作不当很容易在操作过程中发生错误.根据你的情况分析结果是,丢失的硬盘可能被划分为空闲的空间.要解决这个问题你只要进行重新分区就能够找回你划为空闲的3GB空间.同时建议你下载一个叫"diskgen.exe"的小工具.万一使用过

php 表单提交大量数据发生丢失的解决方法_php技巧

最近在项目中,出现一个奇怪的现象,有一个大form里面有上千个input,提交的时候,老是发现post过来的数据不完整,一开始还怀疑是html 表单名称有冲突,排除掉了.然后,网上找了一堆,php.ini 的post_max_size和upload_max_filesize都设置了很大的值,没用,nginx的client_max_body_size 500m;加到了那么大的值,也没用.最后终于google到办法:原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的

Excel表格数据分区密码怎么设置

  大家在使用office2010制作Excel表格的时候不知道office2010怎么设置Excel表格数据分区密码,其实方法很简单哦,只要在office2010Excel表格里新建区域然后选中分区就可以进行密码设置了哦,下面就和小编一起来看看吧. office2010设置Excel表格数据分区密码方法: 第一步:首先打开office2010 Excel表格,输入数据.   第二步:点击主菜单上的审阅,点击允许用户编辑区域.   第三步:点击新建区域,选中所选区域,并设置密码123(密码自己随

用DiskGenius找回硬盘丢失空间的方法

  DiskGenius是一款非常好用的分区工具,不过,除了对电脑.硬盘进行分区之外,DiskGenius的功能还有很多,比如说,帮助硬盘把丢失的分区找回来.那么,DiskGenius是如何做到的呢?一起来看看今天的用DiskGenius找回硬盘丢失空间的方法! 主人自述:所购微机硬盘格式化后容量为38GB,共分C.D.E三个区,其中主分区C容量为5GB,扩展分区D.E平分余下空间,约16.5GB.今天电脑开机后一切正常,但试图通过"我的电脑"选取E盘时,竟发现E盘神秘失踪. 现场情况

ASP.NET页面间数据传递的9种方法

本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. 0.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种

ASP.NET页面间数据传递的几种方法介绍_实用技巧

Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 一.ASP.NET页面间数据传递的各种方法和分析 1.使用Querystring 方法 QueryString 也叫查询字