Pytanie o wyłączenie usług zasadniczo zależy od samych usług:
Czy aktywnie piszą do systemu plików, który planujesz przenieść?
Czy przechowują trwałe dane, które chcesz zachować.
W każdym razie wysłanie systemu plików ZFS może zająć dużo czasu. Można zminimalizować niedostępność usług, utrzymując je online przez większość czasu w ten sposób:
utwórz migawkę
wyślij tę migawkę w sposób wcześniej sugerowany, ale zachowując wszystkie usługi aktywne
po odebraniu fs w drugiej puli wyłącz ograniczenia usług krytycznych do tego systemu plików. Upewnij się, że nowy system plików w puli docelowej nie został zmodyfikowany, ponieważ zmiany i tak zostaną odrzucone później.
utwórz drugą migawkę (np. snapshot2)
wysyłaj drugą migawkę stopniowo, to będzie znacznie szybciej niż poprzedni transfer. na przykład:
po zakończeniu przenieś punkt montowania systemu plików ze starego zestawu danych do nowego. na przykład:
zfs set mountpoint=/application/directory.old rpool/filesystem
zfs set mountpoint = / application / katalog destination / system plików
Musisz się upewnić, że żaden proces nie jest związany /application/filesystem(np. Dostęp do plików lub posiadanie go jako bieżącego katalogu), aby to osiągnąć.
Nie sądzę, że można to zrobić online, ale mój proces polegałby na zamknięciu niezbędnych usług, zrobieniu migawki i skorzystaniu z wysyłania / odbierania ZFS w celu przeprowadzenia migracji. Coś jak:
Powtarzam wiele z tego, co powiedział jlliagre, ale z dodatkami do potomnych systemów plików. (Przeważnie więc mam odniesienie, gdy zapomnę.)
Jeśli masz pod-systemy plików, będziesz chciał użyć -rflagi w poleceniu migawki zfs i flagi -rlub -Rw zfs sendpoleceniu. Wielkie litery -Rprzenoszą wszystkie właściwości , migawki i klony.
W moich eksperymentach wydawało się, że dokładnym poleceniem jest: zfs send -R Pool0 @ moving | zfs odbiera -dF Pula 1
TinkerTank
4
Przyniesie ci również korzyść w użyciu narzędzia takiego jak „mbuffer” w potoku; najwyraźniej wydajność wysyłania / odbierania ZFS znacznie się poprawia, jeśli oba końce mogą przeważnie przesyłać strumieniowo dane w sposób ciągły, a bez mbuffera (lub czegoś podobnego) uzyskuje się efekt ping-ponga, w którym jeden ciągle blokuje się na drugim.
Przyniesie ci również korzyść w użyciu narzędzia takiego jak „mbuffer” w potoku; najwyraźniej wydajność wysyłania / odbierania ZFS znacznie się poprawia, jeśli oba końce mogą przeważnie przesyłać strumieniowo dane w sposób ciągły, a bez mbuffera (lub czegoś podobnego) uzyskuje się efekt ping-ponga, w którym jeden ciągle blokuje się na drugim.
źródło