Stisknutím tlačítka "Enter" přeskočíte na obsah

Rozšíření lokálního datastoru v HPE serveru za běhu

Jedním z velkých přínosů virtualizace je přidávání “HW” prostředků běžícím virtuálním strojům za běhu. Běžně jsme dnes zvyklí, že za běhu přidáváme např. síťové karty, operační paměť (RAM), diskový prostor nebo celé disky. Co ale dělat, když nám začne docházet místo na vlastním fyzickém datastoru?

  • Můžeme vyprezentovat další datastor a prostor mezi VM přerozdělit.
  • V případě, že máme “externí” (např. SAN) storage, se také nic zvláštního dít nemusí. Storage dnes běžně umí měnit některé parametry pole za běhu, takže přidáme disk a logický disk (volume, …) rozšíříme. Poté rozšíříme datastor o nové volné místo ve vSphere.
  • V případě, že ale máme “lokální” datastor, tak navýšení místa může znamenat i několika hodinovou odstávku.

My si teď ukážeme, jak lze rozšířit lokální datastor na HPE serverech za běhu.

Předpoklady:

  • V serveru máme dostatek volných HOT SWAP pozic pro disky (počet je závislý na použitém typu RAID u logického disku, který budeme rozšiřovat a množství přidávaných disků)
  • V ESXi máme HPE SSACLI (viz. Instalace HPE SSACLI)

Proces rozšíření lokálního datastoru má dvě fáze, rozšíření vlastního logického disku na úrovni řadiče a rozšíření datastoru o přidané volné místo ve vSphere. V naší ukázce budeme rozšiřovat lokální datastor, který je složený z 3x 300 GB SAS v RAID 5:

Rozšíření vlastního logického disku:

1. přihlásíme se na hosta pomocí SSH a vypíšeme si stav řadiče

esxcli ssacli cmd -q "ctrl all show status"

pakliže je vše v pořádku, tak výpis by měl vypadat takto

Smart Array P410i in Slot 0 (Embedded)
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK

2. zjistíme, jaká je konfigurace řadiče

esxcli ssacli cmd -q "ctrl all show config"

dostaneme výpis, který obsahuje informace o tom, kolik máme logických disků, jaký typ RAID používají a v jakém jsou stavu, kolik máme fyzických disků, jejich “adresy” a jak jsou přiřazeny logickým diskům a také informaci, kolik fyzických disků máme volných, nikde nepřiřazených

Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438013ED1DB0)

   Internal Drive Cage at Port 1I, Box 1, OK

   Internal Drive Cage at Port 2I, Box 1, OK

   Port Name: 1I

   Port Name: 2I

   Array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (558.73 GB, RAID 5, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS HDD, 300 GB, OK)

   Unassigned

      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS HDD, 300 GB, OK)

3. přidáme do logického disku jedna další disk

esxcli ssacli cmd -q "ctrl slot=0 ld 1 add drives=1I:1:4"

opět si vypíšeme konfiguraci a nyní už vidíme, že do logického disku jedna byl přidán další fyzický disk a začal přepočet RAID skupiny

[root@LabHost03:~] esxcli ssacli cmd -q "ctrl all show config"

.....

   Array A (SAS, Unused Space: 381427  MB)

      logicaldrive 1 (558.73 GB, RAID 5, Transforming, 0.05% complete)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS HDD, 300 GB, OK)

Operace přepočtu může trvat hodiny až desítky hodin, v závislosti na velikosti a rychlosti disků, množství dat a nastavené prioritě přepočtu RAID na řadiči. Je dobré občas zkontrolovat, v jakém stavu se přepočet nachází. Jakmile je přepočet dokončen, výpis napíše, že logiský disk je “OK”

[root@LabHost03:~] esxcli ssacli cmd -q "ctrl all show config"
.....
      logicaldrive 1 (558.73 GB, RAID 5, Transforming, 2.41% complete)

[root@LabHost03:~] esxcli ssacli cmd -q "ctrl all show config"
.....
      logicaldrive 1 (558.73 GB, RAID 5, Transforming, 15.95% complete)

[root@LabHost03:~] esxcli ssacli cmd -q "ctrl all show config"
..... 
      logicaldrive 1 (558.73 GB, RAID 5, OK)

