Large File Support (sind 2GB wirklich large?)
Hallo, ich bin kürzlich unter SuSE-Linux an ein Limit gestossen, das mich doch ziemlich überrascht und auch enttäuscht hat: das Limit von 2GB pro Datei. Heutzutage, wo eine 100GB-Platte nichts besonderes mehr ist, kann man das schnell erreichen, z.B. bei einer Differenzsicherung auf Platte mittels tar oder für eine virtuelle Platte unter VMware. Nun habe ich versucht, mit Schlau zu machen, bin aber nicht so recht weitergekommen. SuSE verweist in der SDB auf http://www.suse.de/~aj/linux_lfs.html, aber ich finde das etwas verworren. Wenn ich das richtig verstehe, dann sollte etwa SuSE 8.0 grundsätzlich keine Probleme haben (Kernel ok, Glibc ok, Filesystem ok). Aber andererseits verstehe ich es so, daß alle Anwendungsprogramme auch entsprechend kompiliert sein müssen, damit es geht. Ein normales tar(1) oder dd(1) bricht bei mir jedenfalls nach 2GB ab. Nun habe ich versucht, tar neu zu übersetzen mit --enable-large-files, aber auch das hat nichts gebracht. Kann mir jemand sagen, wie ich - zumindest mit einigen Programmen wie tar oder dd - Dateien über 2GB unter SuSE 8.0 anlegen kann? Und interessant wäre auch, warum das noch nicht Standard ist, wo doch sogar ext2 keinerlei Probleme mit solchen Dateien hat. Auch bei der SuSE Enterprise Edition habe ich keine eindeutige Aussage gefunden, daß sie Large Files uneingeschränkt unterstützt. Grüße Michael
Hallo, * On Sat, Apr 20, 2002 at 11:35 AM (+0200), Michael Gengenbach wrote:
Nun habe ich versucht, mit Schlau zu machen, bin aber nicht so recht weitergekommen.
SuSE verweist in der SDB auf http://www.suse.de/~aj/linux_lfs.html, aber ich finde das etwas verworren. Wenn ich das richtig verstehe, dann sollte etwa SuSE 8.0 grundsätzlich keine Probleme haben (Kernel ok, Glibc ok, Filesystem ok).
Ich habe es gerade hier auf meiner SuSE 7.2 getestet. Als Kernel habe ich einen selbst kompilierten "2.4.19-pre3-ac4" laufen, als Dateisysteme kommen hier "ext2" und "ext3" zum Einsatz, getestet habe ich allerdings nur unter "ext2". Zumindest hier kann ich mit "tar" ohne weiteres z.B. eine etwa 10 GB große Datei erzeugen: | steffen@pc01:~ > dir 12345.tar | -rw-r--r-- 1 steffen users 9891317760 Apr 20 12:08 12345.tar Mit "dd" geht's genauso.
Aber andererseits verstehe ich es so, daß alle Anwendungsprogramme auch entsprechend kompiliert sein müssen, damit es geht. Ein normales tar(1) oder dd(1) bricht bei mir jedenfalls nach 2GB ab.
Welches File-System hast Du denn im Einsatz?
Nun habe ich versucht, tar neu zu übersetzen mit --enable-large-files, aber auch das hat nichts gebracht.
Ich habe hier kein "tar" selber kompiliert, sondern verwende das, was bei SuSE 7.2 dabei war (alle SuSE-Updates sind jedoch eingespielt). Hast Du vielleicht ein "reiserfs" in der alten Version (3.5.x) laufen, aber da müsstest Du dann bis max. 4 GB gehen können (2^32 - 1)? Oder vielleicht ein altes "ext2", das noch aus Kernel 2.2-Zeiten stammt? Gruß, Steffen
On Sat, Apr 20, 2002 at 11:35:14AM +0200, Michael Gengenbach wrote: Hi,
ich bin kürzlich unter SuSE-Linux an ein Limit gestossen, das mich doch ziemlich überrascht und auch enttäuscht hat: das Limit von 2GB pro Datei. Heutzutage, wo eine 100GB-Platte nichts besonderes mehr ist, kann man das schnell erreichen, z.B. bei einer Differenzsicherung auf Platte mittels tar oder für eine virtuelle Platte unter VMware. Also so weit ich informiert bin, liegt das ganz einfach am Filesystem. Ext3 und Ext3 können INHO nur 2GB Dateien adressieren. Zumindest auf einem ix86 Maschine, da die Prozessoren nun mal nur 32-Bittig sind und daher einfach nicht mehr wie 2^32 adressieren können. (Auf Alphas sieht die Sache wohl anders aus..=
SuSE verweist in der SDB auf http://www.suse.de/~aj/linux_lfs.html, aber ich finde das etwas verworren. Wenn ich das richtig verstehe, dann sollte etwa SuSE 8.0 grundsätzlich keine Probleme haben (Kernel ok, Glibc ok, Filesystem ok). Die SuSE 8.0 verwendet ja (Standartmässig) wohl auch ReiserFS und icb der anders adressiert weiss ich nicht...
Nun habe ich versucht, tar neu zu übersetzen mit --enable-large-files, aber auch das hat nichts gebracht. Naja wenn das FS nicht mehr macht bringt das Kompilieren wohl nix..
Kann mir jemand sagen, wie ich - zumindest mit einigen Programmen wie tar oder dd - Dateien über 2GB unter SuSE 8.0 anlegen kann? Naja, also was ich weiss ist, dass JFS Dateien bis (ich glaube) 32PByte verwalten kann..;-)) Aber deswegen das FS wechseln.. ??
Und interessant wäre auch, warum das noch nicht Standard ist, wo doch sogar ext2 keinerlei Probleme mit solchen Dateien hat. Auch bei der SuSE Enterprise Edition habe ich keine eindeutige Aussage gefunden, daß sie Large Files uneingeschränkt unterstützt. Naja, wie gesagt, glaub ich kann extX von der Adressierung her nicht mehr.
CU Martin -- Warum hat mich niemand erinnert, eine Feuerversicherung abzuschließen? Nero
Am 20.04.2002 um 13:02 schrieb Martin Kropfinger:
Also so weit ich informiert bin, liegt das ganz einfach am Filesystem. Ext3 und Ext3 können INHO nur 2GB Dateien adressieren. Zumindest auf einem ix86 Maschine, da die Prozessoren nun mal nur 32-Bittig sind und daher einfach nicht mehr wie 2^32 adressieren können. (Auf Alphas sieht die Sache wohl anders aus..=
Definitiv nicht richtig. Aus Interesse habe ich mal versucht, eine Datei >2GB auf meiner /home-Partition, welche euf ext3 läuft, anzulegen. SuSE-Linux 7.1 mit 2.4.19-pre5aa1 auf einem i386-System. Geht völlig problemlos: dennis@leonov:~ > dd if=/dev/zero of=file bs=1G count=5 5+0 Records ein 5+0 Records aus dennis@leonov:~ > ls -l file -rw-r--r-- 1 dennis users 5368709120 Apr 20 13:20 file dennis@leonov:~ > mount | grep /home /dev/loop5 on /home type ext3 (rw)
Die SuSE 8.0 verwendet ja (Standartmässig) wohl auch ReiserFS und icb der anders adressiert weiss ich nicht...
Wenn ich mich richtig erinnere unterstützt ReiserFS nur erst ab den 3.6er Versionen Dateien > 2GB.
Naja wenn das FS nicht mehr macht bringt das Kompilieren wohl nix..
Die kleinen Dienstprogramme sind auch bei meiner 7.1 schon in der Lage mit großen Dateien umzugehen. MfG, Dennis -- Dennis Stosberg eMail: dennis@stosberg.net pgp key: http://stosberg.net/dennis.asc icq: 63537718
On Sat, Apr 20, 2002 at 01:33:33PM +0200, Dennis Stosberg wrote: Hi,
Also so weit ich informiert bin, liegt das ganz einfach am Filesystem. Ext3 und Ext3 können INHO nur 2GB Dateien adressieren. Zumindest auf einem ix86 Maschine, da die Prozessoren nun mal nur 32-Bittig sind und daher einfach nicht mehr wie 2^32 adressieren können. (Auf Alphas sieht die Sache wohl anders aus..= Definitiv nicht richtig. Aus Interesse habe ich mal versucht, eine Datei >2GB auf meiner /home-Partition, welche euf ext3 läuft, anzulegen. SuSE-Linux 7.1 mit 2.4.19-pre5aa1 auf einem i386-System. Geht völlig problemlos: Hmm.. Danke für die Info! ;-) Naja, dann werd ich mich wohl bei der "Linux Intern"-Redaktion beschweren müssen. ;-)) Steht nämlich so in der Ausgabe 3/2001 drin. ;-))
CU Martin -- Es gibt keine Tatsachen... Tatsachen sind nur Meinungsbilder die eine grosse Masse teilt.
Hallo, * On Sat, Apr 20, 2002 at 01:54 PM (+0200), Martin Kropfinger wrote:
Naja, dann werd ich mich wohl bei der "Linux Intern"-Redaktion beschweren müssen. ;-)) Steht nämlich so in der Ausgabe 3/2001 drin.
Vielleicht haben sie es damals auf eine Distribution bezogen, die noch nicht entsprechend "ausgerüstet" war (z.B. bzgl. Kernel, glibc und bei- gefügte Software). 3/2001 dürfte ja schon 'ne Weile her sein... ;-) Gruß, Steffen
Am Samstag, 20. April 2002 11:35 schrieb Michael Gengenbach:
Hallo,
Kann mir jemand sagen, wie ich - zumindest mit einigen Programmen wie tar oder dd - Dateien über 2GB unter SuSE 8.0 anlegen kann?
ich verwende SuSE 8 Standardkernel, habe aber für das Dateisystem explizit reiserfs 3.6 angegeben. Damit funktionierts bei mir. Gruß Kai
Michael Gengenbach [ 20.04.2002 11:35:14 +0200]:
Und interessant wäre auch, warum das noch nicht Standard ist, wo doch sogar ext2 keinerlei Probleme mit solchen Dateien hat.
Das sind zwei Paar Schuhe! Zunächst einmal muss natürlich das entsprechende Dateisystem Dateien > 2GiB unterstützen und der Kernel muss damit natürlich auch umgehen können (Stichwort 2 TB max. für Block-Geräte, obwohl Dateisysteme wie ext2, reiserfs, jfs und xfs mit mehr umgehen können). Damit aber ein Programm damit umgehen kann, muss es nicht nur neu kompiliert werden (Datenstrukturen wie z.B. die stat Struktur ändern sich), sondern ggfs. auch selbst im Code geändert werden, da u.U. halt Datentypen verwendet wurden, die jetzt zu klein sind, da z.B. Dateigrösse und -Offset 64 statt wie bisher 32 Bit gross sind. Wenn das Programm die Grösse z.B. in einem long int speichert (auf 32 Bit Architekturen eben 32 Bit gross), passt da nur der halbe Wert rein.
Auch bei der SuSE Enterprise Edition habe ich keine eindeutige Aussage gefunden, daß sie Large Files uneingeschränkt unterstützt.
Wie sollen wir eine solche Aussage auch machen? Wir können nicht jedes Programm darauf testen, ob es nun Dateien > 2 GiB unterstützt. Die Web-Seite von Andreas Jaeger gilt übrigens genauso für den Enterprise Server. Philipp
participants (6)
-
Dennis Stosberg
-
Kai Lindenberg
-
Martin Kropfinger
-
Michael.Gengenbach@t-online.de
-
Philipp Thomas
-
Steffen Moser