Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

martes, 15 de agosto de 2023

BUG 35280225 - libdiskmgt inuse_vxvm() falsely reports disk is part of a VxVM volume

Escenario:
- pdom nombre m8pdom02 SRU (Oracle Solaris 11.4.59.144.2).
- ldom nombre ldom08 SRU (Oracle Solaris 11.4.56.138.2).
- System Configuration:  Oracle Corporation  sun4v SPARC M8-8

Descripcion de la Tarea:
Tenia que quitar el zpool "dump" y generar un nuevo zpool "dump1" con un disco nuevo de mayor tamaño
En uno de los pasos me encontre con un BUG al querer agregar un disco al zpool.

Problema: 

BUG 35280225 - libdiskmgt inuse_vxvm() falsely reports disk is part of a VxVM volume

Solucion :
- Fix has been integrated in to the Solaris development trunk build version that is tentatively scheduled to
  be branched from and released as Solaris 11.4 SRU 60 in mid to late August 2023.
- In the interim use the workaround to disable in use checking by the Solaris disk management library
  with NOINUSE_CHECK=1.


Paso a Paso :
en el pdom ,
root@m8pdom02:# zfs create -V300gb ldoms/ldom08_dump2
root@m8pdom02:# ldm add-vdsdev /dev/zvol/dsk/ldoms/ldom08_dump2 ldom08_dump2@primary-vds0
root@m8pdom02:# ldm add-vdisk dump2 ldom08_dump2@primary-vds0 ldom08
en el ldom

chequee con el comando format, cual era el nombre del disco que asigne al ldom y es c1d2
 c1d2 <SUN-DiskImage-300GB cyl 8531 alt 2 hd 96 sec 768>
          /virtual-devices@100/channel-devices@200/disk@2

Cuando quiero crear el zpool dump1 con el disco c1d2 me da el error siguiente y es donde aparece el BUG
root@ldom08:M8:~# zpool create dump1 c1d2
vdev verification failed: use -f to override the following errors:
/dev/dsk/c1d2s0 is part of a VxVM volume.
/dev/dsk/c1d2s1 is part of a VxVM volume.
/dev/dsk/c1d2s2 is part of a VxVM volume.
/dev/dsk/c1d2s3 is part of a VxVM volume.
/dev/dsk/c1d2s4 is part of a VxVM volume.
/dev/dsk/c1d2s5 is part of a VxVM volume.
/dev/dsk/c1d2s6 is part of a VxVM volume.
/dev/dsk/c1d2s7 is part of a VxVM volume.
Unable to build pool from specified devices: device already in use
root@ldom08:M8:~#
##### Aca aplico la Solucion y me deja crear el zpool
root@ldom08:M8:~# NOINUSE_CHECK=1 zpool create dump1 c1d2
root@ldom08:M8:~# zpool status dump1
    pool: dump1
      id: 17187728778697848574
   state: ONLINE
    scan: none requested
  config:

        NAME    STATE      READ WRITE CKSUM
        dump1   ONLINE        0     0     0
          c1d2  ONLINE        0     0     0

  errors: No known data errors
root@ldom08a:M8:~#
root@ldom08a:M8:# zfs create -V270gb dump1/dump1
root@ldom08a:M8:# zfs list dump1
NAME   USED  AVAIL  REFER  MOUNTPOINT
dump1  279G  14.8G   288K  /dump1
root@ldom08a:M8:#
##### ACA tambien aparece el BUG, cuando quiero usar el dumpadm
root@ldom08a:M8:# dumpadm -d /dev/zvol/dsk/dump1/dump1
dumpadm: /dev/zvol/dsk/dump1/dump1 is part of a VxVM volume.
root@ldom08a:M8:#
### ACA vuelvo a aplicar la solucion
root@ldom08a:M8:# NOINUSE_CHECK=1 dumpadm -d /dev/zvol/dsk/dump1/dump1

Dump content      : kernel without ZFS metadata
Dump device       : /dev/zvol/dsk/dump1/dump1 (dedicated)
Savecore directory: /var/crash
Savecore enabled  : no
Save compressed   : on
Deferred Dump     : on
root@ldom08a:M8:#
root@ldom08a:M8:# zfs destroy dump/dump
root@ldom08a:M8:# zfs get volsize dump1/dump1
NAME         PROPERTY  VALUE  SOURCE
dump1/dump1  volsize   270G   local
root@ldom08a:M8:#

root@ldom08a:M8:~# zpool destroy dump

En el pdom
### ACA me encuentro con otro error y es que realmente lo tiene tomao el VERITAS, con el multipath
root@m8pdom02:# ldm list-constraints ldom08|grep dump1
    dump1        ldom08_dump1@primary-vds0      1
root@m8pdom02:# ldm rm-vdisk dump1 ldom08
Guest LDom returned the following reason for failing the operation:

   Resource            Information
--------------  -------------------------
/dev/dsk/c1d1   Device being used by VxVM
VIO operation failed because device is being used in LDom ldom08
Failed to remove vdisk instance
root@m8pdom02:#
Lo tuvimos que excluir del veritas dentro del ldom

root@ldom08a:M8:~# vxdisk list
DEVICE          TYPE            DISK         GROUP        STATUS
c1d0         auto:ZFS        -            -            ZFS
c1d1         auto:ZFS        -           -            ZFS    <<---- quiero sacar este disco
hitachi_vspg1k0_360a auto:cdsdisk    SSD001       TEST1        online thinrclm
hitachi_vspg1k0_360b auto:cdsdisk    SSD002       TEST1        online thinrclm
hitachi_vspg1k0_360c auto:cdsdisk    SSD003       TEST2        online thinrclm
root@ldom08a:M8:~#
root@ldom08a:M8:~# vxdisk rm c1d1
root@ldom08a:M8:~# vxdisk list
DEVICE          TYPE            DISK         GROUP        STATUS
c1d0         auto:ZFS        -            -            ZFS
hitachi_vspg1k0_360a auto:cdsdisk    SSD001       TEST1        online thinrclm
hitachi_vspg1k0_360b auto:cdsdisk    SSD002       TEST1        online thinrclm
hitachi_vspg1k0_360c auto:cdsdisk    SSD003       TEST2        online thinrclm
root@ldom08a:M8:~#
root@ldom08a:M8:~# vxdmpadm getsubpaths
NAME         STATE[A]   PATH-TYPE[M] DMPNODENAME  ENCLR-NAME   CTLR           ATTRS      PRIORITY
=================================================================================================
c2t50060E800750BC62d0 ENABLED(A)   -          hitachi_vspg1k0_360a hitachi_vspg1k0 c2              -         -
c3t50060E800750BC72d0 ENABLED(A)   -          hitachi_vspg1k0_360a hitachi_vspg1k0 c3              -         -
c4t50060E800750BC64d0 ENABLED(A)   -          hitachi_vspg1k0_360a hitachi_vspg1k0 c4              -         -
c5t50060E800750BC74d0 ENABLED(A)   -          hitachi_vspg1k0_360a hitachi_vspg1k0 c5              -         -
c2t50060E800750BC62d1 ENABLED(A)   -          hitachi_vspg1k0_360b hitachi_vspg1k0 c2              -         -
c3t50060E800750BC72d1 ENABLED(A)   -          hitachi_vspg1k0_360b hitachi_vspg1k0 c3              -         -
c4t50060E800750BC64d1 ENABLED(A)   -          hitachi_vspg1k0_360b hitachi_vspg1k0 c4              -         -
c5t50060E800750BC74d1 ENABLED(A)   -          hitachi_vspg1k0_360b hitachi_vspg1k0 c5              -         -
c2t50060E800750BC62d2 ENABLED(A)   -          hitachi_vspg1k0_360c hitachi_vspg1k0 c2              -         -
c3t50060E800750BC72d2 ENABLED(A)   -          hitachi_vspg1k0_360c hitachi_vspg1k0 c3              -         -
c4t50060E800750BC64d2 ENABLED(A)   -          hitachi_vspg1k0_360c hitachi_vspg1k0 c4              -         -
c5t50060E800750BC74d2 ENABLED(A)   -          hitachi_vspg1k0_360c hitachi_vspg1k0 c5              -         -
c1d0         ENABLED(A)   -          c1d0         other_disks  c1              -         -
c1d1         ENABLED(A)   -          c1d1         other_disks  c1              -         -
root@ldom08a:M8:~# vxdmpadm exclude path=c1d1

