Method and apparatus for bringing an array port offline for executing in-flight I/O requests while rejecting upper layer protocol (ULP) messages
A method for use in a storage system, comprising: receiving, at a storage processor that is part of the storage system, a notification that an array port in the storage processor is going to be brought offline, transitioning the array port into a first state in which the array port continues to execute in-flight input-output (I/O requests) while rejecting new I/O requests, wherein each rejection includes an upper layer protocol (ULP) response/status message that would cause a sender of the rejection's corresponding I/O request to select an alternative network path that connects the sender to the storage system and re-transmit the corresponding I/O request to the storage system via the alternative network path; and transitioning the array port from the first state into a second state.
1 . A method for use in a storage system, comprising: receiving, at a storage processor that is part of the storage system, a notification that an array port in the storage processor is going to be brought offline, the notification contains an indication of the length of the waiting period; transitioning the array port into a first state in which the array port continues to execute in-flight input-output (I/O requests) while rejecting new I/O requests, wherein each rejection includes an upper layer protocol (ULP) response/status message that would cause a sender of the rejection's corresponding I/O request to select an alternative network path that connects the sender to the storage system and re-transmit the corresponding I/O request to the storage system via the alternative network path; and transitioning the array port from the first state into a second state, the second state being a state in which the array port is offline, the array port being transitioned into the second state in response to detecting that the waiting period has passed since the receiving of the notification, wherein the notification indicates that the storage processor is going to be shut down, without identifying the array port or identifies the array port specifically.
2 . The method of claim 1 , wherein the ULP response/status message includes a Small Computer System Interface (SCSI) QFull message that is transmitted irrespective of whether a queue associated with the QFull message is full.
3 . The method of claim 1 , wherein the ULP response/status message includes a Non-Volatile Memory Express (NVMe) “Namespace Not Ready” message that is transmitted irrespective of whether a storage object associated with the message is initialized.
4 . The method of claim 1 , wherein the length of the waiting period is determined based on a count of in-flight I/O requests that are associated with the array port.
5 . A storage processor that part of a storage system, the storage processor comprising: a memory; a processing circuitry that is operatively coupled to the memory, the processing circuitry being configured to perform the operations of: receiving a notification that an array port in the storage processor is going to be brought offline, the notification contains an indication of the length of the waiting period; transitioning the array port into a first state in which the array port continues to execute in-flight input-output (I/O requests) while rejecting new I/O requests, wherein each rejection includes an Upper Layer Protocol (ULP) response/status message that would cause a sender of the rejection's corresponding I/O request to select an alternative network path that connects the sender to the storage system and re-transmit the corresponding I/O request to the storage system via the alternative network path; and transitioning the array port from the first state into a second state, the second state being a state in which the array port is offline, the array port being transitioned into the second state in response to detecting that the waiting period has passed since the receiving of the notification, wherein the notification indicates that the storage processor is going to be shut down, without identifying the array port or identifies the array port specifically.
6 . The storage processor of claim 5 , wherein the ULP response/status message includes a Small Computer System Interface (SCSI) QFull message that is transmitted irrespective of whether a queue associated with the QFull message is full.
7 . The storage processor of claim 5 , wherein the ULP response/status message includes a Non-Volatile Memory Express (NVMe) “Namespace Not Ready” message that is transmitted irrespective of whether a storage object associated with the message is initialized.
8 . The storage processor of claim 5 , wherein the length of the waiting period is determined based on a count of in-flight I/O requests that are associated with the array port.
9 . A non-transitory computer-readable medium storing one or more processor-executable instructions, which, when executed by a processing circuitry of a storage processor, cause the processing circuitry to perform the operations of: receiving a notification that an array port in the storage processor is going to be brought offline, the notification contains an indication of the length of the waiting period; transitioning the array port into a first state in which the array port continues to execute in-flight input-output (I/O requests) while rejecting new I/O requests, wherein each rejection includes an Upper Layer Protocol (ULP) response/status message that would cause a sender of the rejection's corresponding I/O request to select an alternative network path that connects the sender to a storage system and re-transmit the corresponding I/O request to the storage system via the alternative network path; and transitioning the array port from the first state into a second state, the second state being a state in which the array port is offline, the array port being transitioned into the second state in response to detecting that the waiting period has passed since the receiving of the notification, wherein the notification indicates that the storage processor is going to be shut down, without identifying the array port or identifies the array port specifically.
10 . The non-transitory computer-readable medium of claim 9 , wherein the ULP response/status message includes a Small Computer System Interface (SCSI) QFull message that is transmitted irrespective of whether a queue associated with the QFull message is full.
11 . The non-transitory computer-readable medium of claim 9 , wherein the ULP response/status message includes a Non-Volatile Memory Express (NVMe) “Namespace Not Ready” message that is transmitted irrespective of whether a storage object associated with the message is initialized.