Zobacz wyniki ankiety: Czy jeste zainteresowany(-a) takimi postami?

Głosujących
9. Nie możesz głosować w tej sondzie
  • Tak - chetnie przeczytam wiecej

    9 100.00%
  • Nie - szkoda czasu...

    0 0%
Pokaż wyniki 1 do 5 z 5

Temat: ZFS - zady i walety... oraz inne serwerowe systemy plikow

  1. #1
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie ZFS - zady i walety... oraz inne serwerowe systemy plikow

    Hej!

    Kiedys ruszalem temat bezpiecznego niszczenia danych, teraz bezpieczne przechowywanie... ale ograniczmy sie tylko do niezawodnosci systemu plikow i rozwiazan dyskowych.

    Znam ext2/ext3, znam ReiserFS, znam XFS bardzo slabo... JFS nie znam a wielu chwali... za to poznalem ZFS od Sun'a i jestem mile zaskoczony... Potraktujcie to jako ciekawostke - nic wiecej. Jesli ktos chce cos wiecej zobaczyc to prosze o info - moze damy rade cos pokombinowac - na pewno moj Sun wrocil on-line na razie i mozna sie z nim polaczyc... moze nawet odpale pare wirtualnych stref aby mozna bylo sie pobawic nieco via ssh i poduczyc... zobaczymy.

    Zanim opisze ZFS - prosba do znajacych JFS - podzielcie sie wrazeniami.


    Glowny problem polega na tym, ze planujac system przydzielamy jakas tam przestrzen dyskowa... a co jesli nie trafimy? Trzeba bedzie dodac jakos... to zostaje nam dodac dyski i podmontowywac partycje w katalogach? Do tej porty tak bylo... Stad tez pojawiaja sie systemy plikow ktore nie sa stricte zwiazane z partycjami, czyli system plikow to nie partycja ale na przyklad kilka partycji fizycznych. W ten sposob systemy jak JFS czy ZFS moga rosnac.

    Obsluge wielkich przestrzeni dyskowych pozwala w linuxie robic LVM - mozemy logiczna przestrzen miec rozciagnieta na fizyczne napedy i tak dodawac jednosteczki skladowe do jednej lub drugiej wirtualnej partycji (w sensie systemu plikow) - jesli ten oczywiscie to obsluguje...

    Najbardziej eleganckie i proste w obsludze rozwiazanie jakie widzialem do tej pory to ZFS. Mam software RAID1 na Linuxie zrobiony w jednym z moich serwerow - dziala super... mam sprzetowy RAID0, RAID1 i RAID5 na innych serwerach, zaleznie od potrzeb, ale ZFS mnie zaskoczylo.

    ZFS nie zna pojecia dysku - zna pojecie urzadzenia dodanego do puli dyskowej (doslownie 'pool'). Urzadzenia dodaje sie do puli pojedynczo albo dodatkowo traktujac je mirror'em lub 'raidz' - mirror jak nazwa mowi trzyma te same dane na 2 dyskach i taki jeden wirtualny niby dodaje do pool'a, raidz robi cos jak RAID5 ale na 2 sposoby.

    W normalnym RAID5 trzeba miec minimum 3 dyski - jak 1 padnie to drugi nadal dziala a reszta danych jest na trzecim - tzw. dysku parzystosci. Jak mamy 9 dyskow w macierzy to w RAID5 8 dyskow daje nam pojemnosc na dane a 9 to parzystosc. Jak padna nam 2 dyski to stracilismy wszystko. To mniej wiecej odpowiednik raidz1... ale jest tryb raidz2 - prawie identyko ale ma 2 dyski parzystosci.

    Ogolnie mowiac dodajemy do pool'a dyski jako pojedyncze, mirrory na 2 lub wiecej dyskach lub raidz na 3 i wiecej... Taki pool ma jakas sobie pojemnosc i w ramach tego pool'a tworzymy system plikow ZFS nadajac mu nazwe i podajac np inny punkt montowania. Teraz dodajemy w ramach tego samego pool'a kolejny system plikow... i widzimy (df -h) ze pool ma na przyklad 2GB miejsca i kazdy system plikow w pool'u ma tez 2GB miejsca dostepne. Chodzi o to, ze system plikow nie zna pojecia partycji - on jest przypisany do pool'a a nie partycji o stalym rozmiarze.

    Teraz aby uniknac problemow... ZFS pozwala na ograniczenie wielkosci systemu plikow - klasyczna quota - 1 parametr do polecenia zfs (zfs set quota=200m pool_testowy/fs_testowy1) i po sprawie, mamy 200mb max. Jesli jednak mamy grupe userow uzywajacych tego samego pool'a (kazdy katalog domowy to osobny zystem ZFS) i kazdy moze niby uzyc cala pojemnosc pool'a to jak zagwarantowac minimalny udzial? ZFS dostarcza i to - system rezerwacji miejsca dyskowego. Miejsce zarezerwowane przez admina w jednym systemie plikow (np home jednego z userow) jest traktowane jak zajete w pool'u - jakby tam pliki - tak prosto. Do tego dodajmy jeszcze moze kompresje... ot kolejnny parametr i wszystkie pliki sa kompresowane w locie.

    ZFS zapisuje calosc w postaci transakcji ale obiektowej - nie jak inne systemy "zapisz blok XY, XZ i ZZ - OK" transakcja wykonana a dane rozwalone. Nawet sprzetowy RAID nie daje gwarancji tak na dobra sprawe. ZFS traktuje logiczny ciag zmian jako pojedyncza operacje i albo wszystko albo nic - nie ma nadpisywania plikow - kazdy zapis istniejacego pliku to wykonanie kopii i dopiero wtedy zmiana naglowka aby wskazywal na kopie a nie podmiana fragmentow pliku jak to robia inne systemy. Jest to tak zwane Copy-on-Write.

    Idzmy dalej... mamy userow, nudzi im sie bardzo...dysk zapchali i chca wiecej miejsca. Pool sie wyczerpal - trzeba rozbudowac... wiec do pool'a mozna dodac kolejne urzadzenia i pozwolic systemom plikow w nim nadal rosnac - ZFS sam bedzie wiedzial jak rozlokowac dane. Do tego mozna z urzadzen stworzyc raidz wiec dane beda rozciagniete po calej grupie dyskow. Mamy 4 dyski na starcie i dane sa zapisywane na 4 na raz... pozniej dodamy piaty, to nowe dane (CoW) beda zapisywane juz na 5 dyskach... dynamicznie sie dopasowuje do sytuacji. Oczywiscie jak w kazdym RAID mozna dodac dyski hot-spare

    Wazne jest to, ze dyski moga byc roznej pojemnosci, roznego typu itd. ZFS bardzo lubi tani sprzet i widac daje calkiem spore mozliwosci... a tych jeszcze nie koniec.

    Jak teraz zrobic backup - blyskawiczny backup plikow... Solaris ma takie cos jak snapshot - cos jak fotografia systemu plikow, tak jak on wygladal w danej chwili. ZFS ma to samo - robi snapshot zmian od poprzedniego snapshot'u. User moze zmienic plik, skasowac... a poprzednie wersje nadal znalezc w /.zfs/snapshots/<nazwa_pool'a>/<nazwa_fs>/plik_ktorego_szukam i sam go przywrocic. Admin moze przywrocic caly system plikow jednym poleceniem (zfs restore moj_pool/moj_fs@<nazwa_snapshotu>) i calosc wraca na miejsce, do identycznego stanu jak bylo, z datami plikow wlacznie. Cala operacja trwa <1sek - tak samo jak tworzenie systemu plikow o pojemnosci nawet paruset GB - ZFS jest bardzo szybki.

    Dla podsumowania tego co napisalem pare "screen'ow tekstowych".
    Kod:
    -bash-3.00# zpool list
    NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
    hackpl                  976M    223M    753M    22%  ONLINE     -
    
    -bash-3.00# zpool status
      pool: hackpl
     state: ONLINE
     scrub: none requested
    config:
    
            NAME                           STATE     READ WRITE CKSUM
            hackpl                         ONLINE       0     0     0
              /export/ZFS-media/hackpl-01  ONLINE       0     0     0
              /export/ZFS-media/hackpl-02  ONLINE       0     0     0
              /export/ZFS-media/hackpl-03  ONLINE       0     0     0
              /export/ZFS-media/hackpl-04  ONLINE       0     0     0
    
    errors: No known data errors
    Jak widac caly pool sklada sie z 4 wirtualnych (symulowanych) dyskow 256MB kazdy - to na razie tylko test... Taki pool zostal podpiety do strefy (solaris zone) jako dataset - dzieki temu admin strefy moze tworzyc sobie sam systemy plikow.

    Kod:
    root@hackpl:/$ zfs list
    NAME                    USED  AVAIL  REFER  MOUNTPOINT
    hackpl                  223M   721M  24.5K  /hackpl
    hackpl/gsg9              57K  99.9M    57K  /export/home/gsg9
    hackpl/javaman         29.5K   100M  29.5K  /export/home/javaman
    hackpl/mateo             28K   100M    28K  /export/home/mateo
    hackpl/shared-storage   223M  33.4M   223M  /export/shared-storage
    
    root@hackpl:/$ zfs set quota=none hackpl/javaman
    
    root@hackpl:/$ zfs list
    NAME                    USED  AVAIL  REFER  MOUNTPOINT
    hackpl                  223M   721M  24.5K  /hackpl
    hackpl/gsg9              57K  99.9M    57K  /export/home/gsg9
    hackpl/javaman         29.5K   721M  29.5K  /export/home/javaman
    hackpl/mateo             28K   100M    28K  /export/home/mateo
    hackpl/shared-storage   223M  33.4M   223M  /export/shared-storage
    Tutaj widac (pogrubilem) gdzie jest co... i jak javaman ma zdjeta quote jaka jest roznica Te same wyniki zwraca 'df -h'. Jesli beda jakies pytania, bedzie ciag dalszy :P na przyklad wiecej info o snapshotach... postaram sie przygotowac tez dla zainteresowanych jedna strefe na ktorej bedziecie mogli sie bawic z uprawnieniami root'a i testowac jak dziala ZFS ale to kwestia paru dni zanim bede mial czas.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  2. #2
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    Gj! Lepiej tego sie nie dalo napisac ps.moj shared storage z 200mb utyje do ok 700
    War, war never changes.

  3. #3
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Cytat Napisał GSG-9
    ps.moj shared storage z 200mb utyje do ok 700
    Hmmm chcialbym to zobaczyc

    Hehe... widac nie do konca zlapales co i jak albo najzwyczaniej zle przeczytales wartosci w kolumnach (ja tez kiepsko widze calym dniu pracy)... shared-storage w tym systemie to katalog do ktorego kazdy z userow (pokazalem tylko paru) moze zapisywac. Uzywa on tego samego pool'a ktorego uzywaja pozostale systemy plikow tworzace katalogi domowe.

    Kod:
    hackpl/shared-storage   223M  33.4M   223M  /export/shared-storage
    ten system plikow ma quote 250MB i wiecej nie uzyjesz, nawet jesli jest wolne miejsce w pool'u przy zapisie pliku dostaniesz blad 'quota exceeded' i plik sie nie zapisze.

    Postaram sie dzisiaj stworzyc strefe osobna do ktorej bede mogl Wam dac dostep na prawach root'a abyscie potestowali sobie z ZFS sami o poczuli o co chodzi. Oczywiscie dostep via ssh ale bez mozliwosci robienia polaczen na zewnatrz :P wiec jak cos to bedzie czarna skrzynka do ktorej bedziecie mogli sie podpiac i na tym sprawa sie skonczy...

    Co innego czytac, co innego samemu sprawdzic
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  4. #4
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    Cytat Napisał GSG-9 Zobacz post
    ps.moj shared storage z 200mb utyje do ok 700
    to bylo zawiadomienie a nie grozba
    co do kiepskiego widzenia to fuckt, zdarza mi sie.
    co do ZFS, widze ze to bardzo ciekawa rzecz
    War, war never changes.

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    No to dziala osobny kontenerek... jest na niego wjazd na root'a przez SSH i mozna potestowac robienie obsluge ZFS'a samemu... tworzyc system plikow, zmieniac rozmiar, ustawiac quoty, sprawdzic kompresje czy rezerwacje miejsca.

    Maszyna jest w wydzielonej sieci na fizycznie osobnym laczu. Nie kazdy tak prosto 'z ulicy' dostanie dostep ale osoby, ktore tutaj sie pojawiaja co jakis czas i powiedzmy jako-tako znam z forum beda mogly sie pobawic. Jest dostep do maszyny przez SSH ale maszyna nie ma wyjscia nigdzie do sieci. Sprzetowy firewall juz tego dopilnuje :P

    Co do obslugi 'man zfs' i bedziecie miec opis co i jak dziala... a w ogogole to warto obejrzec http://uk.youtube.com/watch?v=o3TGM0T1CvE jako wprowadzenie do ZFS na wesolo (nie ma dzwieku) oraz tutaj sciagawka po angielsku oczywiscie http://www.lildude.co.uk/zfs-cheatsheet/ ale polecenia uzywajace 'zpool' sa dla Was niedostepne raczej, tak wiec na razie interesuje Was tylko polecenie 'zfs'.

    A teraz jak dziala ZFS i co mozna zrobic live w trakcie prezentacji:
    http://pl.youtube.com/watch?v=naKd9nARAes
    http://pl.youtube.com/watch?v=hE7sLb2K51Q
    http://pl.youtube.com/watch?v=N8eu06HNj1w

    Dosc spora wada - wsparcie dla Linuxa jest... ale ZFS w linuxie jest na razie READ-ONLY...

    EDIT:
    Osoby zainteresowane sprobowaniem moga mnie zlapac na IRCu - prosze nie zostawiac PM, moja skrzynka jest juz przepelniona :P
    Ostatnio edytowane przez TQM : 09-11-2008 - 19:00
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. aplikacje typowo serwerowe
    By lukasz6547 in forum Off Topic
    Odpowiedzi: 5
    Autor: 08-30-2008, 15:23
  2. Systemy na routerkach
    By javaman in forum Hacking
    Odpowiedzi: 1
    Autor: 04-03-2008, 10:45
  3. Ustawianie klucza oraz sniffing jako serwer
    By Khazar in forum Wardriving
    Odpowiedzi: 3
    Autor: 02-03-2008, 11:49
  4. Ralink Wireless LAN card V2 oraz packet injection?
    By pitt6ull in forum Wardriving
    Odpowiedzi: 2
    Autor: 09-07-2007, 16:30
  5. Inne ip
    By tasior123 in forum Newbie - dla początkujących!
    Odpowiedzi: 6
    Autor: 07-17-2007, 17:38

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj