Virtualizáció - mikrokódfrissítés Intel és az AMD a vmware ESXi - hogyan működik

VMware van blogjában felvetette az érdekes téma - mikrokódfrissítés az Intel és az AMD processzor platform a hypervisor VMware ESXi, amely része a vSphere. A probléma lényege az, hogy - a modern processzorok biztosítja a képességét, hogy frissítsék a firmware a rendszer indításakor, amely lehetővé teszi, hogy kijavítsuk a hibákat, amelyeket a gyártó vagy megszünteti a problémás területeket. Jellemzően microcode frissítések jönnek a BIOS-frissítést, a felelősség az eladó processzor (Intel vagy AMD), valamint a szállító állványok (HP, Dell, és mások).

Eközben nem minden platformon gyártó teszi a BIOS-frissítés egy időben, így, hogy a firmware frissítés kell várni egy nagyon hosszú idő, ami súlyos következményei lehetnek, ha a hiba a jelenlegi változat a firmware nagyon súlyos. ESXi az a mechanizmus mikrokódhoz rakodógép, amely lehetővé teszi, hogy roll a firmware frissítése bootoláskor abban az esetben, hogy megkapja ezeket a frissítéseket a gyártó, és tudod, hogy mit csinálsz.

Azt kell mondanom, hogy a VMware vSphere 6.0 firmware frissítése hengerelt csak indításkor, és csak egy nagyon korai szakaszában, mivel a nagyobb terhelés megváltoztathatja az adatokat már inicializált letölteni VMkernel.

VMware használja maga is nem a legfrissebb firmware frissítés processzorok, mivel annak érdekében, hogy maximalizálja a biztonsági hengerelt csak a leginkább kritikus frissítések és platform szállítók kérnek ideje kipróbálni a frissítést.

Kétféle módon frissítheti a mikrokódhoz feldolgozók ESXi - keresztül telepítés VIB-csomagot és a frissítési fájlokat keresztül a csomag firmware ESXi tárolására. Ha megnézzük a mappában / bootbank. látni fogja fájlok vannak:

Ezek a fájlok tartalmazzák mikrokódfrissítés és menj a VIB-csomag cpu-microcode hypervisor ESXi. A következőkben ismertetjük a firmware-frissítési eljárást ESXi mindkét módszer. Az előnyös módszer -, hogy nem a frissítés keresztül VIB-pack, mivel ez a legbiztonságosabb. Azt is el kell Lunix gép manipuláció microcode. Az összes alábbi teszel a saját kockázatára.

1. Töltse le a frissítést.

Intel, az alábbi parancsot:

Kicsomagolás után kapsz microcode.dat fájlt. Ez a fájl ASCII formátumban, akkor át kell alakítani bináris. Az AMD az adattár csak bináris (3 darab, az összes szükséges).

2. Készítsen bináris csomag mikrokód.

Létrehozza a következő python-script és hívja meg intelBlob.py:

#! / Usr / bin / python
# Készítsen nyers bináris blob Intel microcode formátumban.
# Szükséges Python 2.6 vagy későbbi (beleértve a Python 3)
# Használat: intelBlob.py

A vonal sys.stdin:
ha sorban [0] == '/':
folytatódik
hvals = line.split ( '')
A hval a hvals:
ha hval == '\ n' vagy hval == '\ r \ n':
folytatódik
Val = int (hval, 16)
az eltolódás (0, 8, 16, 24):
outf.write (ByteArray ([(Val >> shift) 0xff]))

Ezután hozzon létre egy firmware bináris. Intel:

cat intel / * dat. | ./intelBlob.py uc_intel
gzip uc_intel

3. A módszer helyett a firmware frissítési fájlok.

Minden egyszerű. Hajtsa végre a következő parancsot, hogy a fájl:

Továbbá lehetőség van arra, hogy mozog az 5. lépéshez.

4. Az Eljárás VIB-csomagot és telepítsük.

Itt kell a használatot VIB szerző. amely lehet helyezni egy Linux-gép (ebben a pillanatban van egy segédprogram On RPM-alapú formátum, amely optimalizált SuSE Enterprise Linux 11 SP2, amely azt javasolta, hogy kell használni). Töltse cpu-microcode.xml fájlt, és egymástól függetlenül módosíthatja azt a firmware verzióját.

Akkor tegye VIB-csomag a következő parancsot:

vibauthor -c -d cpu-microcode.xml \
-p uc_intel.gz, csomagtartó, uc_intel, 200 \
-p uc_amd.gz, csomagtartó, uc_amd, 201

Ha a VIB-fájl nem tartalmazza a firmware egyik gyártók CPU - csak vegye ki a részét a csapat a „-p”.

Ezután telepítse VIB keresztül esxcli:

esxcli program elfogadását meghatározott --level = CommunitySupported
esxcli szoftver VIb install \
-v file: /vmfs/volumes/datastore1/cpu-microcode-6.0.0-0.test.0.vib

Ezután ellenőrizze uc _ * fájlokat. B00. Ön tett a 2. lépésben, a / altbootbank.

Az újraindítás után a ESXi host a naplóban meg jelenlétére /var/log/vmkernel.log MicrocodeUpdate üzeneteket. Azt is nézd át Vish fájlokat / hardver / cpu / cpuList / *. hogy valahol a végén a következő sorokat:

Száma mikrokód frissítést: 1
Eredeti Revision: 0x00000011
Jelenlegi Revision: 0x00000017

Ez azt jelenti, hogy a processzor mikrokód meg frissíteni. ESXi firmware frissítések minden CPU sorozat. Meg tudja nézni ezt nézi paraméter aktuális változat.

Ön is tudja megakadályozni a fogadó frissítéseit firmware telepítése microcodeUpdate = FALSE opciót a VMkernel csomagtartó. Szintén alapértelmezés szerint ez tilos mikrokódfrissítés korábbi verziók (downgrade), valamint a kísérleti verzióját. Ezt ki lehet kapcsolni, amely az opciót microcodeUpdateForce = TRUE (de a legtöbb processzor firmware is frissíthető, ha a digitális aláírás az eladó). Továbbá annak érdekében, hogy egy kísérleti frissítés a firmware, engedélyezni kell a lehetőséget „debug mód” vagy „debug interface” a szerver BIOS, majd töltse ki teljesen.