Ich habe 500 MB vdisk hinzugefügt und es zeigt 524 MB bei fdisk -l. Warum?

727
Bizrt lala

Ich habe über vSphere 5.5 eine neue Festplatte mit einer Kapazität von 500 MB zu einer virtuellen Maschine hinzugefügt, die der Server als 524 MB betrachtet.

Irgendeine Idee warum?

fdisk -l >Disk /dev/sdg: 524 MB, 524288000 bytes >64 heads, 32 sectors/track, 500 cylinders >Units = cylinders of 2048 * 512 = 1048576 bytes >Sector size (logical/physical): 512 bytes / 512 bytes >I/O size (minimum/optimal): 512 bytes / 512 bytes >Disk identifier: 0x00000000 
1
weil VMWare die Festplatte in MebiBytes und nicht in MegaBytes erstellt, da Ihr Speicher tatsächlich in Mebibyte-Inkrementen verwendet wird. 500 * 1048576 = 524288000 => 524 MB => 500 MB MB wird von Plattenherstellern missbraucht, um die Angebote größer erscheinen zu lassen, als sie tatsächlich sind. Für 1 TB Speicherplatz erhalten Sie also nur 931 GB Speicherplatz. Wenn Sie tatsächlich MB verwenden, hätten Sie in diesem Fall 500 * 1000000 = 500 MB => 476 MiB` tatsächlich nutzbaren Speicherplatz. Frank Thomas vor 9 Jahren 5
Bei FrankThomas Dies ist die naheliegende Antwort. Warum nicht als solches posten? @OP: Ich habe die Markierung deines Beitrags geändert. Einrücken mit 4 Leerzeichen formatiert die Ausgabe. Wenn Sie es nicht mögen, können Sie es über den [Link bearbeiten] (http://superuser.com/posts/966311/edit) zurücksetzen. Hennes vor 9 Jahren 0
@Frank Thomas Einverstanden - Frank, das solltest du als Antwort posten. Ich werde es bestätigen. Jamie Hanrahan vor 9 Jahren 0

1 Antwort auf die Frage

5
Frank Thomas

Das Metric-Präfix Mega- hat einige unterschiedliche Auswirkungen auf die verschiedenen IT-Bereiche und ist mit Disks besonders verwirrend. Metrische Präfixe sind üblicherweise Potenzen von 10, aber zu Beginn der IT-Geschichte wurden Präfixe wie Kilo, Mega und Giga verwendet, um approximierte Werte in Potenzen von 2 darzustellen, wenn sie in Dezimalzahlen konvertiert wurden.

Plattenhersteller nehmen das Präfix wörtlich und messen eine KB als 1000 (10 ^ 3) Bytes, wohingegen die Größe eines Kilobytes eine Potenz von 2 sein muss (da sie sich aus Bits zusammensetzt) ​​und allgemein als 1024 Bytes ( 2 ^ 10). Ein MB für Festplattenhersteller beträgt 1000000 Bytes, für alle anderen jedoch 1048576 (2 ^ 20), einschließlich Ihres Betriebssystems. Wenn Sie eine 1-KB-Datei speichern, sind 1024 Bytes auf der Festplatte erforderlich. Eine Ausnahme ist jedoch die starke Verbindung zu Festplatten fdisk.

In früheren Zeiten waren die Zahlen so klein, dass wir die zusätzlichen 24 Bytes auf einer KB ignorieren konnten. Mit zunehmender Kapazität divergierten jedoch die Metrik- und Binärpräfixe mehr und der Unterschied wurde nicht zu vernachlässigen. Bei der Terabyte-Skala verlieren wir fast 70 GB bei der Konvertierung. Aus diesem Grund verwenden viele Leute jetzt explizit binäre Präfixe, um Verwirrung zu vermeiden. VMWare hat sich genau dafür entschieden.

Kilo => 10^3 Mega => 10^6 Giga => 10^9 Tera => 10^12  Kibi => 2^10 (1,024) Mebi => 2^20 (1,048,576) Gibi => 2^30 (1,073,741,824) Tibi => 2^40 (1,099,511,627,776) 

In diesem Fall haben Sie also VMWare mit MiB und FDisk mit MB, sodass die Zahlen nicht übereinstimmen.

Aus der Sicht von VMWare haben Sie nach 500 MB gefragt, und Sie haben es Ihnen gegeben, aber aus Sicht von Fdisks sind es 524 MB. Die beiden Werte sind jedoch genau gleich.

Für ein 500-MB-Volume lautet die Größenberechnung:

500 * 1048576B = 524288000B => 500 MiB which equals 524MB

Für eine 500-MB-Platte lautet die Berechnung jedoch:

500 * 1000000B = 500000000B => 500MB which equals 476MiB Sie könnten also 500 MB tatsächliche Daten nicht darin speichern.

oder wie ich "Rundungsfehler" sagen möchte. Es passiert normalerweise andersherum Journeyman Geek vor 9 Jahren 0
Für "1000" verwenden Sie "kB" und nicht "KB" (wie das SI-Kilo). "2 ^ 20" ist "1048576" und nicht "10048576". 12431234123412341234123 vor 7 Jahren 0
@ 12431234123412341234123, danke. Tippfehler korrigiert. Frank Thomas vor 7 Jahren 0