Podobne pytanie istnieje, ale rozwiązanie (użycie mv
) jest okropne, ponieważ w tym przypadku działa jako „kopiuj, a następnie usuwaj”, a nie „ruch”.
Więc stworzyłem pulę:
zpool create tank /dev/loop0
i zsynchronizowałem moje dane z innego magazynu bezpośrednio tam, aby moje dane były teraz w /tank
.
zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 591G 2.10T 591G /tank
Teraz zdałem sobie sprawę, że moje dane muszą znajdować się w podrzędnym systemie plików, a nie /tank
bezpośrednio w systemie plików.
Jak więc przenieść lub zmienić nazwę istniejącego głównego systemu plików, aby stał się on dzieckiem w puli?
Prosta zmiana nazwy nie działa:
zfs rename tank tank/mydata
cannot rename to 'tank/mydata': datasets must be within same pool
(Przy okazji, dlaczego narzeka, że zbiory danych nie znajdują się w tej samej puli, skoro w rzeczywistości mam tylko jedną pulę?)
Wiem, że istnieją rozwiązania polegające na kopiowaniu wszystkich danych ( mv
lub wysyłaniu całego zestawu danych na inne urządzenie iz powrotem), ale czy nie powinien istnieć prosty elegancki sposób?
Wystarczy zauważyć, że na tym etapie nie dbam o migawki (nie ma jeszcze żadnych do załatwienia).
źródło
Biorąc pod uwagę problem udokumentowany przez @USDMatt, wysyłanie / odbieranie ZFS jest prawdopodobnie najlepszym sposobem.
Uważaj podczas uruchamiania rm -rf, jeśli nie zmienisz punktu montowania, jeśli masz inne systemy plików w swoim zbiorniku Zpool. Nie chcesz przypadkowo usuwać rekurencyjnie zawartości nowego systemu plików (/ tank / newname) ani innych potomnych systemów plików (/ tank / *).
źródło
Nie sądzę, że istnieje prosty elegancki sposób ... chociaż możesz po prostu zmienić punkt montowania ...
A może zmień nazwę czołgu, a następnie zamontuj go tam, gdzie go potrzebujesz ...
Albo to, albo utwórz system plików we właściwym miejscu, a cp, mv lub zfs wysyłaj / odbieraj ...
źródło