Ahora si, en el pdom
root@m8pdom02:# ldm rm-vdisk dump1 ldom08
root@m8pdom02:# ldm rm-vdsdev ldom08_dump1@primary-vds0
root@m8pdom02:# zfs list|grep ldom08
ldoms/ldom08_dump1                103G   1.9T   800M  -
ldoms/ldom08_dump2                309G   2.1T  47.5M  -
ldoms/ldom08_vol1                 155G  1.85T   101G  -

root@m8pdom02:# zfs destroy ldoms/ldom08_dump1
root@m8pdom02:# zfs list|grep ldom08
ldoms/ldom08_dump2                309G   2.2T  47.5M  -
ldoms/ldom08_vol1                 155G  1.95T   101G  -
ldoms/ldom08_vol1.old             155G  2.04T  10.4G  -
root@m8pdom02:#

jueves, 27 de julio de 2023

Cear una virtual machine, en un X8

 La finalidad es Crear  una virtual machine, en un server X8-2L .

Ambiente:  X8-2L, con Oracle Linux 9.2 cuyo dominio principal se llama x8dom1

Estos son los pasos para crear una maquina virtual  de nombre Linux1, con 65gb de ram, 8 vcpu, modo bridge , con la vlan 1510 usando de instalacion un Oracle 9.2

Desde el x8dom1 ejecutar:

virt-install --name Linux1 --memory 65536 --vcpus 8 --graphics vnc,listen=0.0.0.0,password=Cerv3z4 --disk size=50 --network bridge=BRIDGE,type=direct,source=br1510 --location /home/isos/OracleLinux-R9-U2-x86_64-dvd.iso --osinfo ol9.2

 Para ver cuantas vm instaladas,  se ejecuta :

# virsh list
 Id   Name    State
-----------------------
 2    Linux1   running
 5    Linux2  running
 6    Linux3   running

Para stopear una vm 

# virsh shutdown nombredelaVM
** para que el shutdown funcione correctamente, los agentes de apagado tienen que estar instalados.

La otra forma de stopearla si no estan los agentes instalados es

# virsh destroy  nombredelaVM 

* esto detiene la vm en forma abrupta, como si fuese un corte de energia.
 

virsh pool-list     # Listar pools de almacenamiento
virsh vol-list      # Listar volúmenes de almacenamiento

Una vez creada la vm e instalado el linux dentro de ellas, se debe instalar los agentes de apagado
sudo dnf install acpid qemu-guest-agent
Habilita y arranca los agentes de apagado: Una vez que los agentes de apagado estén instalados, hay que habilitarlos y arrancarlos en la máquina virtual.Ejecutar los siguientes comandos dentro de la máquina virtual:
Para acpid:
sudo systemctl enable acpid
sudo systemctl start acpid

Para qemu-guest-agent:
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent

Verificar la comunicación con el hipervisor: Para asegurar de que los agentes de apagado están funcionando correctamente y se pueden comunicar con el hipervisor  ejecutar el siguiente comando en la máquina virtual :
sudo systemctl status qemu-guest-agent
Debería mostrar que el servicio está activo y en ejecución sin errores.
Una vez que hayamos instalado y configurado los agentes de apagado en las máquinas virtuales,se puede usar el comando "virsh shutdown" en el host de KVM para apagar o reiniciar las máquinas virtuales de forma adecuada, lo que permitirá que se realice un apagado o reinicio limpio de las mismas

Para conectarme con vncviewer a los equipos, puedo consultar con el comando

# virsh domdisplay --type vnc Linux1
vnc://localhost:0
#

# virsh domdisplay --type vnc Linux2
vnc://localhost:1
#

# virsh domdisplay --type vnc Linux3
vnc://localhost:2
#

O el comando 

# virsh vncdisplay Linux1

:0

# virsh vncdisplay Linux2

:1

# virsh vncdisplay Linux3

:2

 

Desde afuera del equipo, podemos conectarnos a la virtual Linux1 asi

#vncviewer x8dom1:0


miércoles, 26 de julio de 2023

Procedimiento uso archiveadm, para copiar un ldom de un equipo a otro

 Finalidad: Tengo que migrar un ldom (llamado ldom03) de un equipo M6-32 a otro equipo M8-32, manteniendo el mismo release de sistema operativo.

A tener en cuenta:

**Como el archiveadm genera un snapshot en el root zfs, verificar que haya suficiente espacio en el rpool del equipo origen.
**Si hay backups en los boot environment, mirarlo con beadm -l y dejar solo el ultimo

*** Ver a lo ultimo de este documento, ya que archiveadm tiene un BUG y puede NO funcionar en alguna version de solaris 11.


**luego ver que este actualizado con el comando pkg refresh solaris 

En mi caso, estaba desactualizado, asi que me copie de un equipo donde tengo los certificados, los archivos cert
parado en milinux, hacer :
cd /root/certs
scp pkg.oracle.com.certificate.pem ldom03:/root/certs/
scp pkg.oracle.com.key.pem ldom03:/root/certs/ 

Ahora parado en ldom03 del equipo M6-32, hacer:

pkg set-publisher -k ~/certs/pkg.oracle.com.key.pem -c ~/certs/pkg.oracle.com.certificate.pem -G "*" -g https://pkg.oracle.com/solaris/support --proxy http://ip_del_proxy:3128 solaris

** el comando de arriba tiene la opcion --proxy ya que desde el servidor no tengo salida directa 


archiveadm create -r --root-only /software/archiveadm/ldom03.uar

Logging to /system/volatile/archive_log.16859

  0% : Beginning archive creation: /software/archiveadm/ldom03.uar
  6% : Executing dataset discovery...
 10% : Dataset discovery complete
 10% : Executing staging capacity check...
 11% : Staging capacity check complete
 15% : Creating zone media: UnifiedArchive [1159acb1-6666-41a4-978b-451e57e642c4]
 53% : CreateZoneMedia: UnifiedArchive [1159acb1-6666-41a4-978b-451e57e642c4] complete
 55% : Preparing archive image...
 73% : Archive image preparation complete
 75% : Beginning archive stream creation...
 93% : Archive stream creation complete
 93% : Beginning archive descriptor creation...
 94% : Archive descriptor creation complete
 95% : Beginning final archive assembly...
100% : Archive assembly complete

 
Con este comando veo la informacion del .uar que acabo de generar

archiveadm info -v /software/archiveadm/ldom03.uar

Con este otro comando genero el booteable en base al .uar que genere anteriormente

archiveadm create-media -f usb -o /software/archiveadm/ldom03.usb /software/archiveadm/ldom03.uar 

Logging to /system/volatile/archive_log.2884

  0% : Beginning media creation...
  5% : Transferring AI source...
 10% : Transfer AI source complete
 11% : Adding archive content...
 20% : Add archive content complete
 28% : Creating USB image...
100% : USB image creation complete

Listo, ahora me llevo ambos archivos (.usb y .uar ) al pdom destino (m8pdom0)

scp /software/archiveadm/ldom03.* root@m8pdom0:/backups/uar

Ahora,  parado en el PDOM del equipo M8-32...voy a generar el ldom03 vacio.

 ldm add-domain ldom03
ldm set-core 4 ldoms03
ldm set-memory 64G ldom03
ldm set-var auto-boot?=false ldom03
ldm add-vnet pvid=1516  vnet0 primary-vsw0 ldom03
ldm add-vdsdev /dev/zvol/dsk/ldoms/ldom03_vol1 ldom03_vol1@primary-vds0
ldm add-vdisk disk0 ldom03_vol1@primary-vds0
** ldm add-vdsdev /dev/zvol/dsk/ldoms/ldom03_dump1 ldom03_dump1@primary-vds0
** ldm add-vdisk dump1 ldom03_dump1@primary-vds0
* este  lo tuvimos que sacar y agregarlo al final de la instalación, porque por default trato de  instalar el sistema operativo en el dump1, asi que lo tuvimos que borrar y volver a lanzar la instalación.
ldm add-io /SYS/CMIOU4/PCIE2/IOVFC.PF0.VF2 ldom03
ldm add-io /SYS/CMIOU5/PCIE2/IOVFC.PF0.VF2 ldom03

ldm add-vdsdev /backups/uar/ldom03.usb ldom03-back@primary-vds0
ldm add-vdisk usb0 ldom03-back@primary-vds0 ldom03

ldm bind ldom03
ldm start ldom03
ldm ls
telnet localhost 5002   ( para conectarnos a este nuevo ldom creado)

se posiciona en OBP , ejecutar

boot usb0

 Remounting root read/write
Probing for device nodes ...
Preparing image for use
Done mounting image
Configuring devices.
Hostname: solaris
Jun  9 14:40:14 svc.startd[12]: svc:/network/rpc/gss:default: Method "/usr/lib/gss/gssd --ccache_patterns=/tmp/krb5cc_%{uid}" failed with exit status 1.
Jun  9 14:40:14 svc.startd[12]: svc:/network/rpc/gss:default: Method "/usr/lib/gss/gssd --ccache_patterns=/tmp/krb5cc_%{uid}" failed with exit status 1.

SUNW-MSG-ID: SMF-8000-YX, TYPE: Defect, VER: 1, SEVERITY: Major
EVENT-TIME: Fri Jun  9 14:40:15 UTC 2023
PLATFORM: unknown, CSN: unknown, HOSTNAME: solaris
SOURCE: software-diagnosis, REV: 0.2
EVENT-ID: e94ad62c-4c48-41f9-8ac6-f06db7ad953b
DESC: Service svc:/network/tnctl:default failed - a start, stop or refresh method failed.
AUTO-RESPONSE: The service has been placed into the maintenance state.
IMPACT: svc:/network/tnctl:default is unavailable.
REC-ACTION: Run 'svcs -xv svc:/network/tnctl:default' to determine the generic reason why the service failed, the location of any logfiles, and a list of other services impacted. Please refer to the associated reference document at http://support.oracle.com/msg/SMF-8000-YX for the latest service procedures and policies regarding this diagnosis.
FRU-LOCATION:
Using the default install manifest for installation.


Auto-installer disabled. Enable the auto-installer service
by running the following command:
    svcadm enable svc:/application/auto-installer:default




solaris console login:

 Ingresar la clave de root , y ejecutar

svcadm enable svc:/application/auto-installer:default
 

Luego que levante el solaris, 

hacer un borrado de las ip , e ipmp viejas
svcadm disable cron
svcadm disable samba

 ipadm create-addr -T static -a 76.234.130.151/25 net0
route -p delete default 76.250.63.1  (borramos ruta vieja)
route -p add default 76.234.130.129
***con estos comandos creamos el dump que no creamos en el procedimiento que comente anteriormente
zpool create dump c1d1
  zpool list
  zfs list
  zfs create -V 18gb dump/dump
  zfs list
 dumpadm
 dumpadm -d /dev/zvol/dsk/dump/dump
  zfs list
    zfs destroy rpool/dump
 zfs list


***** IMPORTANTE --- Existe un BUG en Solaris 11, donde el SRU tiene que ser mas nuevo que el SRU35, sino el archiveadm no genera bien el archivo booteable.

 https://docs.oracle.com/en/virtualization/oracle-vm-server-sparc/ldoms-relnotes/resolved-issues-oracle-solaris-11.4-sru-36-release.html#GUID-BF1DA349-DE53-40D2-A160-526B6A3F230B

Basicamente en ese link, dice:

Resolved Issues in the Oracle Solaris 11.4 SRU 36 Release

31989198

archiveadm create-media -f usb generated file fails to boot using 11.4 SRU 23


*** La opcion para realizar un movimiento de ldom entre equipos que usamos en reemplazo del archiveadm en equipos con el SRU menor a 35, fue con el comando zfs send .