1. A device for scalable block data storage and retrieval using content addressing, said content addressing comprising using said content to define an address in which to place said content, the device comprising data storage devices operative to store said blocks, the data storage devices being connected over a network to computing modules, the computing modules comprising at least one of control modules, at least one of routing modules, and at least one of data modules, the modules being configured to carry out said content addressing to define locations in said storage and retrieval, said network defining separately control paths via said at least one of control modules, data paths via said at least one of data modules and distributing workload over the at least one of control modules and the at least one of data modules by the at least one of routing modules, such that data to be routed over said separate data paths is routed based on content thereof; wherein said at least one of data modules are operative to compare hash values of write data with hash values of stored data, and when a match is found, to point to the matched data and avoid rewriting; wherein when the hash values of write data do not match hash values of already stored data, said at least one of data modules are operative to write the write data and store the hash values of the write data; wherein said at least one control modules are enabled to align an unaligned write of write data to said at least one of data modules; and wherein each routing module is enabled to route data over multiple data paths, wherein each data path is through a control module, wherein the data path is routed based on an associated logical address.