How-To Ręczne przyłączenie woluminów ze starych konfiguracji NAS

Dyskusja w 'Macierz oraz woluminy dyskowe' rozpoczęta przez użytkownika Silas Mariusz, 10 Grudzień 2014.

Ładowanie...
Status tematu:
Brak możliwości dodawania odpowiedzi.
  1. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 032
    Miejscowość:
    Nowy Sącz
    Local Time:
    22:27
    Oceny:
    +1 339 / 30 / -5
    Followers:
    22
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE
    TVS-x71 1 GbE

      Informacja o zastosowaniu procedury

    Dotyczy oprogramowania w wersji większej od 4.0 z wbudowanym Storage Managerem i mniejszej od 4.2.
    W przypadku firmware'u w wersji 4.2 i nowszej oraz 3.8 i starszej, system automatycznie podłączy woluminy podchodzące z innych konfiguracji systemów NAS bez ingerencji użytkownika.



    Konfiguracja partycji na dyskach twardych w serwerach QNAP NAS:
    • Dyski zainicjowane na firmwarze 3.8 lub mniejszym posiadają 4 partycje, gdzie partycja nr.3 z danymi użytkownika, to zwyczajny EXT3/4.
    • W przypadku dysków twardych zainicjowanych na serwerach NAS ze Storage Pool Managerem, czyli w wersji 4.0 (HAL) i nowszych, każdy z dysków posiada 5 partycji. Partycja z danymi użytkownika nr. 3 to kontener pod RAID'a pod każdy typ konfiguracji woluminu (nawet jeśli dysk został utworzony w trybie Single). Taki zabieg ułatwia elastyczniejsze zarządzanie woluminami oraz migrację do dowolnych poziomów RAID między dowolnymi grupami urządzeń.

    Jak sprawdzić ile mam partycji na dyskach?
    Zaloguj się na konsole shell (SSH) serwera QNAP NAS i wykonaj: parted /dev/sd? print gdzie w miejscu ? należy podać kolejno litery a, b, c, d... odpowiadającą numerom zainstalowanych dysków twardych.
    Kod (Bash):
    1. parted /dev/sda print
    2. parted /dev/sdb print
    Przykład:
    Kod (Text):
    1. Model: TOSHIBA DT01ACA300 (scsi)
    2. Disk /dev/sdb: 3001GB
    3. Sector size (logical/physical): 512B/512B
    4. Partition Table: gpt
    5.  
    6. Number  Start   End     Size    File system     Name     Flags
    7.  1      20.5kB  543MB   543MB   ext3            primary
    8.  2      543MB   1086MB  543MB   linux-swap(v1)  primary
    9.  3      1086MB  2991GB  2990GB                  primary
    10.  4      2991GB  2992GB  543MB   ext3            primary
    11.  5      2992GB  3001GB  8554MB  linux-swap(v1)  primary

    Jak ręcznie zamountować dyski z poprzednich konfiguracji na nowo-zainicjowanym urządzeniu?
    Sprawa wydaje się banalna, ale jeśli podłączymy dysk o tej samej grupie raid nr. 1 z poprzedniej konfiguracji do nowo zainicjowanego urządzenia, w którym jest już taka sama grupa, to powstaje konflikt.

    Ważne notki przed przystąpieniem do ręcznego procesu podłączenia dysków do istniejących już konfiguracji:

      Wersja firmware

    Wszystkie poniższe polecenia dotyczą wyłącznie oprogramowania w wersji 4.0 i mniejszej od 4.2.
    (W przypadku firmware'u w wersji 4.2, system automatycznie podłączy woluminy podchodzące z innych konfiguracji systemów NAS bez ingerencji użytkownika)


      Dyski zainicjowane w firmware 3.8 lub starszym

    Podłączanie dysków z konfiguracji zainicjowanych w starej wersji oprogramowaniu 3.8 i niższych mających 4 partycje na dysku, prowadzi bez ostrzeżenia do inicjacji dysku do pracy w nowej konfiguracji (HAL). Dlatego przełożenie dysków ze starej konfiguracji powinno odbywać się przez bezpieczny proces migracji systemu, który szczegółowo opisany jest w instrukcji obsługi.
    (Odzyskanie danych z takiego dysku wciąż jest możliwe za pomocą programu R-Studio ze skutkiem 100% o ile dalsze czynności na dysku nie zostały podjęte)


      Migracja

    Proces migracji można wywołać na sucho przywracając serwer NAS bez dysków twardych do ustawień fabrycznych przytrzymując tylny przycisk resetu przez 10sek. Do fabrycznie zresetowanego urządzenia należy zainstalować dyski z innego serwera NAS, aby rozpocząć proces migracji. Szczegółowe informacje na ten temat znajdują się w instrukcji obsługi dostępnej na docs.qnap.com pod hasłem "system migration".


      Powtarzające się nazwy woluminów

    W poniżej opisanej procedurze polecenia zmiany nazw grup woluminów oraz zmiany nazw woluminów logicznych dokonuje się wyłącznie w przypadku przełożenia dysków z innej konfiguracji mających tą samą nazwę co dysk podstawowy. Analogicznie, kiedy przekładamy dysk/grupę woluminów nr. 1 z serwera do serwera w którym już o tej samej pozycji numer 1 (podstawowej) 1 znajduje się zainstalowany wolumin. W innych przypadkach pomijamy zmianę nazwy i wykonujemy tylko polecenie inicjacji lvm'a.



    Procedura
    1. Włączyć serwer wyłącznie z nowo zainicjowanym dyskiem
    2. Kiedy serwer się uruchomi, należy hot-swap ("na gorąco") podłączyć dysk z poprzedniej konfiguracji systemu
    3. Połączyć się do konsoli shell (SSH) serwera QNAP i sprawdzić czy dysk został poprawnie wykryty:
      Kod (Bash):
      1. fdisk -l 2>/dev/null | grep /dev/sd
      Listę zainstalowanych dysków w kieszeniach serwera można wyświetlić w ten sposób:
      Kod (Bash):
      1. egrep '(Disk|sd)' /etc/enclosure_0.conf
      Przykładowy wynik:
      Kod (Text):
      1. [PhysicalDisk_1]
      2. pd_sys_name=/dev/sda
      3. [PhysicalDisk_2]
      4. pd_sys_name=/dev/sdc
      5. [PhysicalDisk_3]
    4. W tym przykładzie będę chciał podłączyć dwa woluminy z dysku numer 2 (/dev/sdc) oraz z dysku numer 3 (/dev/sdd). Wobec tego upewniam się jakie na dyskach są partycję poleceniem:
      Kod (Bash):
      1. parted /dev/sdc print
      2. parted /dev/sdd print
      Przykład:
      Kod (Text):
      1. Model: Seagate ST31000340NS (scsi)
      2. Disk /dev/sdc: 1000GB
      3. Sector size (logical/physical): 512B/512B
      4. Partition Table: gpt
      5.  
      6. Number  Start   End     Size    File system     Name     Flags
      7. 1      20.5kB  543MB   543MB   ext3            primary
      8. 2      543MB   1086MB  543MB   linux-swap(v1)  primary
      9. 3      1086MB  991GB   990GB                   primary
      10. 4      991GB   992GB   543MB   ext3            primary
      11. 5      992GB   1000GB  8554MB  linux-swap(v1)  primary
    5. Jak widać na partycji nr. 3 znajduje się kontener RAID dla dysku pojedynczego. Wyświetlamy szczegóły i poszukujemy wartości name:
      Kod (Bash):
      1. mdadm -E /dev/sdc3
      Przykład:
      Kod (Text):
      1. /dev/sdc3:
      2.           Magic : a92b4efc
      3.         Version : 1.0
      4.     Feature Map : 0x0
      5.      Array UUID : ab24782d:332a3549:ca69f773:abab7136
      6.            Name : 1
      7.   Creation Time : Mon Jan  9 00:58:36 2012
      8.      Raid Level : raid1
      9.    Raid Devices : 1
      10.  
      11. Avail Dev Size : 1933615240 (922.02 GiB 990.01 GB)
      12.      Array Size : 966807616 (922.02 GiB 990.01 GB)
      13.   Used Dev Size : 1933615232 (922.02 GiB 990.01 GB)
      14.    Super Offset : 1933615504 sectors
      15.    Unused Space : before=0 sectors, after=272 sectors
      16.           State : active
      17.     Device UUID : 2f8c0de9:b21f081a:9198f81c:aeec4a49
      18.  
      19.     Update Time : Fri Nov  7 00:15:01 2014
      20.        Checksum : 3081f628 - correct
      21.          Events : 5
      22.  
      23.  
      24.    Device Role : Active device 0
      25.    Array State : A ('A' == active, '.' == missing, 'R' == replacing)
    6. Jeśli wartość name wynosi:
      • 1 co będzie się pokrywać z naszym podstawowym dyskiem, na którym zainicjowaliśmy system, to składamy raid pojedynczego dysku z dodatkowym argumentem --update=name:
        Kod (Bash):
        1. mdadm -A /dev/md2 /dev/sdc3 --update=name
      • 3 i jest inna od pozostałych, to składamy raid pojedynczego dysku w sposób standardowy:
        Kod (Bash):
        1. mdadm -A /dev/md3 /dev/sdd3
      Notka: Należy pamiętać, że kolejność md2, md3 nie jest przypadkowa i nie może pokrywać się z istniejącymi w systemie macierzami RAID.
    7. Poleceniem pvscan skanujemy dostępne woluminy a poleceniem pvdisplay wyświetlamy o nich informacje szczegółowe:
      Kod (Bash):
      1. pvscan
      Przykład:
      Kod (Text):
      1.   PV /dev/md3   VG vg3   lvm2 [456.27 GiB / 0    free]
      2.   PV /dev/md2   VG vg1   lvm2 [922.02 GiB / 0    free]
      3.   PV /dev/md1   VG vg1   lvm2 [2.72 TiB / 0    free]
      4.   Total: 3 [4.07 TiB] / in use: 3 [4.07 TiB] / in no VG: 0 [0   ]
      Kod (Bash):
      1. pvdisplay
      Przykład:
      Kod (Text):
      1.   --- Physical volume ---
      2.   PV Name               /dev/md3
      3.   VG Name               vg3
      4.   PV Size               456.27 GiB / not usable 2.38 MiB
      5.   Allocatable           yes (but full)
      6.   PE Size               4.00 MiB
      7.   Total PE              116804
      8.   Free PE               0
      9.   Allocated PE          116804
      10.   PV UUID               A4UDOl-Rmv0-mlAE-fN41-Psmq-qD6g-170VSR
      11.  
      12.   --- Physical volume ---
      13.   PV Name               /dev/md2
      14.   VG Name               vg1
      15.   PV Size               922.02 GiB / not usable 4.06 MiB
      16.   Allocatable           yes (but full)
      17.   PE Size               4.00 MiB
      18.   Total PE              236036
      19.   Free PE               0
      20.   Allocated PE          236036
      21.   PV UUID               wL2S9J-okz8-PRva-UY20-FKSh-EzUO-zp1f5M
      22.  
      23.   --- Physical volume ---
      24.   PV Name               /dev/md1
      25.   VG Name               vg1
      26.   PV Size               2.72 TiB / not usable 2.81 MiB
      27.   Allocatable           yes (but full)
      28.   PE Size               4.00 MiB
      29.   Total PE              712966
      30.   Free PE               0
      31.   Allocated PE          712966
      32.   PV UUID               p0lZZW-SLT5-CBE1-WNoF-YURm-Uz7h-6KGb18
    8. (!) Następnie poleceniem vgdisplay wyświetlamy listę dostępnych grup woluminów:
      Kod (Bash):
      1. vgdisplay
      Przykład: (proszę zwrócić uwagę na nazwy grup woluminów w poniższym przykładzie)
      Kod (Text):
      1.   --- Volume group ---
      2.   VG Name               vg3
      3.   System ID
      4.   Format                lvm2
      5.   Metadata Areas        1
      6.   Metadata Sequence No  4
      7.   VG Access             read/write
      8.   VG Status             resizable
      9.   MAX LV                0
      10.   Cur LV                2
      11.   Open LV               0
      12.   Max PV                0
      13.   Cur PV                1
      14.   Act PV                1
      15.   VG Size               456.27 GiB
      16.   PE Size               4.00 MiB
      17.   Total PE              116804
      18.   Alloc PE / Size       116804 / 456.27 GiB
      19.   Free  PE / Size       0 / 0
      20.   VG UUID               QV1b07-prt8-YIWT-w7IX-88eI-JOyb-hGRv7W
      21.  
      22.   --- Volume group ---
      23.   VG Name               vg1
      24.   System ID
      25.   Format                lvm2
      26.   Metadata Areas        1
      27.   Metadata Sequence No  4
      28.   VG Access             read/write
      29.   VG Status             resizable
      30.   MAX LV                0
      31.   Cur LV                2
      32.   Open LV               0
      33.   Max PV                0
      34.   Cur PV                1
      35.   Act PV                1
      36.   VG Size               922.02 GiB
      37.   PE Size               4.00 MiB
      38.   Total PE              236036
      39.   Alloc PE / Size       236036 / 922.02 GiB
      40.   Free  PE / Size       0 / 0
      41.   VG UUID               4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0
      42.  
      43.   --- Volume group ---
      44.   VG Name               vg1
      45.   System ID
      46.   Format                lvm2
      47.   Metadata Areas        1
      48.   Metadata Sequence No  4
      49.   VG Access             read/write
      50.   VG Status             resizable
      51.   MAX LV                0
      52.   Cur LV                2
      53.   Open LV               1
      54.   Max PV                0
      55.   Cur PV                1
      56.   Act PV                1
      57.   VG Size               2.72 TiB
      58.   PE Size               4.00 MiB
      59.   Total PE              712966
      60.   Alloc PE / Size       712966 / 2.72 TiB
      61.   Free  PE / Size       0 / 0
      62.   VG UUID               uwqutD-SgMP-5CHD-kp6R-8jBC-VMXp-hRPeKU
      Kod (Bash):
      1. mdadm -A /dev/md2 /dev/sdc3 --update=name
    9. Jak widać wolumin o identyfikatorze UUID 4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0 pokrywa się nazwą grupy vg1 z nazwą grupy, w której znajduje się podstawowy pojedynczy dysk systemu.
      Fix: W tym wypadku należy zmienić nazwę tej grupy na inną, która nie jest zajęta, np.: vg2:
      Kod (Bash):
      1. vgrename 4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0 vg2
      Wynik:
      Kod (Text):
      1.   Volume group "vg1" successfully renamed to "vg2"
    10. Upewniamy się, że nazwa grupy woluminów jest prawidłowa i żadna z nich się nie pokrywa:
      Kod (Bash):
      1. vgs
      Przykład:
      Kod (Text):
      1.   VG   #PV #LV #SN Attr   VSize   VFree
      2.   vg1    1   2   0 wz--n-   2.72t    0
      3.   vg2    1   2   0 wz--n- 922.02g    0
      4.   vg3    1   2   0 wz--n- 456.27g    0
    11. Wyświetlamy listę fizycznych woluminów:
      Kod (Bash):
      1. pvs
      Przykład:
      Kod (Text):
      1.   PV         VG   Fmt  Attr PSize   PFree
      2.   /dev/md1   vg1  lvm2 a--    2.72t    0
      3.   /dev/md2   vg2  lvm2 a--  922.02g    0
      4.   /dev/md3   vg3  lvm2 a--  456.27g    0
    12. (!) Wyświetlamy listę logicznych woluminów:
      Kod (Bash):
      1. lvs
      Przykład: (proszę zwrócić uwagę na nazwy logicznych woluminów w poniższym przykładzie)
      Kod (Text):
      1.   LV    VG   Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
      2.   lv1   vg1  -wi-ao--   2.70t
      3.   lv544 vg1  -wi-----  20.00g
      4.   lv1   vg2  -wi----- 912.80g
      5.   lv544 vg2  -wi-----   9.22g
      6.   lv3   vg3  -wi----- 451.70g
      7.   lv546 vg3  -wi-----   4.56g
    13. Jak widać w powyższym przykładzie nazwa logicznego woluminu:
      • lv1 o wielkości 912.80g z grupy vg2 (wyświetlonej w punkcie 11);
      oraz
      • lv544 o wielkości 9.22g z grupy vg2 (wyświetlonej w punkcie 11)
      pokrywa się z nazwą podstawowego woluminu, na którym został zainicjowany serwer NAS.
      Fix: W tym celu należy zmienić nazwę grupy na inną, która jest wolna:
      Kod (Bash):
      1. lvrename vg2 lv1 lv2
      oraz
      Kod (Bash):
      1. lvrename vg2 lv544 lv545
      Wynik:
      Kod (Text):
      1.   Renamed "lv1" to "lv2" in volume group "vg2"
      2.   Renamed "lv544" to "lv545" in volume group "vg2"
    14. Ponownie wyświetlamy listę logicznych woluminów poleceniem lvs i upewniamy się, że wszystkie mają swoją unikalną nazwę:
      Kod (Bash):
      1. lvs
      Przykład:
      Kod (Text):
      1.   LV    VG   Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
      2.   lv1   vg1  -wi-ao--   2.70t
      3.   lv544 vg1  -wi-----  20.00g
      4.   lv2   vg2  -wi----- 912.80g
      5.   lv545 vg2  -wi-----   9.22g
      6.   lv3   vg3  -wi----- 451.70g
      7.   lv546 vg3  -wi-----   4.56g
    15. Jeśli wszystko jest w porządku, to przystępujemy do zainicjowania lvm'a:
      Kod (Bash):
      1. /etc/init.d/init_lvm.sh
      Przykładowy wynik polecenia:
      Kod (Text):
      1. Changing old config name...
      2. Reinitialing...
      3. Detect disk(8, 0)...
      4. Detect disk(8, 16)...
      5. ignore non-root enclosure disk(8, 16).
      6. Detect disk(8, 32)...
      7. Detect disk(8, 48)...
      8. sys_startup_p2:got called count = -1
      9. Done
    16. Aby upewnić się, że woluminy zostały podłączone, wykonujemy polecenia mount oraz df -h, aby wyświetlić fizyczną i dostępną wolną przestrzeń:
      Kod (Bash):
      1. mount
      Wynik:
      Kod (Text):
      1. ...
      2. /dev/mapper/cachedev1 on /share/CACHEDEV1_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
      3. ...
      4. /dev/mapper/cachedev2 on /share/CACHEDEV2_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
      5. /dev/mapper/cachedev3 on /share/CACHEDEV3_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
      6. ...
      Kod (Bash):
      1. df -h
      Wynik:
      Kod (Text):
      1.  
      2. Filesystem                Size      Used Available Use% Mounted on
      3. ...
      4. /dev/mapper/cachedev1     2.7T    404.4M      2.7T   0% /share/CACHEDEV1_DATA
      5. ...
      6. /dev/mapper/cachedev2   898.3G    890.3G      7.5G  99% /share/CACHEDEV2_DATA
      7. /dev/mapper/cachedev3   444.5G    321.8G    122.1G  72% /share/CACHEDEV3_DATA
     
    • Piwo Piwo x 1
Status tematu:
Brak możliwości dodawania odpowiedzi.

Poleć tę stronę