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.
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.
Bash:
parted /dev/sda print
parted /dev/sdb print
Kod:
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:
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)
(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)
(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
- Włączyć serwer wyłącznie z nowo zainicjowanym dyskiem
- Kiedy serwer się uruchomi, należy hot-swap ("na gorąco") podłączyć dysk z poprzedniej konfiguracji systemu
- Połączyć się do konsoli shell (SSH) serwera QNAP i sprawdzić czy dysk został poprawnie wykryty:
Bash:fdisk -l 2>/dev/null | grep /dev/sd
Listę zainstalowanych dysków w kieszeniach serwera można wyświetlić w ten sposób:
Bash:egrep '(Disk|sd)' /etc/enclosure_0.conf
Kod:[PhysicalDisk_1] pd_sys_name=/dev/sda [PhysicalDisk_2] pd_sys_name=/dev/sdc [PhysicalDisk_3]
- 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:
Bash:parted /dev/sdc print parted /dev/sdd print
Kod:Model: Seagate ST31000340NS (scsi) Disk /dev/sdc: 1000GB 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 991GB 990GB primary 4 991GB 992GB 543MB ext3 primary 5 992GB 1000GB 8554MB linux-swap(v1) primary
- Jak widać na partycji nr. 3 znajduje się kontener RAID dla dysku pojedynczego. Wyświetlamy szczegóły i poszukujemy wartości
name
:
Bash:mdadm -E /dev/sdc3
Kod:/dev/sdc3: Magic : a92b4efc Version : 1.0 Feature Map : 0x0 Array UUID : ab24782d:332a3549:ca69f773:abab7136 Name : 1 Creation Time : Mon Jan 9 00:58:36 2012 Raid Level : raid1 Raid Devices : 1 Avail Dev Size : 1933615240 (922.02 GiB 990.01 GB) Array Size : 966807616 (922.02 GiB 990.01 GB) Used Dev Size : 1933615232 (922.02 GiB 990.01 GB) Super Offset : 1933615504 sectors Unused Space : before=0 sectors, after=272 sectors State : active Device UUID : 2f8c0de9:b21f081a:9198f81c:aeec4a49 Update Time : Fri Nov 7 00:15:01 2014 Checksum : 3081f628 - correct Events : 5 Device Role : Active device 0 Array State : A ('A' == active, '.' == missing, 'R' == replacing)
- 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
:
Bash: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:
Bash:mdadm -A /dev/md3 /dev/sdd3
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 poleceniempvdisplay
wyświetlamy o nich informacje szczegółowe:
Bash:pvscan
Kod: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 ]
Bash:pvdisplay
Kod:--- Physical volume --- PV Name /dev/md3 VG Name vg3 PV Size 456.27 GiB / not usable 2.38 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 116804 Free PE 0 Allocated PE 116804 PV UUID A4UDOl-Rmv0-mlAE-fN41-Psmq-qD6g-170VSR --- Physical volume --- PV Name /dev/md2 VG Name vg1 PV Size 922.02 GiB / not usable 4.06 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 236036 Free PE 0 Allocated PE 236036 PV UUID wL2S9J-okz8-PRva-UY20-FKSh-EzUO-zp1f5M --- Physical volume --- PV Name /dev/md1 VG Name vg1 PV Size 2.72 TiB / not usable 2.81 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 712966 Free PE 0 Allocated PE 712966 PV UUID p0lZZW-SLT5-CBE1-WNoF-YURm-Uz7h-6KGb18
- (!) Następnie poleceniem
vgdisplay
wyświetlamy listę dostępnych grup woluminów:
Bash:vgdisplay
Kod:--- 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
Bash:mdadm -A /dev/md2 /dev/sdc3 --update=name
- Jak widać wolumin o identyfikatorze UUID
4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0
pokrywa się nazwą grupyvg1
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
:
Bash:vgrename 4WmZWx-OYkD-mRKz-imr5-oUti-5Dod-r9UIH0 vg2
Kod:Volume group "vg1" successfully renamed to "vg2"
- Upewniamy się, że nazwa grupy woluminów jest prawidłowa i żadna z nich się nie pokrywa:
Bash:vgs
Kod:VG #PV #LV #SN Attr VSize VFree vg1 1 2 0 wz--n- 2.72t 0 vg2 1 2 0 wz--n- 922.02g 0 vg3 1 2 0 wz--n- 456.27g 0
- Wyświetlamy listę fizycznych woluminów:
Bash:pvs
Kod:PV VG Fmt Attr PSize PFree /dev/md1 vg1 lvm2 a-- 2.72t 0 /dev/md2 vg2 lvm2 a-- 922.02g 0 /dev/md3 vg3 lvm2 a-- 456.27g 0
- (!) Wyświetlamy listę logicznych woluminów:
Bash:lvs
Kod:LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lv1 vg1 -wi-ao-- 2.70t lv544 vg1 -wi----- 20.00g lv1 vg2 -wi----- 912.80g lv544 vg2 -wi----- 9.22g lv3 vg3 -wi----- 451.70g lv546 vg3 -wi----- 4.56g
- Jak widać w powyższym przykładzie nazwa logicznego woluminu:
lv1
o wielkości912.80g
z grupyvg2
(wyświetlonej w punkcie 11);
lv544
o wielkości9.22g
z grupyvg2
(wyświetlonej w punkcie 11)
Fix: W tym celu należy zmienić nazwę grupy na inną, która jest wolna:
Bash:lvrename vg2 lv1 lv2
Bash:lvrename vg2 lv544 lv545
Kod: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ę:
Bash:lvs
Kod: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
:
Bash:/etc/init.d/init_lvm.sh
Kod: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
orazdf -h
, aby wyświetlić fizyczną i dostępną wolną przestrzeń:
Bash:mount
Kod:... /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) ...
Bash:df -h
Kod: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