Czy można odłączyć i ponownie podłączyć dysk ZFS bez konieczności posiadania pełnego resilvera?


10

Mam pulę lustrzaną ZFS z czterema dyskami ogółem. Dwa z tych dysków są przeznaczone do obracania kopii zapasowych poza siedzibą firmy. Oczekiwałem, że po wstępnym resilveringu mogę, detacha później attachdysk, i wykonam tylko resilver przyrostowy - jednak w testach wydaje się, że wykonuje pełny resilver niezależnie od tego, czy dysk, który jest podłączony, zawiera już prawie całą pulę zawartość.

Czy użycie metody offline/ onlinedałoby mi pożądany wynik tylko aktualizacji dysku - a nie jego pełnej odbudowy? Czy też, aby ta praca była zgodna z oczekiwaniami, czy muszę zrobić coś zupełnie innego - na przykład użyć każdego dysku z kopią zapasową jako puli 1-dyskowej i sendudostępnić mu najnowsze migawki za każdym razem, gdy trzeba go zaktualizować?


5
-1 Nie odłączaj / nie podłączaj dysków do tworzenia kopii zapasowych, użyj poleceń wysyłania / odbierania zgodnie z zamierzeniami projektantów ZFS.
Chris S

2
@ChrisS zamiast -1 co powiesz na napisanie odpowiedzi z kilkoma cytatami. Wygląda na to, że mówisz, że jedynymi opcjami tworzenia kopii zapasowych jest pula online gdzie indziej - dobrze byłoby wiedzieć, czy to prawda, ale podejrzewam, że tak nie jest.
STW

1
Niestety, nie zamierzam być aroganckim palantem, ale błąd serwera powinien być przeznaczony tylko dla profesjonalnych administratorów systemu (i in.). Metoda tworzenia kopii zapasowych jest tak całkowicie niemożliwa do zarządzania, podatna na błędy i nieprofesjonalna, że ​​nie należy jej uważać za wykonalną metodę tworzenia kopii zapasowych. Sugeruję, aby sformatować dwa dyski kopii zapasowej w dowolnym systemie plików i użyć zfs sendpolecenia, aby pobrać pełne lub przyrostowe strumienie kopii zapasowych zapisane na dyskach kopii zapasowej lub użyć zfs recvdo utworzenia duplikatu dysku. Zdecydowanie polecam użycie jakiegoś oprogramowania do zarządzania tym procesem.
Chris S

Myślę, że twoje punkty są prawidłowe, głosuję za odpowiedzią. Zastanawiam się nad przepisaniem mojego pytania, aby mniej skupić się na moim konkretnym scenariuszu (który powstaje z niefortunnego budżetu na niekrytyczny, ale ważny serwer wewnętrzny) i bardziej na zasadzie „czy mogę ponownie podłączyć dysk bez wymagania pełnego resilvering? ”
STW

Odpowiedzi:


14

Nie idź dalej, niszcząc tablicę ZFS, aby „obracać” dyski poza siedzibą. Jak widzieliście, czas odbudowy jest wysoki, a proces resilveringu odczyta / zweryfikuje użyty rozmiar zestawu danych.

Jeśli masz taką możliwość, migawki i wysyłanie danych do zdalnego systemu to czyste, nieinwazyjne podejście. Podejrzewam, że możesz przejść przez proces posiadania dedykowanej puli pojedynczych dysków, kopiowania do niej i eksportowania / importowania zpool ... ale to nie jest zbyt eleganckie.


Niestety nie mogę użyć metody snapshot-> send, ponieważ nie mam sprzętu ani przepustowości, aby uruchomić drugi serwer ZFS poza siedzibą. Wydaje się jednak, że korzystanie z trybu offline / online będzie działać, z kompromisem, że status zgłasza się jako zdegradowany. Zobaczę, jak będzie przez następny tydzień.
STW

1
Zrozumiany. Ale wyciąganie uruchomionych dysków z systemu jako formy kopii zapasowej nie jest solidnym rozwiązaniem. Twoje ryzyko drastycznie wzrasta, gdy to zrobisz.
ewwhite

Dobrze, mój plan polega na wyłączeniu ich z trybu offline, zawieszeniu ich, odsunięciu tacy wymiany, a następnie poświęceniu minuty na całkowite zatrzymanie przed całkowitym wyciągnięciem
STW

1
Czy możesz obsługiwać drugi serwer na miejscu (lub nawet drugą tablicę ZFS na tym samym serwerze)? Umieść w nim swoje zatoki Hotswap, zsynchronizuj je z główną i zsynchronizuj całą kopię zapasową macierzy ZFS do / z serwera jako jednostki.
Dan Is Fiddling By Firelight

11

Po dalszych eksperymentach znalazłem uczciwe rozwiązanie, jednak wiąże się to ze znacznym kompromisem. Dyski, które zostały offlineodłączone, ale nie mogą zostać odłączone, można później przywrócić do trybu online, wykonując tylko przyrostową operację resilveringu („ Po przełączeniu urządzenia do trybu online wszelkie dane zapisane w puli są ponownie synchronizowane z nowo dostępnym urządzeniem ”). W moich testach skraca to czas resilveringu dla kopii lustrzanej na 3 dyskach z 28 godzin do nieco ponad 30 minut, przy około 40 GB delta danych.

Kompromis polega na tym, że każda pula z dyskiem offline zostanie oznaczona jako zdegradowana. Pod warunkiem, że nadal istnieją co najmniej dwa dyski online (w puli lustrzanej), jest to ostrzeżenie - integralność i redundancja pozostają nienaruszone.

