Maintaining Quality of Service With Dynamic Fault Tolerance in Fat Trees