A data write method, applied to an active-active storage system, the method comprising: receiving, by a first storage controller of a first storage array, a data write request from a host, wherein the data write request carries to-be-written data and a write address, the write address describing a location for storing the to-be-written data; after receiving the write request, sending, by the first storage controller, a locking request for a write lock permission for the write address to a lock server, wherein the locking request carries a locking command, the to-be-written data, and the write address; after receiving the locking request, sending, by the lock server, a lock revocation request to a second storage controller of a second storage array when it is detected that the write lock permission for the write address has already been granted to the second storage controller, wherein the lock revocation request is used to withdraw the write lock permission, and the lock revocation request further carries the to-be-written data and the write address; after receiving the lock revocation request, writing, by the second storage controller, the to-be-written data to a second storage of the second storage array according to the write address and returning to the lock server a lock revocation success message, wherein the lock revocation success message is used to describe that the second storage array has finished the use of the write lock permission, and is further used to describe that the second storage array has completed writing the to-be-written data; sending, by the lock server, a lock allocation message to the first storage controller after receiving the lock revocation success message, wherein the lock allocation message is used to allocate the write lock permission requested by the first storage array to the first storage array, and is further used to describe that the second storage array has completed writing the to-be-written data; after receiving the lock allocation message, writing, by the first storage controller, the to-be-written data to a first storage of the first storage array according to the write address and sending a write complete response message to the host. receiving, by a first storage controller of a first storage array, a data write request from a host, wherein the data write request carries to-be-written data and a write address, the write address describing a location for storing the to-be-written data; after receiving the write request, sending, by the first storage controller, a locking request for a write lock permission for the write address to a lock server, wherein the locking request carries a locking command, the to-be-written data, and the write address; after receiving the locking request, sending, by the lock server, a lock revocation request to a second storage controller of a second storage array when it is detected that the write lock permission for the write address has already been granted to the second storage controller, wherein the lock revocation request is used to withdraw the write lock permission, and the lock revocation request further carries the to-be-written data and the write address; after receiving the lock revocation request, writing, by the second storage controller, the to-be-written data to a second storage of the second storage array according to the write address and returning to the lock server a lock revocation success message, wherein the lock revocation success message is used to describe that the second storage array has finished the use of the write lock permission, and is further used to describe that the second storage array has completed writing the to-be-written data; sending, by the lock server, a lock allocation message to the first storage controller after receiving the lock revocation success message, wherein the lock allocation message is used to allocate the write lock permission requested by the first storage array to the first storage array, and is further used to describe that the second storage array has completed writing the to-be-written data; after receiving the lock allocation message, writing, by the first storage controller, the to-be-written data to a first storage of the first storage array according to the write address and sending a write complete response message to the host.