脑残手贱:被NFS祸害的调度系统
建议:任何时候,都要三思而后行!!!
事请的缘由
系统中采用slurm调度系统来进行并行计算。但是在GPU节点上,无论如何都无法启动slurmd,报插件初始化错误的故障。
因此需要编译新的munge和slurm来确认是否是软件版本和操作系统版本不不兼容造成的。
悲剧的发生
我们的系统,共享的应用环境放置在NAS上的NFS文件系统。我在A节点上已经卸载了NFS文件,然后挂载点(本地目录)上编译新版本,启动了slurm之后,还是有问题。
因此需要更换一个节点B试试,直接把文件拷贝到B节点很方便。
因此很熟练的scp -r munge-0.5.12 B:$(pwd)
,看着文档被覆盖,一切都这么顺利的时候,我的内心突然一阵惶恐!
没错,NFS对于所有节点都是可读写的。我神不知鬼不觉地用A 节点上centos7编译的munge覆盖了B节点上NFS挂载的centos6编译的munge,那一刻,我的世界坍塌了。
赶紧找个节点,提交我的测试算例。看着一堆的报错,那一刻我的心都碎了,是的没错,果然影响了在线的系统。完了,彻底完了!
赶紧给领导打电话,说我手残了,系统被我搞垮了,领导安抚了一下我,赶紧把旧的恢复回去,slurm超时300s,来的及的话,还能够拯救。
绝处逢生
我赶忙找找我是否备份了之前的文件。
幸运的是,我在A节点的本地目录下,CP了一份munge.0.5.12.nas_nfs,这就是之前的那个了,万幸!。只要将这个目录再次拷贝回去,应该是没有问题的。
慌不择路。
我scp -r munge.0.5.12.nas_nfs 到NAS上的同一个目录时,发现还是没有拯救回来,报错GLIBC的问题。完了,彻底完了。真的要重新编译吗?可是那耗时还是太长了。
我cd 到munge的目录下,发现把 munge.0.5.12.nas_nfs拷贝到了 munge.0.5.12目录下,也就是说:scp这个目录用错了,没有覆盖,而是拷贝到目标目录下了。
似乎有了希望。
为了确保万无一失,我把munge-0.5.12下的东西全部删除,然后在munge.0.5.12.nas_nfs目录下mv * ../
。
然后我批量处理所有节点,启动munged,从SUCCESS的字段我看到了自己的命可能保住了。
然后sinfo看到了所有节点还是down。看来的确是slurm通信已经超时,slurm的控制器已经认为节点死了。只能够重新启动slurmd了
批量执行之后,看到SUCCESS之后,我想这次虽然把系统拯救好了,但是那些排队的计算任务,已经无法再次复活了,只能等待重新提交了。
总结
- 备份。很重要很重要。假如没有备份的东西,我已经被枪杀了。
- 细节。因为没有卸载B节点的NFS,所有直接覆盖了全部节点的共享目录,导致系统出错。
- 冷静。还是那句话,故障不要紧,要紧的是无法修复故障。。
- 沉着。 运维这个工作,平时没你啥事,有你啥事的时候就有可能是天塌下来的责任。
无论是测试还是上线,旁边最好坐个backuper,不然脑子不够使,毁了系统可能还在傻呵呵地笑
运维最大的难度在于:脑残和手贱。以此为戒,绝不再犯!
脑残手贱:被NFS祸害的调度系统的更多相关文章
- hash 表 | | jzoj 1335 | | 脑残+手残 | | 集合的关系
给定两个集合A.B,集合内的任一元素x满足1 ≤ x ≤ 10^9,并且每个集合的元素个数不大于10^5.我们希望求出A.B之间的关系. 给定两个集合的描述,判断它们满足下列关系的哪一种:A是B的一个 ...
- 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答. 本篇文章尝试使用动画图片的方 ...
- [转帖]脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手 http://www.52im.net/thread-1729-1-1.html 1.引言 网络编程中TCP协议的三次握手和 ...
- 手贱的回忆录 --- L版openrc密码修改(OS_PASSWORD)
---恢复内容开始--- 刚刚部署完L版,发现默认登录的管理员账号在41.42.43的openrc文件中,登录名是admin,登录密码却是一串随机码,于是想修改一个简单易记的密码,手贱的把OS_PAS ...
- 在Ubuntu里部署Javaweb环境脑残版
最近在瞎折腾Unbunt,喜欢这里的干净和静谧.能留在这里,那么就得在这里工作,于是部署javaweb就成了头件大事了. 咨询了大牛,都说不会命令你玩毛玩linux,但是万万没有想到,原来ubuntu ...
- 手贱随手在Linux敲了 as 命令,出不来了
手贱随手在Linux敲了 as 命令,出不了命令,问问度娘吧,得到下列资料 as命令 GNU组织推出的一款汇编语言编译器,它支持多种不同类型的处理器.语法as(选项)(参数)选项-ac:忽略失败条 ...
- 脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
本文引用了“帅地”发表于公众号苦逼的码农的技术分享. 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢 ...
- 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
本文引用了公众号纯洁的微笑作者奎哥的技术文章,感谢原作者的分享. 1.前言 老于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天.实时音视频等)时,如果发现网络连接超时,第一时间想到的就是 ...
- 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...
随机推荐
- CSS的常用属性
刚开始学习前段的我,还处于初级阶段,一些东西还是会有搞不明白的时候,还是要大家多多理解.今说就一些关于CSS的常用属性吧! 一.CSS常用选择器 CSS选择器应该说是一个非常重要的工具吧,选择器用得好 ...
- ioc(Inversion of Control)控制反转和DI
ioc意味着将你设计好的交给容器控制,而不是传统在你的对象中直接控制 谁控制了谁:传统的javaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象:而ioc是有专门一个容 ...
- 为什么要用深度学习来做个性化推荐 CTR 预估
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:苏博览 深度学习应该这一两年计算机圈子里最热的一个词了.基于深度学习,工程师们在图像,语音,NLP等领域都取得了令人振奋的进展.而深 ...
- JAVA多线程---volatile关键字
加锁机制既可以确保可见性又可以保证原子性,而volatile变量只能确保可见性. 当把变量声明为volatile时候 编译器与运行时都会注意到这个变量是共享的,不会将该变量上的操作与其他内存操作一起重 ...
- javascript篇-----数据类型
ECMAScript中一共有6种数据类型,其中包括5种基本数据类型(Undefined,Null,Boolean,Number,String)以及一种复杂数据类型(Object).[ES6增加多了一种 ...
- Codeforces 845 A. Chess Tourney 思路:简单逻辑题
题目: 题意:输入一个整数n,接着输入2*n个数字,代表2*n个选手的实力. 实力值大的选手可以赢实力值小的选手,实力值相同则都有可能赢. 叫你把这2*n个选手分成2个有n个选手的队伍. ...
- 探索Java NIO
什么是NIO? java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO),NIO提供了与标准IO不同的IO工作方式. 核心部分: Ch ...
- Paint the Grid Reloaded ZOJ - 3781 图论变形
Paint the Grid Reloaded Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %ll ...
- Dubbo服务接口的设计原则
1.接口粒度 1.1 服务接口尽可能大粒度,每个服务方法应代表一个功能,而不是某功能的一个步骤,否则将面临分布式事务问题,Dubbo暂未提供分布式事务支持.同时可以减少系统间的网络交互. 1.2 服务 ...
- gitlab仓库迁移
遇到一个情况,需要将两个gitlab仓库合并.好在都是使用的ldap账户登陆,用户账户不需要迁移. 实际的使用情况下,需要迁移的主要部分为分组及分组下项目.gitlab的api还是很给力的,能够获取所 ...