A data storage method, which is applied to a management node in a cloud storage system, wherein the system further comprises multiple storage nodes, each storage node comprises M storage blocks, and N storage blocks among the storage blocks comprised in the multiple storage nodes constitute one resource pool, wherein the M storage blocks comprised in each of the multiple storage nodes are obtained from virtualization of the storage node, wherein the management node manages data in each resource pool, the method comprises: receiving a resource request containing identification information of a first resource pool from a first device; allocating a first storage block in the first resource pool to the first device according to the resource request; and sending first path information of the first storage block to the first device; wherein after receiving the resource request from the first device, the method further comprises: determining, according to first permission information stored in the management node, whether the first device has a permission to store data into the first resource pool; wherein the first permission information comprises information on whether the first device has a permission to store data into a resource pool; and if so, performing the step of allocating the first storage block to the first device according to the resource request; wherein allocating the first storage block to the first device according to the resource request, comprises: determining whether the first resource pool is available; if so, allocating the first storage block to the first device according to the resource request such that the first device stores to-be-stored data to the first storage block in the first resource pool according to the first path information; and if not, determining a first domain where the first resource pool is located, wherein a domain consists of multiple resource pools belonging to a same network segment; determining a destination domain corresponding to the first domain in a network segment adjacent to the network segment of the first domain and determining a second resource pool in the destination domain,; sending prompt information carrying identification information of the second resource pool to the first device; and adding a permission allowing the first device to store data into the second resource pool. receiving a resource request containing identification information of a first resource pool from a first device; allocating a first storage block in the first resource pool to the first device according to the resource request; and sending first path information of the first storage block to the first device; wherein after receiving the resource request from the first device, the method further comprises: determining, according to first permission information stored in the management node, whether the first device has a permission to store data into the first resource pool; wherein the first permission information comprises information on whether the first device has a permission to store data into a resource pool; and if so, performing the step of allocating the first storage block to the first device according to the resource request; determining, according to first permission information stored in the management node, whether the first device has a permission to store data into the first resource pool; wherein the first permission information comprises information on whether the first device has a permission to store data into a resource pool; and if so, performing the step of allocating the first storage block to the first device according to the resource request; wherein allocating the first storage block to the first device according to the resource request, comprises: determining whether the first resource pool is available; if so, allocating the first storage block to the first device according to the resource request such that the first device stores to-be-stored data to the first storage block in the first resource pool according to the first path information; and if not, determining a first domain where the first resource pool is located, wherein a domain consists of multiple resource pools belonging to a same network segment; determining a destination domain corresponding to the first domain in a network segment adjacent to the network segment of the first domain and determining a second resource pool in the destination domain,; sending prompt information carrying identification information of the second resource pool to the first device; and adding a permission allowing the first device to store data into the second resource pool. determining whether the first resource pool is available; if so, allocating the first storage block to the first device according to the resource request such that the first device stores to-be-stored data to the first storage block in the first resource pool according to the first path information; and if not, determining a first domain where the first resource pool is located, wherein a domain consists of multiple resource pools belonging to a same network segment; determining a destination domain corresponding to the first domain in a network segment adjacent to the network segment of the first domain and determining a second resource pool in the destination domain,; sending prompt information carrying identification information of the second resource pool to the first device; and adding a permission allowing the first device to store data into the second resource pool.