giovedì, Novembre 21, 2024

VMware ESXi 4.1: Gestione moduli driver

Giovanni "Jinko" Uccio
Giovanni "Jinko" Ucciohttps://ie.linkedin.com/in/giovanniuccio
- Software Engineer - Debian Evangelist - Escalation Engineer - Debianizzati.org

Introduzione

In questo articolo tratterò alcune azioni di routine nella gestione dei moduli driver caricati all’avvio del  nostro server VMware ESXi 4.1.0 (build 258902). Utilizzando l’ esxcfg-module, ovvero un tool  per la configurazione avanzata delle opzioni di bootstrap in termini di moduli . Questo strumento ci fornisce un mezzo per interfacciarsi ai moduli driver caricati allo startup del sistema permettendoci l’aggiunta, abilitazione, disabilitazione degli stessi.
Vi faccio notare che non c’è nessun tipo di azione/sezione in vSphere Client che sopperisca alle funzionalità offerte da questo comando.

Utilizzo esxcfg-module

esxcfg-module OPTIONS MODULE

Potrebbe essere  utile in fase di debbugging di un malfunzionamento del nostro server di virtualizzazione procedere al cotnrollo su  quali moduli siano stati caricati e nel caso ci servisse reperire informazioni effetuare il load / unload enable/disable. Prima cosa possiamo ottenere la lista dei moduli caricati con il comando:

esxcfg-module -l

ritornerà in output un risultato simile:

vmkernel                 53   10995
procfs                   2    16
vmkapiv1_0_0_0_vmkernel_shim0    32
vmklinux                 14   644
tpm_tis                  1    12
random                   1    32
usb                      4    112
ehci-hcd                 0    36
usb-uhci                 0    24
hid                      0    24
dm                       2    12
nmp                      25   120
vmw_satp_local           7    8
vmw_satp_default_aa      0    8
vmw_psp_lib              8    12
vmw_psp_fixed            7    12
vmw_psp_rr               0    16
vmw_psp_mru              0    12
vmw_psp_fixed_ap         0    12
vmw_satp_alua            0    20
vmw_satp_cx              0    28
libata                   1    92
usb-storage              0    60
vfat                     1    36
mask_path_plugin         0    8
vaai_filter              0    16
vmw_vaaip_emc            0    8
vmkapiv1_0_0_0_nmp_shim  0    8
vtddmar                  0    8
vmci                     4    112
iscsi_trans              3    52
hub                      1    8
netsched                 1    16
e1000e                   0    116
iscsi_linux              0    16
.
.
.
.

sarebbe interessante avere qualche informazioni in più riguardo un determinato modulo, detto fatto…
Poniamo il caso che il modulo da noi interessato sia quello relativo a na delle nostre interfacce di rete (componenti fondamentali), quindi:

esxcfg-module -l | grep 1000

Name                     Used Size (kb)

e1000e                   0    116

recuperiamo le informazioni sull’abilitazione del modulo e opzioni  (se presenti):

esxcfg-module -g e1000e

e1000e enabled = 1 options = ''

possiamo inoltre recuperare anche altre tipologie di informazioni quali  il path fisico ove si trova il modulo, Parameters ( che contiene una corposa  lista di informazioni tecniche):

esxcfg-module -i e1000e
esxcfg-module module information
 input file: /usr/lib/vmware/vmkmod/e1000e.o
 License: GPL
 Version:
 Name-space:
 Required name-spaces:
  com.vmware.vmkapi@v1_1_0_0
 Parameters:
  IntMode: array of int
   Interrupt Mode
  InterruptThrottleRate: array of int
   Interrupt Throttling Rate
  KumeranLockLoss: array of int
   Enable Kumeran lock loss workaround
  RxAbsIntDelay: array of int
   Receive Absolute Interrupt Delay
  RxIntDelay: array of int
   Receive Interrupt Delay
  SmartPowerDownEnable: array of int
   Enable PHY smart power down
  TxAbsIntDelay: array of int
   Transmit Absolute Interrupt Delay
  TxIntDelay: array of int
   Transmit Interrupt Delay
  WriteProtectNVM: array of int
   Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]
  copybreak: uint
   Maximum size of packet that is copied to a new buffer on receive
  heap_initial: int
   Initial heap size allocated for the driver.
  heap_max: int
   Maximum attainable heap size for the driver.
  skb_heap_initial: int
   Initial private socket buffer heap size allocated for the driver.
  skb_heap_max: int
   Maximum attainable private socket buffer heap size for the driver.

Abilitare un modulo in fase di startup

esxcfg-module -e e1000e

Unload di un modulo:

esxcfg-module -u e1000e

Creare alias per un modulo

Un cosa interessante (forse comoda) quando si gestiscono tanti server di virtualizzazione con HW differente in cui ovviamente  le problematiche sono molteplici potrebbe essere la creazione di  un alias per un determinato nome modulo, ovvero come detto prima il modulo e1000e è il modulo della scheda master del server ESXi, potrei volere avere un nome più facile da ricordare e da ricercare del tipo scheda_rete_master o master_nic, lo si fa così:

esxcfg-module -m master_nic e1000e

ricerchiamola

esxcfg-module -l | grep nic
master_nic               0    116

esxcfg-module -l | grep 1000
e1000e                   0    116

abbiamo così mostrato un scenario potenzialmente reale di utilizzo di questo comando molto interessante per tutti coloro che per lavoro o diletto si trovano in situazioni di VMware Technical Support.

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie