2014年12月31日水曜日

ギガバイトとギビバイトの違い

昔はそこまで気にしなくても誤差の範囲で済ませることができたギガバイト(GB)とギビバイト(GiB)の件。最近はディスク容量がペタとか平気で行く時代なので、サイジングをどちらの単位でするかを考慮しないと容量の差が大きくなるので注意しないといけない。

用語的にはGB系をSI接頭辞、GiBを2進接頭辞と呼ぶらしい。

結局違いって何?

以下が違いの全て。
  • 1GB = 1000MB = 10^9Byte
  • 1GiB = 1024MiB = 2^30Byte
1000毎に単位が変わるのがGBで、1024毎に単位が変わるのがGiBとなる。

1000と1024なので大きな差がないと思ったら大間違いとなる。1GiB - 1GB = 73MBとなり、数百TBの容量を扱うことが当たり前となっている現在では、決して無視できない容量の差となる。

単位の違いが混乱を招く理由

では、Windowsでは容量表記はGBとなっていることから、容量は1000を掛けて計算すれば良いかといえば、そうではない所にこの単位の問題がある。

WindowsなどのOSの容量は、GBやTBというSI接頭辞で記載されていたとしても、伝統的に1024毎での単位変更を実施している。そのため、HDDを買ってきてフォーマットすると容量が減るのはそれが原因で、HDDメーカーの容量記載が誤っているということではない。

さらに、ストレージ装置においては、製品によって1000毎と1024毎の容量表記がマチマチとなっている。そのため、ストレージ装置でボリュームを作成してOSに割り当てたら容量が小さくなる場合もあるので、どちらの単位で計算しているかを確認したうえでサイジングした方が良い。例えばストレージ装置上では2TBでボリュームを作ったのに、OS上では1.81TBのディスクとして見えることは往々にしてある。

ちなみに、ネットワークの帯域等は、一般的には1000毎で単位変更となるらしい。

計算式

以下の要領でやれば良い。一度Byteまで値を戻した後、1000または1024で割りなおす。Excelで計算式でも作っておくと良い。

  • αGB→βGiB変換:β=(α*1000*1000*1000)/(1024*1024*1024)
  • αGiB→βGB変換:β=(α*1024*1024*1024)/(1000*1000*10200)