Il limite teorico dei 2 Tb per LUN

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Email -- 0 Flares ×

Avete mai provato a far vedere a un nodo ESX una lun di 2 Tb? Io sì, e ogni volta il sistema si rifiutava di vederla e sputava fuori dal log di vkernel messaggi oltraggiosi…

Sebbene il limite appunto teorico sia di 2 Tb, il limite reale è lievemente più basso. Ho letto qualche giorno fa la spiegazione tecnica, e se vi interessa eccovela.

ESX e ESXi usano lo standard scsi-2. Questo protocollo usa il comando READ_CAPACITY per farsi dire da uno storage quanto è grande, e ritorna un messaggio che può essere grande 32 bit. 2^32 bit darebbe appunto 2 Tb, MA nello standard scsi-2 il valore 0xffffffff è riservato.

Ecco perchè la dimensione massima di una lun non può essere 2 Tb esatti, ma (2^32) – 1 settori. Praticamente il calcolo è:

(2^32) = 4294967296
4294967296 – 1 = 4294967295

4294967295 x 512 bytes = 2199023255040 bytes di limite

Tradotto

4294967295 settori di limite
2199023254528 bytes di limite, che diviso per 1024 da 2047.999999046325684, ovvero poco meno dei 2048 attesi.