常见的关机三大法宝:拔电源、shutdown、poweroff
断电之前先来看下机械硬盘的内部结构
为了避免磁头和磁盘的接触磨损,现代机械硬盘会有一个磁头复位的装置,机械硬盘不工作时,磁头回到复位位置,磁头复位不是依靠电能的驱动,而是机械力量。 磁头上有个类似弹簧装置,一直试图将磁头拉回复位区,通电时磁头受磁力作用移动至磁盘上方。 如果机械硬盘突然断电,磁力消失,磁头瞬间被拉回,但因磁盘立刻停转,导致盘面形成空气消失以及主机震动等原因,磁头很容易落在盘面,被磁力拉回的瞬间造成磁盘损伤。
那固态硬盘SSD呢
先来普及一个独木桥组件FTL的知识:FTL是固态硬盘中的逻辑地址(LBA,logical block addresses )和物理地址(PBA, physical block addresses)的对应表。简单讲就是操作系统操作LBA逻辑地址,具体写入有FTL控制真正的物理地址在哪里,由此可见FTL这个“阳关大道”的重要性。
FTL表如此重要,没了它,整个SSD/SD卡就没法工作了。如果在FTL写回Flash之前,还在内存的时候,忽然没电了,内存数据丢失,FTL表也就丢失了。有鉴于此,高端SSD和服务器SSD都加上了电容,来作为应急供电方案,让SSD控制器有时间把内存中的FTL表和一些缓存内容存到Flash上
拔电源的对硬件的损坏(机械盘的磁头)相对于数据的丢失是可以忽略的,如数据库正在写入数据、缓存还未持久化、集群数据没有平衡这些对程序员来讲是致命的,直接拔电源不仅够优雅还会有数据丢失风险,pass?
那shutdown、poweroff以及halt有什么区别呢?
网上文章有很多,说的大多都是一个来源,经过调查发现,这三个命令的最大区别如下
half:关机,不关电
poweroff:关机、关电、关机过程不阻止其他用户登录
shutdown:关机、关电、发送命令通知其他用户将要关机,可以通过参数指定定时关机,只有root权限才可以执行,
会创建nologin阻止新用户登录。
参考:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。