Konwersja LVM / EXT4 na ZFS bez utraty danych

3

Mam domowy serwer mediów z dyskami 2 x 3 TB. Obecnie jest skonfigurowany przy użyciu mdraid (1), LVM i EXT4. Konfiguracja została wykonana przy użyciu instalatora ncurses Ubuntu Server.

Cel

Konwertuj ustawienia, aby używać ZFS (RAIDZ) i dodaj trzeci dysk 3 TB. Chcę włączyć kompresję i deduplikację w locie. Konwersja nie powinna wymagać ponownej instalacji Ubuntu i wszystkich pakietów. Nie powinno być utraty danych (chyba że dysk ulegnie awarii podczas procesu).

Jak mam to zrobic?

Pytanie dodatkowe, czy lepiej jest to zrobić za pomocą btrfs, ponieważ, jak rozumiem, mogę zainicjalizować tablicę jednym dyskiem, skopiować dane, a następnie dodać drugi dysk za pomocą btrfs, ale nie z zfs?

mój / proc / mdstat:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md4 : active raid1 sdb2[1] sda2[0]
      2930070069 blocks super 1.2 [2/2] [UU]

unused devices: <none>

mój pvs -v

    Scanning for physical volume names
  PV         VG   Fmt  Attr PSize PFree DevSize PV UUID
  /dev/md4   Data lvm2 a-   2,73t    0    2,73t MlZlTJ-UWGx-lNes-FJap-eEJh-MNIP-XekvvS

moje urządzenia lvs -a -o +

  LV     VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert Devices
  Data   Data -wi-ao  2,68t                                       /dev/md4(13850)
  Swap   Data -wi-ao  7,54g                                       /dev/md4(11920)
  Ubuntu Data -wi-ao 46,56g                                       /dev/md4(0)
Maciej Swic
źródło
Jeśli zależy ci na danych, nie próbuj konwertować systemu plików bez tworzenia kopii zapasowej! Zdobądź trzeci dysk, spróbuj tam dopasować dane (zależy ci). Utwórz raidz1 w trybie zdegradowanym (nie jesteś pewien, czy możesz uruchomić system z jednego w Linuksie, wystąpiły problemy podczas uruchamiania w BSD), skopiuj rzeczy z powrotem i przywróć je, dodając trzeci dysk.
jpe
Nie dbam o rzeczy że dużo, głównie chcę zaoszczędzić czas konieczności ponownej instalacji. Czy mogę utworzyć zdegradowany RAIDZ za pomocą jednego dysku, a następnie dodawać do niego dyski? Czy jest to miejsce, w którym btrfs się wyróżnia? (RAID-5)
Maciej Swic
1
Btrfs mogą robić to, co chcesz bezpośrednio, zfs wymaga kilku starannie wybranych kroków pośrednich, takich jak na przykład tutaj opisane: pcaddicts.ca/rc/2010/05/20/…
jpe
Zaczynam myśleć, że btrfs jest sposobem na to, żeby tu pójść. wiki.kernerl.org wymienia je teraz jako stabilne. Czy btrfs-convert może wykonać dla mnie całą pracę? Czy mam rację, jeśli myślę, że mogę konwertować tylko moją partycję danych, nawet jeśli używam lvm i uruchamiam się z partycji rozruchowej na tym samym lvm, co partycja danych?
Maciej Swic
Btrfs-convert może przejść z ext4 do btrfs, jeśli masz szczęście, ale LVM pozostanie pod spodem. Zaoszczędzisz czas na ponowną instalację lub uruchomienie systemu z małego dysku SSD lub karty SD. Konwersja systemów plików to loteria: bbs.archlinux.org/viewtopic.php?id=175866
jpe

Odpowiedzi:

0

Krótki:

  • Myślę, że nie ma konwersji na miejscu ext4 na ZFS.

  • Dla serwerów multimedialnych polecam SnapRAID zamiast

Dłużej:

ZFS używa bardzo unikalnej i bardzo specjalnej struktury wewnętrznej, która nie pasuje dobrze do struktury ext4. (Przeczytaj: Być może ktoś mógłby stworzyć jakąś sztuczną strukturę ZFS na wierzchu niektórych ext4, ale wątpię, aby ta konwersja była szybka, niezawodna i łatwa w użyciu).

SnapRAID nie potrzebuje jednak konwersji. Po prostu użyj go z (prawie) dowolnym istniejącym systemem plików, aby utworzyć nadmiarowość dla plików tam, aby można było sprawdzić i odzyskać pliki w przypadku awarii dysku lub (cichej) awarii.

