As I understand it, here’s how it works.
You write the file. The file system is set for say 4k blocks so the OS and the file system break the file into 4k chunks. Those are sent to the HBA, which passes the data through the fibre switch to the SAN array. From there it’s written to cache at which point the host assumes that the data has been saved to disk.
The SAN will keep the data in cache until it’s been idle for <i>X</i> amount of time or the cache fills to <i>N</i>% (where <i>X</i> and <i>N</i> are defined by the SAN admin or the SAN vendor). When this happens the SAN will destage the data from the cache to the physical disk.
If the SAN is configured for a block size smaller than what the OS is configured for then when it’s written to cache the SAN breaks the 4k blocks into the smaller size. If the SAN is configured for a larger block size then larger blocks are allocated.