4. rozšíříme logický disk jedna o nově přidaný (neobsazený) volný prostor

esxcli ssacli cmd -q "ctrl slot=0 ld 1 modify size=max forced"

když nyní uděláme výpis konfigurace, vidíme, že “Unused Space” je již 0 a celkový prostor logického disku byl zvýšen z 558.73 GB na 838.10 GB

[root@LabHost03:~] esxcli ssacli cmd -q "ctrl all show config"

.....

   Array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (838.10 GB, RAID 5, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS HDD, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS HDD, 300 GB, OK)

Nástroj HPE SSACLI toho umí daleko více, v případě dalšího zájmu doporučuji dokument “HPE Smart Storage Administrator User Guide

Rozšíření lokálního datastoru ve vSphere:

Nyní bychom již měli vidět, že lokální úložiště má k dispozici navýšenou kapacitu. Někdy není vidět hned a je nutné nejprve provést “Rescan”.

Je několik možností, jak provést navýšení:

  • připojit se do vCentru a “klikat”

  • připojit se přes host clienta a “klikat”

  • připojit se přes SSH a prostor navýšit pomocí “vmkfstools”

“Klikací” varianty mají grafické průvodce a jsou naprosto jednoduché, nebudu se jimi tedy nadále zabývat. CLI varianta není zcela uživatelsky přívětivá, zato však funkční i když GUI selže. Průvodce totiž neumožňuje změnit typ VMFS (roletka je šedá) a může se stát, že sám zvolí VMFS 6, byť svazek, který rozšiřujeme, je ve VMFS 5, a operace tak nelze dokončit. Respektive, končí s chybou, že operaci nelze provést. Ukážeme si tedy, jak prostor navýšit skrze CLI pomocí nástrojú “partedUtil” a “vmkfstools”.

1. necháme si vypsat datastory, jelikož rozšiřujeme lokální datastor, na kterém je zároveň samotné ESXi, potřebujeme kromě “Device name” znát také “Partition”

esxcli storage vmfs extent list
Volume Name ~ Device Name                           Partition
----------- ~ ------------------------------------  ---------
datastore1  ~ naa.600508b1001c812ef3c2326e4544d5c5          3

2. zjistíme parametry aktuální partition, do příkazu dosadíme Device name:Partition

partedUtil get "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5:3"

dostaneme výpis ve tvaru Cilindr-Hlava-Sektor-Celkový počet Sektorů

71974 255 63 1156270651

3. Opravíme GPT tabulku

partedUtil fixGpt "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5"

příkaz provede opravu GPT a vypíše jednotlivé partition

109406 255 63 1757614684
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
3 15472640 1171743290 AA31E02A400F11DB9590000C2911D1B8 vmfs 0

v prvním řádku vidíme, že se zvýšil počet Cilindrů a Celkový počet sektorů a v posledním řádku partition 3, na které je naše VMFS, druhé a třetí číslo říká aktuálně přiřazené sektory, tedy “první sektor” a “poslední sektor”

4. zjistíme, jaký je rozsah použitelných sektorů

partedUtil getUsableSectors "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5"

výpis říká “první sektor” a “poslední sektor”

34 1757614650

5. provedeme změnu posledního sektoru naší partition, první musí zůstat stejný!

partedUtil resize "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5" 3 15472640 1757614650

6. ještě jednou provedeme opravu GPT, ať se nám správně zapíšou nové hodnoty změněné partition

partedUtil fixGpt "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5"

poté co je GPT opravena, tak opět dostaneme výpis partition, kde již vidíme nové hodnoty

109406 255 63 1757614684
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
3 15472640 1757614650 AA31E02A400F11DB9590000C2911D1B8 vmfs 0

7. provedeme refresh vmfs

vmkfstools -V

8. nyní rozšíříme samotný datastor

vmkfstools --growfs "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5:3" "/vmfs/devices/disks/naa.600508b1001c812ef3c2326e4544d5c5:3"

při pohledu na ESXi přes host clienta již vidíme, že datastor byl rozšířen

Celý postup není nikterak složitý, je však víc než důležité dát si pozor na zadávané hodnoty, špatnými hodnotami se dá celý datastor také zničit. Pro lepší pochopení nástroje “partedUtil” a jaho parametrů doporučuji KB1036609