In the last years there has been considerable interest in using distributed systems, especially Cloud Systems, in any domains. Resource management contributes to ensure quality of services for any type of application, especially when a system involves elements of heterogeneity characterized by a variety of resources that may or may not be coupled with specific platforms or environments. A problem very close to the industry is the capability to allocate resources in an efficient way and estimate costs, especially when switching from one provider to another. In this chapter we present an extended work oriented on agreement-based resource allocation and a scheduling algorithm, aimed to bring an adaptive fault tolerant distributed system. For the agreement protocol we describe and analyze a 3-Tier structure of resources (hosts and virtual machines). Then an adaptive mechanism for agreement establishment is described. The allocation method considers workload distribution, resources heterogeneity, transparency, adaptability and also the ease to extend by combining with other scheduling algorithms.