- 在用户态下实现
文件系统作为操作系统的重要组成部分,其实现通常位于操作系统底层。以Linux为例,无论是本地文件系统如Ext3,还是分布式文件系统如Lustre等,都是在内核态实现的。在内核态实现文件系统,可以更好的和操作系统本身结合,向上提供兼容的POSIX接口。然而,GFS却选择在用户态下实现,主要基于以下考虑。
- 在用户态下实现,直接利用操作系统提供的POSIX编程接口就可以存取数据,无需了解操作系统的内部实现机制和接口,从而降低了实现的难度,并提高了通用性。
- POSIX接口提供的功能更为丰富,在实现过程中可以利用更多的特性,而不像内核编程那样受限。
- 用户态下有多种调试工具,而在内核态中调试相对比较困难。
- 用户态下,Master和Chunk Server都以进程的方式运行,单个进程不会影响到整个操作系统,从而可以对其进行充分优化。在内核状态下,如果不能很好的掌握其特性,效率不但不会高,甚至还会影响到整个系统运行的稳定性。
- 用户态下,GFS和操作系统运行在不同的空间,两者耦合性降低,从而方便GFS自身和内核的单独升级。
点击加载更多评论>>