OmniOS - Macierz dyskowa RAID-Z1

Utworzenie nowej macierzy dyskowej w systemie plików ZFS jest operacją bardzo prostą i można ją wykonać w dowolnej chwili. Jedyny warunek jaki trzeba spełnić to posiadanie wolnych zasobów sprzętowych... z jednym małym wyjątkiem - mianowicie nową pulę dyskową można stworzyć nawet z pliku, co postaram się zaprezentować pod koniec tego artykułu.

Wracając do meritum: posiadam cztery puste dyski twarde: c3t2d0c3t3d0c3t4d0c3t5d0. Chcę zbudować macierz dyskową działającą na zasadzie RAID-5 posiadającą jeden dysk nadmiarowy chroniący integralność danych macierzy. Dyski te nie będą dyskami startowymi, więc nie muszę tworzyć na nich struktury partycji ani instalować MBR - dzięki temu operacja tworzenia macierzy znacznie się upraszcza a macierz tworzona jest z wykorzystaniem całych dysków jako RAW - i w tym miejscu mała dygresja: w praktyce przez wiele lat używałem tego typu macierzy w systemach OpenSolaris i działały one wydajnie oraz bez problemów. Jednakże w systemach FreeBSD, do których trafił również system plików ZFS, stworzenie macierzy z dysków RAW kończy się nieuchronnie, i raczej szybciej niż później, spektakularnym crashem systemu. System FreeBSD wymaga utworzenia partycji (GPT lub MBR) na dyskach, które chcemy włączyć do ZFS.

Nasza nowo tworzona pula może mieć dowolną nazwę, ja tradycyjnie użyję: tank. Procedura wygląda następująco:

root@test-builder:~# zpool create tank raidz1 c3t2d0 c3t3d0 c3t4d0 c3t5d0
root@test-builder:~# _

Spójrzmy jaki efekt w systemie przyniosło wykonanie tego polecenia:

root@test-builder:~# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
rpool                 7,72G  46,9G    35K  /rpool
rpool/ROOT            1,66G  46,9G    31K  legacy
rpool/ROOT/omnios     1,66G  46,9G  1,40G  /
rpool/ROOT/omniosvar    31K  46,9G    31K  legacy
rpool/dump            4,00G  46,9G  4,00G  -
rpool/export            76K  46,9G    32K  /export
rpool/export/home       44K  46,9G    44K  /export/home
rpool/swap            2,06G  49,0G  2,31M  -
tank                   151K   163G  43,4K  /tank
root@test-builder:~# _
root@test-builder:~# zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
rpool  55,5G  5,66G  49,8G         -    10%  1.00x  ONLINE  -
tank    222G   238K   222G         -     0%  1.00x  ONLINE  -
root@test-builder:~# _
root@test-builder:~# zpool status
  pool: rpool
 state: ONLINE
  scan: resilvered 5,66G in 0h3m with 0 errors on Sun Mar  1 19:06:10 2015
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            c3t0d0s0  ONLINE       0     0     0
            c3t1d0s0  ONLINE       0     0     0

errors: No known data errors

  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c3t2d0  ONLINE       0     0     0
            c3t3d0  ONLINE       0     0     0
            c3t4d0  ONLINE       0     0     0
            c3t5d0  ONLINE       0     0     0

errors: No known data errors
root@test-builder:~# _

Proszę zwrócić uwagę, że domyślnie nowo utworzona pula została zamontowana pod swoją nazwą w głównym systemie plików - można zmienić to zachowanie odpowiednimi opcjami, wymuszając na przykład zmianę nazwy punktu montowania albo zupełnie z niego rezygnując - w obrębie nowej puli możemy chcieć tworzyć nowe systemy plików z własnymi parametrami oraz punktami montowania. W moim przypadku powyższa organizacja jest jednak wystarczająca więc zachowuję ją bez zmian.


Skomentuj ten artykuł
 Odśiweż, jeśli nie widzisz poprawnie kodu
wpisz kod weryfikacyjny(pola wymagane)

Cookies allow us to offer our services. By using our services, you accept our use of cookies.  Accept  More information