Za I przeciw:

  • SnapRAID jest nieefektywny, jeśli musi tworzyć nadmiarowość dla wielu małych plików, ponieważ każdy plik tworzy pewien nadmiar (wypełnienie) w parzystości.

  • SnapRAID nie oferuje samej kompresji.
    Na serwerze multimedialnym zazwyczaj nie potrzebujesz kompresji, ponieważ zwykle jest to nośnik już skompresowane (MP4, JPG, PDF).
    Jeśli zdarzy ci się użyć jakiegoś systemu plików, który umożliwia kompresję, możesz go użyć. Ale tylko na poziomie urządzenia, a nie na całej puli (jak ZFS).

  • SnapRAID nie oferuje deduplikacji na poziomie bloku.
    Na serwerze multimedialnym snapraid dup funkcja zwykle wystarcza, ponieważ pliki multimedialne zwykle nie udostępniają wielu duplikatów bloków. (Wyjątek: youtube-dl. Jeśli pobierzesz film dwa razy z tą samą jakością, różni się tylko kilkoma bajtami. Nie zawsze. Ale dość często. Po prostu zachowaj identyfikator wideo YouTube w nazwie pliku, aby zidentyfikować dwa podobne pliki.)

  • Deduplikacja ZFS wymaga dużo pamięci. Zaplanuj 1 GiB RAM na dane 1 TiB, lepiej więcej!
    Jeśli nie ma wystarczającej ilości pamięci RAM, musisz dodać hiperszybkie urządzenie pamięci podręcznej SSD. ZFS musi wyszukać 1 losowy sektor na napisany blok deduplikacji, więc z „tylko” 40 kIOP / s na dysku SSD, ograniczasz efektywną prędkość zapisu do około 100 MB / s. (Zwykle ZFS jest w stanie wykorzystać równoległą przepustowość wszystkich urządzeń, dzięki czemu można łatwo osiągnąć 1 GB / s i większą prędkość zapisu na sprzęcie konsumenckim dni, ale nie w przypadku włączenia deduplikacji i braku ogromnej ilości pamięci RAM.)

  • Zauważ, że nigdy nie miałem problemów z tym, aby SnapRAID był potrzebny do odzyskiwania danych.
    Nie mogę więc przysiąc, że SnapRAID naprawdę potrafi odzyskać dane. Jednak miałem już dość problemów, gdy SnapRAID był pomocny w zapewnieniu że dane były poprawne i odniosłem wrażenie, że SnapRAID naprawdę działa.

  • Na ZFS musisz planować z wyprzedzeniem. Musisz znać i planować każdy aspekt cały cykl życia dysku ZFS z wyprzedzeniem, przed rozpoczęciem ZFS.
    Jeśli możesz to zrobić, nie ma lepszego rozwiązania niż ZFS, zaufaj mi!
    Ale jeśli zapomnisz o czymś, co w przyszłości stanie się nieplanowane, jesteś skazany. Następnie musisz ponownie uruchomić komputer od ZFS:
    Utwórz nową, świeżą i niezależną pulę ZFS i przenieś tam wszystkie dane.
    ZFS wspiera Cię w tym. Ale nie można uniknąć kopiowania danych tymczasowo. Jak potrzebujesz podczas wprowadzania ZFS.

  • Administrowanie ZFS jest proste. Jedyne, co musisz robić regularnie, to:
    zpool scrub
    To wszystko. Następnie zpool status mówi, jak rozwiązać problem.
    (Ponad 10 lat ZFS teraz. W Linuksie. Mówiąc krótko: ZFS to ratownik.)

  • OTOH na SnapRAID, nie potrzebujesz żadnego planowania. Po prostu to zrób. I zmieniaj swoją strukturę, gdy tylko zajdzie taka potrzeba.
    Więc nie musisz kopiować swoich danych, aby zacząć od SnapRAID. Po prostu dodaj napęd parzystości, skonfiguruj i tutaj.

  • Ale SnapRAID jest o wiele trudniejszy do zarządzania w przypadku kłopotów.
    Musisz nauczyć się korzystać snapraid sync, snapraid scrub, snapraid check i snapraid fix. snapraid status jest pomocą w większości przypadków, ale często pozostajesz zagadkowy, jaki może być właściwy sposób naprawienia czegoś, ponieważ nie ma oczywistego jeden najlepszy sposób (SnapRAID jest jak szwajcarski nóż wojskowy, ale musisz wiedzieć siebie, jak prawidłowo prawidłowo go obsługiwać).

  • Zauważ, że w systemie Linux masz dwie różne opcje ZFS:

    • ZFSonLinux, który jest rozszerzeniem jądra.
      Nowsze jądra, które zobaczysz na Ubuntu 20.04 prawdopodobnie będą niekompatybilne.
    • ZFS-FUSE, który zazwyczaj jest nieco wolniejszy, jest niezależny od jądra.
    • Obie mają zalety i wady, to jest poza zakresem tej odpowiedzi.
    • Jeśli ZFS nie jest dostępny (być może chcesz coś naprawić), wszystkie twoje dane są niedostępne.
    • Jeśli urządzenie zawodzi, w zależności od zastosowanej nadmiarowości, albo wszystkie dane są w pełni dostępne, albo wszystkie dane są całkowicie utracone.
  • SnapRAID to GPLv3 i całkowicie dodatek do przestrzeni użytkownika.

    • Jeśli SnapRAID nie jest dostępny, wszystkie Twoje dane są nadal nienaruszone i dostępne.
    • Jeśli urządzenie nie działa, wszystkie dane na innych urządzeniach są nadal nienaruszone i dostępne.

