A data compression method, comprising: periodically collecting, by a metadata controller, MDC, in a storage system, first information indicating a current working status of each computing node in the storage system, and second information indicating a current working status of each storage node in the storage system; determining, by the MDC based on the first information, a computing node that is one of the computing nodes and whose current working status is not a busy state as a current active computing node; and determining, by the MDC based on the second information, a storage node that is one of the storage nodes and whose current working status is not a busy state as a current active storage node; generating, by the MDC, a current active node list that records the current active computing node and the current active storage node; acquiring, by a first distributed software header, DSH, in a first computing node, a piece of data when the storage system needs to compress the data, wherein an application program corresponding to the data is deployed in the first computing node, wherein the DSH executes tasks of data compression and data decompression; acquiring, by the first DSH, the current active node list, and determining whether the current active node list records the first computing node; compressing, by the first DSH, the data to obtain compressed data when the current active node list records the first computing node; characterized by adding, by the first DSH to the data, a label indicating that the data is not compressed, so as to obtain labeled data when the current active node list does not record the first computing node; determining, by the first DSH, whether the current active node list records a first storage node, wherein a memory that is configured to store the data and a first memory manager, MM, that is configured to manage the memory are disposed in the first storage node; and sending, by the first DSH, the labeled data to the first MM when the current active node list records the first storage node. periodically collecting, by a metadata controller, MDC, in a storage system, first information indicating a current working status of each computing node in the storage system, and second information indicating a current working status of each storage node in the storage system; determining, by the MDC based on the first information, a computing node that is one of the computing nodes and whose current working status is not a busy state as a current active computing node; and determining, by the MDC based on the second information, a storage node that is one of the storage nodes and whose current working status is not a busy state as a current active storage node; generating, by the MDC, a current active node list that records the current active computing node and the current active storage node; acquiring, by a first distributed software header, DSH, in a first computing node, a piece of data when the storage system needs to compress the data, wherein an application program corresponding to the data is deployed in the first computing node, wherein the DSH executes tasks of data compression and data decompression; acquiring, by the first DSH, the current active node list, and determining whether the current active node list records the first computing node; compressing, by the first DSH, the data to obtain compressed data when the current active node list records the first computing node; characterized by adding, by the first DSH to the data, a label indicating that the data is not compressed, so as to obtain labeled data when the current active node list does not record the first computing node; determining, by the first DSH, whether the current active node list records a first storage node, wherein a memory that is configured to store the data and a first memory manager, MM, that is configured to manage the memory are disposed in the first storage node; and sending, by the first DSH, the labeled data to the first MM when the current active node list records the first storage node.