# Ręczne przyłączenie woluminów ze starych konfiguracji NAS

> Źródło: <https://forum.qnap.net.pl/threads/reczne-przylaczenie-woluminow-ze-starych-konfiguracji-nas.6253/> · Instruktaż/Tutorial · Forum QNAP Polska · 2014-12-10

> [!IMPORTANT]
> **'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.

```
parted /dev/sda print
parted /dev/sdb print
```

Przykład:

```
Model: TOSHIBA DT01ACA300 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name     Flags
 1      20.5kB  543MB   543MB   ext3            primary
 2      543MB   1086MB  543MB   linux-swap(v1)  primary
 3      1086MB  2991GB  2990GB                  primary
 4      2991GB  2992GB  543MB   ext3            primary
 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:

> [!IMPORTANT]
> **'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)

> [!CAUTION]
> **'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)

> [!IMPORTANT]
> **'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](http://docs.qnap.com/) pod hasłem "system migration".

> [!WARNING]
> **'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:

```
fdisk -l 2>/dev/null | grep /dev/sd
```

Listę zainstalowanych dysków w kieszeniach serwera można wyświetlić w ten sposób:

```
egrep '(Disk|sd)' /etc/enclosure_0.conf
```

Przykładowy wynik:

 C4
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:

```
parted /dev/sdc print
parted /dev/sdd print
```

Przykład:

 C6
5. Jak widać na partycji nr. 3 znajduje się kontener RAID dla dysku pojedynczego. Wyświetlamy szczegóły i poszukujemy wartości `name`:

```
mdadm -E /dev/sdc3
```

Przykład:

 C8
6. Jeśli wartość `name` wynosi:

- 7. c41  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`:

 C9
8. c43  i jest inna od pozostałych, to składamy raid pojedynczego dysku w sposób standardowy:

 C10

**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.
- Poleceniem `pvscan` skanujemy dostępne woluminy a poleceniem `pvdisplay` wyświetlamy o nich informacje szczegółowe:

```
pvscan
```

Przykład:

```
  PV /dev/md3   VG vg3   lvm2 [456.27 GiB / 0    free]
  PV /dev/md2   VG vg1   lvm2 [922.02 GiB / 0    free]
  PV /dev/md1   VG vg1   lvm2 [2.72 TiB / 0    free]
  Total: 3 [4.07 TiB] / in use: 3 [4.07 TiB] / in no VG: 0 [0   ]
```

```
pvdisplay
```

Przykład:

 C14
- (**!**) Następnie poleceniem `vgdisplay` wyświetlamy listę dostępnych grup woluminów:

```
vgdisplay
```

Przykład: (proszę zwrócić uwagę na nazwy grup woluminów w poniższym przykładzie)

```
  --- Volume group ---
  VG Name               vg3
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               456.27 GiB
  PE Size               4.00 MiB
  Total PE              116804
  Alloc PE / Size       116804 / 456.27 GiB
  Free  PE / Size       0 / 0
  VG UUID               QV1b07-prt8-YIWT-w7IX-88eI-JOyb-hGRv7W

  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               922.02 GiB
  PE Size               4.00 MiB
  Total PE              236036
  Alloc PE / Size       236036 / 922.02 GiB
  Free  PE / Size       0 / 0
  VG UUID               4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0

  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.72 TiB
  PE Size               4.00 MiB
  Total PE              712966
  Alloc PE / Size       712966 / 2.72 TiB
  Free  PE / Size       0 / 0
  VG UUID               uwqutD-SgMP-5CHD-kp6R-8jBC-VMXp-hRPeKU
```

 C17
- 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`:

```
vgrename 4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0 vg2
```

Wynik:

 C19
- Upewniamy się, że nazwa grupy woluminów jest prawidłowa i żadna z nich się nie pokrywa:

```
vgs
```

Przykład:

 C21
- Wyświetlamy listę fizycznych woluminów:

```
pvs
```

Przykład:

 C23
- (**!**) Wyświetlamy listę logicznych woluminów:

```
lvs
```

Przykład: (proszę zwrócić uwagę na nazwy logicznych woluminów w poniższym przykładzie)

 C25
- Jak widać w powyższym przykładzie nazwa logicznego woluminu:

- c52  o wielkości `912.80g` z grupy `vg2` (wyświetlonej w punkcie 11);

oraz

- c55  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:

```
lvrename vg2 lv1 lv2
```

oraz

```
lvrename vg2 lv544 lv545
```

Wynik:

```
  Renamed "lv1" to "lv2" in volume group "vg2"
  Renamed "lv544" to "lv545" in volume group "vg2"
```

Ponownie wyświetlamy listę logicznych woluminów poleceniem `lvs` i upewniamy się, że wszystkie mają swoją unikalną nazwę:

```
lvs
```

Przykład:

```
  LV    VG   Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
  lv1   vg1  -wi-ao--   2.70t
  lv544 vg1  -wi-----  20.00g
  lv2   vg2  -wi----- 912.80g
  lv545 vg2  -wi-----   9.22g
  lv3   vg3  -wi----- 451.70g
  lv546 vg3  -wi-----   4.56g
```

Jeśli wszystko jest w porządku, to przystępujemy do zainicjowania `lvm'a`:

```
/etc/init.d/init_lvm.sh
```

Przykładowy wynik polecenia:

```
Changing old config name...
Reinitialing...
Detect disk(8, 0)...
Detect disk(8, 16)...
ignore non-root enclosure disk(8, 16).
Detect disk(8, 32)...
Detect disk(8, 48)...
sys_startup_p2:got called count = -1
Done
```

Aby upewnić się, że woluminy zostały podłączone, wykonujemy polecenia `mount` oraz `df -h`, aby wyświetlić fizyczną i dostępną wolną przestrzeń:

```
mount
```

Wynik:

```
...
/dev/mapper/cachedev1 on /share/CACHEDEV1_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
...
/dev/mapper/cachedev2 on /share/CACHEDEV2_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
/dev/mapper/cachedev3 on /share/CACHEDEV3_DATA type ext4 (rw,usrjquota=aquota.user,jqfmt=vfsv0,user_xattr,data=ordered,delalloc,noacl)
...
```

```
df -h
```

Wynik:

```
Filesystem                Size      Used Available Use% Mounted on
...
/dev/mapper/cachedev1     2.7T    404.4M      2.7T   0% /share/CACHEDEV1_DATA
...
/dev/mapper/cachedev2   898.3G    890.3G      7.5G  99% /share/CACHEDEV2_DATA
/dev/mapper/cachedev3   444.5G    321.8G    122.1G  72% /share/CACHEDEV3_DATA
```

---

Źródło: **Forum QNAP Polska** (dawniej QNAP Club) — społecznościowe wsparcie QNAP NAS od 2008 r. Treści z prefiksem „Pomoc" bywają weryfikowane przez moderację; w wątkach pomocy druga odpowiedź może pochodzić od asystenta AI, a o jej poprawności decyduje autor lub kadra forum. Cytując, podaj źródło (link do wątku). W działaniach produkcyjnych na serwerze QNAP NAS skorzystaj z pomocy społeczności — przez „Szybkie pytanie" odpowiedź często w kilka minut.