Zasadniczo serwer multimediów ma właściwość przechowywania starych danych i stale rośnie. Właśnie tak zaprojektowano SnapRAID.

  • Snapraid pozwala później dodawać nowe dyski lub nawet nowe parytety.

  • Możesz mieszać różne systemy plików na wszystkich dyskach. SnapRAID po prostu dodaje nadmiarowość.

  • SnapRAID nie jest przeznaczony do tworzenia kopii zapasowych.
    W archiwach Media często nie potrzebujesz kopii zapasowej.

  • ZFS RAIDZ również nie jest przeznaczony do tworzenia kopii zapasowych.
    jednak zfs send w połączeniu z zfs snapshot oferuje niektóre bardzo łatwa w użyciu funkcja tworzenia kopii zapasowych i przywracania w trybie 24/7.

  • ZFS jest przeznaczony dla systemów plików, w których kluczowe jest, aby nigdy nie miały przestój. Prawie wszystko można naprawić w locie bez przestojów.
    Przestoje występują tylko w przypadku, gdy nie ma już nadmiarowości / samonaprawiania ZFS zdolny naprawić uszkodzenia. Ale nawet wtedy ZFS jest więcej niż pomocny, i wyświetla listę wszystkich utraconych danych. Zazwyczaj.

  • OTOH SnapRAID może odzyskiwać dane, ale odbywa się to w trybie offline.
    Tak więc do odzyskania dane nie są dostępne.
    Pomocne jest również sprawdzenie, które dane zostały utracone. Ale to jest trudniejsze, niż z ZFS.

Rekomendacja najlepszych praktyk ze SnapRAID (ZFS wykracza poza tę odpowiedź):

  • Zostań z LVM!
    • Spraw, aby każdy napęd był pełnym PV. Brak tablicy partycji.
      Jeśli chcesz zaszyfrować dysk, umieść PV w kontenerze LUKS.
    • Umieść każdy taki PV w swoim własnym VG. W ten sposób uszkodzony dysk nie szkodzi innym VG.
      Możesz agregować kilka mniejszych dysków w podobny rozmiar
    • Stwórz kilka podobnych LV na wszystkich tych VG.
    • Utwórz kilka dysków Parity, które są większe niż dyski z danymi.
    • Pozostaw wystarczającą ilość miejsca (100 GB) na VG do tworzenia migawek i małe korekty systemów plików.
    • Na końcu każdego PV powinno być wolne miejsce (zobacz wystarczająco dużo miejsca powyżej).
      Dotyczy to nowoczesnych systemów plików, które na koniec tworzą superbloki. Jeśli całkowicie wypełnisz PV, te FS (ZFS) mogą wykryć cały dysk lub PV zamiast LV.
  • Stwórz wybrany FS dla swoich napędów danych w tych LV.
  • Użyj ZFS dla napędów parzystości w LV. Nie ma tu potrzeby kompresji / deduplikacji.
    Zauważ, że nie jest to idealne rozwiązanie, ponieważ ZFS zwykle tworzy swój FS /.

Jak skonfigurować i administrować SnapRAID wykracza poza zakres tej odpowiedzi.

Dlaczego ZFS na parzystość:

Cóż, gdy napęd danych się psuje (sektory nieczytelne), można skopiować czytelne pliki. Nieczytelne pliki są łatwo odnajdywane. Następnie możesz go odzyskać.

Jednak parzystość SnapRAID to tylko jeden duży plik. Jeśli skopiujesz ten plik, chcesz aby mieć pewność, nie ma cichego zepsucia. ZFS zapewnia to niezależnie od SnapRAID. W przypadku korupcji ZFS mówi ci, że wiesz musisz sprawdzić plik parzystości.

Sprawdzanie kompletnego pliku w przypadku niektórych wadliwych sektorów trwa całe wieki, ponieważ wszystkie dane ze wszystkich dysków muszą być w pełni odczytane.

Dlaczego nie BTRFS?

  • ZFS działa całkowicie stabilnie, cicho i bez zarzutu już od wielu lat.
  • OTOH to rok 2019, a BTRFS wciąż ma pociągi poważnych problemów.
  • Na przykład BTRFS reaguje nieprzewidywalnie i niestabilnie, jeśli wypełnisz go całkowicie, jeśli możesz go całkowicie wypełnić. W przeciwieństwie do tego, takie problemy nie są znane w ZFS.
  • Prawdopodobnie czasami osiągasz pełną parytet, jeśli nie jesteś ostrożny (SnapRAID jest trochę nieefektywny, jeśli musi umieścić wiele małych plików w parzystości).
Tino
źródło