Lessons from FTM: an experiment in design and implementation of a low-cost fault tolerant system

G. Muller, M. Banatre, N. Peyrouze, B. Rochat
1996 IEEE Transactions on Reliability  
This report describes an experiment in the design of a general purpose fault tolerant system, FTM. The main objective of the FTM design was to implement a "low-cost" fault tolerant system that could be used on standard workstations. At the operating system level, our goal was to provide a methodology for the design of modular reliable operating systems, while offering fault tolerance transparency to user applications. In other words, porting an application to FTM had only to require compiling
more » ... e source code without having to modify it. These objectives were achieved using the Mach micro-kernel and a modular set of reliable servers which implement application checkpoints and provide continuous system functions despite machine crashes. At the architectural level, our approach relies on a high performance stable storage implementation, called Stable Transactional Memory (STM), which can be implemented either by hardware or software. We first motivate our design choices, then we detail the FTM implementation at both architectural and operating system level. We comment on the reasons for the evolution of our stable memory technology from hardware to software. Finally, we present a performance evaluation of the FTM prototype. We conclude with lessons learned and give some assessments. Résumé : Ce document présente une expérimentation dans la conception d'un système tolérant les fautes à vocation générale, le FTM. Notre motivation principale était la conception d'un système de faible coût pouvant être utilisé sur des stations de travail standard. En ce qui concerne le système d'exploitation, notre objectif était de développer une méthodologie de conception de systèmes d'exploitation fiables offrant la transparence de la tolérance aux fautes aux applications utilisateurs. Autrement dit, le portage d'une application sur FTM ne doit nécessiter que la compilation du logiciel source sans avoir à modifier ce dernier. Nos objectifs ont été atteints en utilisant le micro-noyau Mach et un ensemble modulaire de serveurs fiables qui implément les points de reprises des applications et offrent un service système continu, malgré la défaillance d'une machine. Au niveau de l'architecture, notre approche a reposé sur la conception d'une mémoire stable rapide pouvant être mise en oeuvre soit par matériel, soit par logiciel. Nous décrivons tout d'abord nos choix de conception, puis nous présentons la mise en oeuvre du FTM en ce qui concerne l'architecture et le système d'exploitation. En particulier, nous décrivons l'évolution de la technologie mémoire stable depuis sa mise en oeuvre par matériel jusqu'à son implémentation par logiciel. Enfin, nous présentons une évaluation des performances du prototype qui a été réalisé au cours de cette étude. Nous concluons en tirant les leçons de ce projet. Mots-clé : tolérance aux fautes, points de reprise cohérents, mémoire stable, système d'exploitation modulaire, micro-noyau.
doi:10.1109/24.510822 fatcat:ydeyudat6zbejkk4zijzdqu7za