To pytanie zostało wcześniej zadane w przypadku przepełnienia stosu, ale dobrzy ludzie zalecili, żebym zamiast tego spróbował społeczności tutaj.
Badam rzadkie pliki w odniesieniu do różnych systemów plików i próbuję znaleźć coś konkretnego, co stwierdza, że rzadkie pliki są obsługiwane przez Network File Systems (NFS) lub Server Message Block (SMB).
Rozumiem, że SMB jest powszechnie używany w systemie Windows i zgodnie z tym wpisem serwer SMB może obsługiwać pliki rozrzedzone, nawet jeśli podstawowy system plików nie. Jednak, jeśli mam rację, system plików, który nie obsługuje plików rzadkich, po prostu wypełniłby „dziury” zerami, co może prowadzić do problemów z wydajnością.
Jeśli chodzi o NFS, nie byłem w stanie dowiedzieć się niczego o używaniu NFS obsługujących rzadkie pliki.
Dlatego moje pytania brzmią:
Czy rzadkie pliki są obsługiwane w NFS i SMB?
źródło
dd
czyta blok po bloku i niezależnie od tego, czy bazowy system plików obsługuje pliki rzadkie, czy nie, dziury są zamieniane przez system operacyjny na zera. Wypróbuj na ext4, a zobaczysz te same liczby.dd
polecenia nad lokalnym plikiem rzadkim da znacznie szybsze wyniki. Zobacz tutaj przykład :,root@hubble:~# truncate -s 1G test.img root@hubble:~# dd if=test.img of=/dev/null bs=1M iflag=direct 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.10478 s, 10.2 GB/s
jak widać, czytanie lokalnego pliku rzadkiego daje prędkość I / O na północ od 10 GB / sdu -s
kontrals -l
, ale masz rację, że nie pomaga przy transmisji przez sieć; ale w obu przypadkach (costrace
potwierdzi)dd
odczytany jest cały plik, w tym „dziury” jako zera, z tą różnicą, że pochodzą od „zer” (po stronie serwera lub klienta). Jednak zauważyć (jak na moją odpowiedź), że NFS 4.2 jest w pełni obsługują plików rzadkich.NFS
Tak, NFS 4.2 w pełni obsługuje rzadkie pliki (zobacz ten dokument kanoniczny i tę prezentację ).
W wersjach wcześniejszych niż NFS 4.2 model klient / serwer NFS obsługiwał rzadkie pliki w tym sensie, że interfejs API obsługiwał wszystkie operacje na plikach POSIX. Oznaczało to, że zapisanie rzadkich plików na serwerze, który obsługiwał rzadkie pliki w systemie plików kopii zapasowych, spowodowało utworzenie rzadkiego pliku (zamiast przechowywania wielu zer). Ale odczytanie pliku spowodowałoby przesłanie wielu zer dla rzadkiego elementu. IE odpowiedź brzmi „częściowo”.
NFS 4.2 dodaje możliwość, aby klient widział „dziury” w plikach, a zatem serwer nie musiał przesyłać wszystkich tych zer. Z ID:
Pomimo faktu, że specyfikacja obsługuje rzadkie pliki, leniwy implementator może uniknąć implementacji obsługi rzadkich plików na kliencie lub serwerze.
SMB
Wiem mniej o SMB, ale uważam, że obsługuje on również rzadkie pliki, jeśli ustawiony jest odpowiedni bit możliwości FS. Zobacz tutaj, aby uzyskać więcej informacji.
źródło