首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
V2EX  ›  云计算

rm -fr /*之后,拿什么来挽救服务器。

  •  
  •   qiangmin · 35 天前 · 6901 次点击
    这是一个创建于 35 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我目前就职于一家小型云计算公司,虽然客户很少,但是偶尔还是会发生客户误删大量文件导致系统无法使用,必须恢复的情况。
    当这种事情发生后,应该如何去补救。或者提前在镜像中内置工具,提供什么方案、方法让用户自行修改。
    比如云主机支持挂载 ISO 修改破损系统。
    第 1 条附言  ·  35 天前
    谢谢各位支招。
    我们目前已经有备份和快照方案。备份和快照都是面向数据盘的,需要用户自行开启。

    抱歉我之前的描述不够充分。
    我主要想表达的问题是:比如昨天我做了快照了,今天服务正在运行着,但是一不小心,执行了"rm -fr /*",这种情况下,今天的数据可能都已经被删除了,我现在需要解决的问题是尽量修复今天的数据。
    58 回复  |  直到 2019-01-18 10:41:37 +08:00
        1
    baicheng10   35 天前
    这种事情一般不是做在事前而不是事后的吗- -?
    或者楼主的意思仅仅是指系统,不包括数据?
        2
    CivAx   35 天前
    当然是诱导用户开启快照功能
        3
    zn   35 天前
    靠备份。没备份洗洗睡吧。
        4
    txydls   35 天前
    一主一备
        5
    couashi   35 天前
    safe-rm
        6
    Gempty   35 天前
    没有高可用就靠备份吧。。。高可用还靠谱点。。。支持各种误删宕机
        7
    yuikns   35 天前
    The Linode Backup System is designed to be an easy to use, reliable and redundant on-site backup solution for your Linode. It performs backups without causing any interruption of your running system. It provides 4 backup slots. Three of the slots are executed and rotated automatically: a daily backup, a 2-7 day old backup, and an 8-14 day old backup. The fourth backup slot is a user-initiated snapshot and remains in place until another user-initiated snapshot is taken.

    供参考
        8
    bbsanimal   35 天前
    拿钱
        9
    yuikns   35 天前
    高可用是自己服务架构的事情,提供商只能提供各种 snapshot & backup。
        10
    qiangmin   35 天前
    @baicheng10 包括数据,不然就没有必要修复了。
        11
    qiangmin   35 天前
    @CivAx 然而,有的用户可能一直都不用快照,出问题之后才后悔了。
        12
    qiangmin   35 天前
    @zn 备份是比较靠谱的,但是我们的现在的备份方案,是用户导向的(用户自行操作进行备份),如果用户没有备份的习惯,那还是跪。
        13
    o00o   35 天前
    全部默认带备份,用户没开通备份功能又丢失了数据想找回的高价恢复赚一波
        14
    qiangmin   35 天前
    @yuikns 赞同
        15
    cdlixucd   35 天前
    不管怎样都备份一份但是这部分费用可能得公司自己背
        16
    qiangmin   35 天前
    @o00o 我们是默认数据盘有一个备份,一天备份一次。推荐的也是将数据放到数据盘中。
        17
    cloudbeyond   35 天前   ♥ 2
    你虽然从用户的角度替他们想到了问题,也想要去解决这个问题。从系统复杂度的角度来说,引入额外的救援备份系统,是一个出力不讨好的事情,增加了复杂度。
    你提供了这个服务,就要引导客户去使用,如果这个服务有 bug 或者未知问题导致的数据再次丢失,很可能用户会把屎盆子扣过来。而且维护这套系统,对于一个小的提供商,可能会因为复杂度问题把自己玩死。

    有时候某些问题不是技术不能解决,而是出于多方面考量,就这个问题可能会有各种责任划分和法律问题。

    另外,一个不善待自己数据的客户,其实也没有什么必要去挽救了。他自己都不拿数据当回事,你替他着急什么呢 :P

    如果想要看看别的云计算厂商怎么看这个事情,可以看看责任共担模型
    https://aws.amazon.com/cn/compliance/shared-responsibility-model/
        18
    cirton   35 天前
    对系统盘做 raid1,也算是高可用吧?删掉系统盘的文件,可以使用另一块盘做恢复?
        19
    qiangmin   35 天前
    @cloudbeyond 事实确实如您所说。可是如果我们就连补救方案都不提供的话,用户又有其他理由骂我们了。:-)
        20
    qiangmin   35 天前
    @cirton 对系统盘做 raid 的话成本太大。
        21
    CivAx   35 天前   ♥ 2
    @qiangmin 别咬技术层面的东西了,你们可以从产品的思路来考虑解决这个问题。

    你们可以考虑这样,在每台主机被建立的时候后台自动启用快照,按照最低规格(一天 1 次,保留 3 天)的方式给用户自动保存。

    只要用户提工单表示自己服务器嗝屁了,你们就自动回复让他们去用快照,并且首次进入快照页面的时候弹框提示 “您仅有一次免费恢复机会,本次恢复后快照服务将自动停止使用。后续使用需要您同意开启商用快照服务并同意按量付费”

    这不就结了嘛,即给自己省事,又帮用户兜住了烂摊子,还让用户感受了一把快照服务的可靠性,顺便推销了一把快照服务。
        22
    caryqy   35 天前
    rm="mv"
        23
    Fulcrum   35 天前 via Android
    能魔改 rm 吗。。。统统丢到一个"回收站"去
        24
    qiangmin   35 天前
    @CivAx 产品层面已经存在了自动快照的功能,只是面向数据盘的。
    目前的问题主要想解决的问题是:比如游戏服务器,今天一不小心'rm -fr /*',自动快照最新的也只是到昨天,如果用快照恢复的话,那我今天服务器运行的保存的东西就都没有了。
        25
    qiangmin   35 天前
    @caryqy 我也想这样,但是云服务商不应该去修改这写东西,我们只提供服务。
        26
    xivisi   35 天前
    @CivAx 合格
        27
    CivAx   35 天前   ♥ 1
    @qiangmin 首先你们无责,你们要明确这一点。我提供了一系列的数据保全服务但是你们不使用,甚至还出于人道主义提供了最低限度的数据恢复服务,如果白嫖我的服务还不满意那就没什么好讲的了。

    你们也可以默认安装 safe-rm 然后黑名单掉整个系统目录,或者针对单 ECS 高消费的用户电话联系或者各种方式推送提醒开通快照或其他类似服务。
        28
    qiangmin   35 天前
    @CivAx 确实,产品方面这些东西都是应该做到和考虑到的。
        29
    BFDZ   35 天前
    如果客户拥有完整的权限,那么客户自己删掉了数据是由客户承担后果。如果客户需要你承担后果,那么就不应该给客户 root 权限。这要在事先和客户签订协议。
        30
    Akiyu   35 天前
    lvm 有镜像的功能, 可以参考一下
        31
    qiangmin   35 天前
    @BFDZ 嗯嗯,一切非我方服务异常导致的问题,我们都是不承当责任的。
        32
    ThirdFlame   35 天前
    把数据盘镜像出来,客户自行进行数据恢复工作。
        33
    likuku   35 天前
    "抱歉我之前的描述不够充分。
    我主要想表达的问题是:比如昨天我做了快照了,今天服务正在运行着,但是一不小心,执行了"rm -fr /*",这种情况下,今天的数据可能都已经被删除了,我现在需要解决的问题是尽量修复今天的数据。"

    方向错了哎,正道是去研发时光机器,回到一切正常的昨天就好。

    你们是有限公司吧?不用承担无限的责任,尤其是客户误操作(脑残 /手贱),这防不胜防。

    啥都要管,啥都负责的话,要么给客户脑后插管,要么迟早都连客户的吃喝拉撒睡玩一并得全包了。

    即便白炽灯厂家给包装上注明了“禁止将灯泡放入口中”,结果依然会有好奇顾客张口含灯泡。
        34
    sampeng   34 天前 via iPhone
    这种就不用管。不是上云了就瞎几把乱用。就算不能 rm 掉整个系统。运维手贱删了整个核心表。还要你恢复 1 分钟前的订单和系统挂掉的损失?
        35
    sampeng   34 天前 via iPhone
    另外从运维角度…核心业务要入云的数据库。存本地?脑子不够用吧。想省钱所以存本地?请自己承担风险。
    aws 每个文档后面都申明,他只管他们维护的基础设施。机器上的他管不着。
    如果贵司能做到保护客户机所有数据…这是很牛逼的竞争力,就不是在这里能问到的了…
        36
    gransh   34 天前 via iPhone
    客户的管理员是一个人吗?我觉得这种错误犯一次就够一身冷汗了,第二次就打自己耳光吧,第三次就可以去死了。你的客户还经常???
        37
    msg7086   34 天前
    和客户沟通,让他们不要 zi 杀。就算要 zi 杀,一次两次就行了,不要反复来。
        38
    neptuno   34 天前 via Android
    装个 zsh 把这个命令换成 ls。。。。
        39
    omph   34 天前
    在镜像中内置这个 alias:
    alias rm="rm -I --preserve-root"
        40
    xy90321   34 天前 via iPhone
    5-15 分钟间隔的高频度快照 /备份 应该可以基本满足你 append 里面的需求
    但是要完全解决是不可能的,除非你能研发出一套有 x 分钟 延迟的系统操作镜像同步系统,使得镜像系统永远保持在 x 分钟前的状态…
        41
    MrUser   34 天前
    权限控制没做好吗?貌似是个规则 vs 自由的问题
    必须可恢复的话,貌似只能做假删了。
        42
    lepig   34 天前
    在镜像里 把 rm -rf 做一个别名 类似 39 楼
        43
    vipppppp   34 天前
    现在可害怕使用 rm -rf 这种操作了。。。
    每次都再三确认后面的目录。。
        44
    lixuedong   34 天前
    根据 POSIX.1-2008 标准,” rm -fr /”命令是不会被执行的,而是应该打印错误信息。
    但是老的 POSIX.1-2004 标准则无此定义
    Linux 中,rm 命令都是由 coreutils 工具提供的
    coreutils 5.2 稳定版于 2004 年 2 月 19 日发布,
    而现在 coreutils 工具在 CentOS6 上都已经是 8.22 版本了( CentOS7 是 8.4 版本,Debian8 是 8.23 版本)。
    只有你的 coreutils 的版本足够高( 5.2 版本以上),可以”安全地”使用 rm -fr /这个指令,老版本的 rm 还是存在此问题的
        45
    artandlol   34 天前 via iPhone
    先自救再救系统
        46
    qiangmin   34 天前
    @xy90321 这样成本一下就高上去了。
        47
    qiangmin   34 天前
    @MrUser 没有必须恢复,只能说是尽量修复,而且确实要保证自由,不能确约束用户。
        48
    openbsd   34 天前
    客户碰瓷咋办 ?
    机密数据删除后你们运营商居然有备份,征得客户同意了吗 ?
        49
    8355   34 天前
    命令魔改一下
        50
    qiangmin   34 天前
    @lepig 我也想这样去约束用户,操作简单,从根本上解决问题。但是这样是不符合云服务产品的定义的,提供服务就应该让用户想如何玩耍就如何玩耍,不应该限制用户,这种限制明显是不能加的。
        51
    qiangmin   34 天前
    @openbsd 所以自动备份快照这些东西现在就是让用户自行开通。
        52
    afirefish   34 天前
    我比较喜欢用 rm -rf
        53
    gam2046   34 天前
    “然而,有的用户可能一直都不用快照,出问题之后才后悔了”

    这种锅不应该用户自己背嘛?服务商又不可能做实时备份,再退一步说,真的能做到实时备份,你的所有数据,服务商都有一份冗余的。这个时候,你还敢用这家的服务嘛?天知道服务商在用这份冗余数据做了什么事情。
        54
    markgor   34 天前
    第一、你怎么知道这次的 rm -rf 是不是不小心输入。
    第二、备份快照只是主要是针对硬件故障,并非人为操作。
    第三、假设你开发一个新的文件系统,增加操作审核功能,用户 rm -rf 后文件系统标记起来,需要人工审核后才真正执行。然后客户可能也会找你和你说我审核错了,怎么恢复。
    所以最后其实这个本来就是属于人为操作上的问题,你能做的最多只是提醒。
        55
    NonClockworkChen   34 天前
    知乎有这个问题,有个回答,非常的骚,大段文字记录,是怎么骚回来的。
        56
    SyncWorld   34 天前
    ctrl+z 不用谢
        57
    SsorryQaQ   34 天前
    跑路
        58
    xiaowoniu   32 天前
    跑路
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2374 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 14:43 · PVG 22:43 · LAX 06:43 · JFK 09:43
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1