Design a Distributed File System — Hard System Design Problem