Obecnie „reorganizuję” strukturę plików w woluminie RAIDZ1. Przenoszenie katalogów z jednego zestawu danych do drugiego, które są zawarte w tym samym woluminie.
SSH wszedł do maszyny i zrobił staromodny dobry:
cel mv *
Czy nie powinno to być natychmiastowe? Rozumiem, że jest on rozłożony na trzy dyski, ale jednocześnie same pliki tak naprawdę nie muszą się przenosić - spodziewałem się, że poprawi wskaźniki dla tych plików i, w zasadzie, natychmiast. Zdecydowanie nie. Mam około 500G danych do przeniesienia i działa już od około pół godziny. oO
Dlaczego nie jest to prawie natychmiastowe?
Specyfikacja: Procesor: Intel G3220
MB: Gigabyte GA-B85-HD3
MEM: Kingston DDR3-1600 8 GB
DYSK: 3x2 TB WD Green w woluminie RAIDZ1
Odpowiedzi:
Myślisz o rzeczach z niewłaściwego poziomu, to wszystko.
Jeśli przeniesiesz plik w ramach jednego zestawu danych ZFS, zareaguje on podobnie, jak się spodziewasz. Jeśli przenosisz plik w obrębie puli, ale między zestawami danych, jest to prawdziwy ruch. Tak, technicznie dane po prostu poszły z punktu A do punktu B i oba punkty znajdują się na tych samych talerzach - ale z punktu widzenia ZFS przeniósł domy.
Zestawy danych ZFS to osobne systemy plików. Prawdziwe systemy plików. Mogą mieć różne rozmiary bloków, ustawienia kompresji itp. Przenoszenie pliku między dwoma systemami plików ZFS, nawet w tej samej puli, jest prawdziwym ruchem - bity są czytane, a następnie ponownie zapisywane, w przeciwieństwie do samej aktualizacji wskaźnika.
Funkcjonalnie jest to w przybliżeniu analogiczne do przenoszenia pliku między dwoma systemami plików ext4, które technicznie pochodzą z 2 partycji tego samego dysku twardego - oba systemy plików, pomimo współdzielenia podstawowego sprzętu, są logicznie odmienne i dlatego nie może wystąpić żadna zmiana „wskaźnika”, musi fizycznie przenieś plik, nawet jeśli w rzeczywistości kopiuje on tylko dane z jednej lokalizacji do drugiej na tym samym dysku.
źródło