Jak wspomnieli inni, to ogólne podejście jest dalekie od ideału - wysyłanie migawek do zdalnej puli byłoby znacznie bardziej odpowiednie, ale w moim przypadku nie jest to możliwe.

Podsumowując, jeśli musisz usunąć dysk z puli, a następnie dodać go z powrotem bez konieczności pełnego resilverowania, zalecam następujące podejście:

  • offline dysk w puli: zpool offline pool disk
  • obróć napęd (jeśli ma być fizycznie wyciągnięty): hdparm -Y /dev/thedisk
  • pozostaw pulę w stanie zdegradowanym, gdy dysk jest wyprostowany
  • aby dodać dysk z powrotem do puli: zpool online pool disk

A ponieważ nie zostało to jeszcze przetestowane, istnieje ryzyko, że operacja resilverowania delta nie będzie dokładna. W puli „na żywo” i / lub dyskach offline mogą wystąpić problemy. Zaktualizuję, jeśli mi się to przydarzy, ale na razie eksperymentuję z tym podejściem.


1
Jeśli resilver ma zamiar wprowadzić błędy danych, zostaną one wyleczone automatycznie w miarę upływu czasu lub po scrubowaniu zpool.
the-wabbit

Uświadomiłem sobie wartość peelingu; Czekam, aż po pomyślnym przejściu do trybu offline i usunięciu dysku z kopią zapasową
STW

2
Szybka aktualizacja: w ciągu ostatniego roku to podejście działało wystarczająco dobrze. Comiesięczne testy przywracania kopii zapasowej poza siedzibą były udane i spójne. Obracanie tablicy (zamiast pojedynczego dysku) byłoby lepsze, aby zapewnić poziom nadmiarowości w kopii zewnętrznej i zaleciłbym to zrobić, jeśli to możliwe. Ogólnie rzecz biorąc, jest to nadal hackerskie podejście i niesie ze sobą pewne ryzyko, ale zapewniło względnie bezpieczne i niedrogie tworzenie kopii zapasowych naszych danych poza siedzibą firmy.
STW

Argumentowałbym przeciwko obróceniu wszystkich dysków w macierzy, ponieważ transport może powoli uszkodzić je wszystkie. Nie wykonałbym rotacji, nawet gdyby dyski pozostały na miejscu.
Costin Gușă

2

Aktualizacja 15 października 2015 r .: Dzisiaj odkryłem zpool splitpolecenie, które dzieli nową pulę (o nowej nazwie) z istniejącej puli. splitjest znacznie czystszy niż offlinei detach, ponieważ obie pule mogą wtedy istnieć (i być czyszczone osobno) w tym samym systemie. Nową pulę można również wyczyścić (i odpowiednio) export[ed]przed odłączeniem od systemu.

(Mój oryginalny post znajduje się poniżej.)

Ostrzeżenie! Różne komentarze na tej stronie sugerują, że jest to możliwe (lub może być) dla zpool detachdysku, a następnie w jakiś sposób ponownie podłącz dysk i uzyskaj dostęp do danych w nim zawartych.

Jednak zgodnie z tym wątkiem (i własnym eksperymentem) zpool detachusuwa „informacje o puli” z odłączonego dysku. Innymi słowy, a detachjest jak szybkie formatowanie dysku . Po tym, jak detachwiele danych nadal może znajdować się na dysku, ale praktycznie niemożliwe będzie ponowne zamontowanie dysku i wyświetlenie danych jako użytecznego systemu plików.

W związku z tym wydaje mi się, że detachjest bardziej destrukcyjny niż destroy, jak sądzę, zpool importmoże odzyskać zniszczone baseny!

detachJest nieumount , anizpool export , anizpool offline .

W moim eksperymencie, jeśli najpierw zpool offlineurządzenie, a następnie zpool detachto samo urządzenie, reszta puli zapomina, że ​​urządzenie kiedykolwiek istniało. Ponieważ jednak samo urządzenie było offline[d]wcześniej detach[ed], samo urządzenie nigdy nie jest powiadamiane o detach. Dlatego samo urządzenie nadal ma informacje o swojej puli i może zostać przeniesione do innego systemu, a następnie import[ed](w stanie zdegradowanym).

Dla dodatkowej ochrony detachmożesz nawet fizycznie odłączyć urządzenie po wydaniu offlinepolecenia, ale jeszcze przed wydaniem detachpolecenia.

Mam nadzieję, że użyję tego offline, a detachnastępnie importrozpocznę tworzenie kopii zapasowej mojej puli. Podobnie jak w przypadku oryginalnego plakatu, planuję używać czterech dysków, dwóch w stałym lustrze i dwóch do comiesięcznych, rotacyjnych kopii zapasowych poza witryną (i offline). Sprawdzę każdą kopię zapasową, importując ją i szorując w osobnym systemie, przed przetransportowaniem poza miejsce. W przeciwieństwie do oryginalnego plakatu nie mam nic przeciwko przepisywaniu całego dysku kopii zapasowej co miesiąc. W rzeczywistości wolę kompletne przepisywanie, aby mieć świeże bity.


0

Czy na tej samej maszynie próbowałeś utworzyć nową pulę z 2 dyskami w lustrze? Następnie utwórz migawkę w puli roboczej, a następnie wyślij tę migawkę do nowej puli, powtórz, a następnie następne wysyłanie migawki będzie przyrostowe. Nie jest tak samo z „wysyłaniem danych do zdalnego systemu”, ponieważ jest to pula w tym samym systemie / serwerze / maszynie. Dzięki tej konfiguracji możesz nadal stosować zpool split / offline / detach / attach, ale robisz to tylko w drugiej (kopiującej) puli, a nie w puli źródłowej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.