Implemented a Distributed File System as a part of Distributed Systems coursework. The file system is based on Frangipani in terms of architecture. It supports various file system operations such as mkdir, read, write, truncate and deletion of files. It also handles failures by having backup lock servers and storage servers. It handles inconsistencies in case of failures using Replicated State Machine (RSM) and Paxos.