
分布式系统中如何保证崩溃一致性?
崩溃一致性是指系统在发生崩溃(例如服务器宕机、进程异常退出或断电)后,能够确保持久化的数据仍然处于一致的有效状态。也就是说,无论何时发生崩溃,系统存储上的数据要么保持崩溃前的完整更新,要么回退到崩溃前的稳定状态,不会出现部分更新导致的数据不完整或损坏。
崩溃一致性是指系统在发生崩溃(例如服务器宕机、进程异常退出或断电)后,能够确保持久化的数据仍然处于一致的有效状态。也就是说,无论何时发生崩溃,系统存储上的数据要么保持崩溃前的完整更新,要么回退到崩溃前的稳定状态,不会出现部分更新导致的数据不完整或损坏。
针对腾讯 CSIG 一面的问题做一个总结:包括读写操作在整个内核中的 I/O 请求链路,页缓存、零拷贝技术,以及用户态 I/O 和系统调用的优化。
为了使不同的文件系统共存, Linux 内核在用户层与具体文件 系统之前增加了虚拟文件系统中间层,它对复杂的系统进行抽象化,对用户提供了统一的文件操作接口。无论是 ext2/3/4、FAT32、NTFS 存储的文件,还是 /proc、/sys 提供 的信息还是硬件设备,无论内容是在本地还是网络上,都使用一样的 open、read、write 来访问,使得 “一切皆文件” 的理念被实现,这也正是软件中间层的魅力。
磁盘被手动挂载之后都必须把挂载信息写入 /etc/fstab 这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
本文详细介绍 Linux 系统下与磁盘分区相关的有 fdisk、fsck、mkfs、mount 等其他常用命令~