How to List LUNs in Oracle VM Server for SPARC (LDOMs)

A dica de hoje é simples, mas pode ser muito útil para quem precisa verificar as LUNs e SVNs utilizadas pelas LDOMs em ambientes SPARC Solaris.
Criei os scripts abaixo para facilitar o mapeamento de informações de discos e LUNs usadas no parque de VMs (LDOMs) que administro. Com eles, é possível ter uma visão rápida e organizada dos recursos de armazenamento alocados para cada domínio lógico, o que agiliza bastante o processo de inventário e troubleshooting.

Listar discos da ldom:

#!/bin/bash
SERVER_NAME=$1
if [ -z "$SERVER_NAME" ]; then
    echo "---------------------------------------------------"
    read -p "Digite o nome do servidor (LDOM): " SERVER_NAME
    echo "---------------------------------------------------"
fi
for disco in $(ldm list -o disk ${SERVER_NAME} | awk 'NR>1 {print $1}'); do
    caminho_fisico=$(ldm list-services -p | grep "$disco" | grep "dev=" | sed 's/.*dev=//;s/|.*//' | head -n 1)

    if [ ! -z "$caminho_fisico" ]; then
        echo "Volume: $disco -> Path: $caminho_fisico"
        sanlun lun show -d "$caminho_fisico"
    else
        echo "Caminho físico não encontrado para o volume: $disco"
    fi
done

Executando:

root@m7-1-control:~# ./listar_discos.sh
---------------------------------------------------
Digite o nome do servidor (LDOM): srv326v
---------------------------------------------------
Caminho físico não encontrado para o volume: srv326v
Caminho físico não encontrado para o volume: DISK
Caminho físico não encontrado para o volume: NAME
Caminho físico não encontrado para o volume: vdisk58
Caminho físico não encontrado para o volume: vdisk59
Caminho físico não encontrado para o volume: vdisk60
Caminho físico não encontrado para o volume: vdisk61
Caminho físico não encontrado para o volume: vdisk62
Volume: srv326boot02 -> Path: /dev/rdsk/c0t600A098038304254522B4B535164766Ed0s2
controller(7mode/E-Series)/                                          device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                           filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------------
svmBootBin                    /vol/vol01Srv326vBoot/lun01Srv326vBoot /dev/rdsk/c0t600A098038304254522B4B535164766Ed0s2 qlc3       FCP        100g    cDOT
Volume: lun01Srv326vRoot -> Path: /dev/rdsk/c0t600A09803830425455244B554544744Dd0s2
controller(7mode/E-Series)/                                          device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                           filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------------
svmBootBin                    /vol/vol01Srv326vRoot/lun01Srv326vRoot /dev/rdsk/c0t600A09803830425455244B554544744Dd0s2 qlc3       FCP        100g    cDOT
Volume: lun01OclSigepatArch -> Path: /dev/rdsk/c0t600A098038304254522B4B5351655A4Cd0s2
controller(7mode/E-Series)/                                                device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                                 filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------------------
svmOclLfePRD01                /vol/vol01OclSigepatArch/lun01OclSigepatArch /dev/rdsk/c0t600A098038304254522B4B5351655A4Cd0s2 qlc11      FCP        100g    cDOT
Volume: lun01ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A35d0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol01ORAPRD03/lun01ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A35d0s2 qlc10      FCP        2t      cDOT
Volume: lun02ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A36d0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol02ORAPRD03/lun02ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A36d0s2 qlc10      FCP        2t      cDOT
Volume: lun03ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A37d0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol03ORAPRD03/lun03ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A37d0s2 qlc10      FCP        2t      cDOT
Volume: lun04ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A38d0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol04ORAPRD03/lun04ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A38d0s2 qlc10      FCP        2t      cDOT
Volume: lun05ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A39d0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol05ORAPRD03/lun05ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A39d0s2 qlc10      FCP        2t      cDOT
Volume: lun06ORAPRD03 -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A2Dd0s2
controller(7mode/E-Series)/                                    device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                     filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol06ORAPRD03/lun06ORAPRD03 /dev/rdsk/c0t600A0980383139476F5D573375585A2Dd0s2 qlc10      FCP        2t      cDOT
Volume: lun7ORAPRD03RECO -> Path: /dev/rdsk/c0t600A098038313947702B5677637A7464d0s2
controller(7mode/E-Series)/                                          device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                           filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol7ORAPRD03RECO/lun7ORAPRD03RECO /dev/rdsk/c0t600A098038313947702B5677637A7464d0s2 qlc10      FCP        1t      cDOT
Volume: lun8ORAPRD03RECO -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A4Cd0s2
controller(7mode/E-Series)/                                          device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                           filename                                          adapter    protocol   size    product
---------------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol8ORAPRD03RECO/lun8ORAPRD03RECO /dev/rdsk/c0t600A0980383139476F5D573375585A4Cd0s2 qlc10      FCP        1t      cDOT
Volume: lun9ORAPRD03ASM -> Path: /dev/rdsk/c0t600A098038313947702B5677637A7465d0s2
controller(7mode/E-Series)/                                        device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                         filename                                          adapter    protocol   size    product
-------------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/vol9ORAPRD03ASM/lun9ORAPRD03ASM /dev/rdsk/c0t600A098038313947702B5677637A7465d0s2 qlc10      FCP        20g     cDOT
Volume: lun10ORAPRD03RITO -> Path: /dev/rdsk/c0t600A098038313947702B5677637A7468d0s2
controller(7mode/E-Series)/                                            device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                             filename                                          adapter    protocol   size    product
-----------------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/Vol10ORAPRD03RITO/lun10ORAPRD03RITO /dev/rdsk/c0t600A098038313947702B5677637A7468d0s2 qlc10      FCP        500g    cDOT
Volume: lun11ORAPRD03RITO -> Path: /dev/rdsk/c0t600A0980383139476F5D573375585A4Dd0s2
controller(7mode/E-Series)/                                            device                                            host                  lun
vserver(cDOT/FlashRay)        lun-pathname                             filename                                          adapter    protocol   size    product
-----------------------------------------------------------------------------------------------------------------------------------------------------------
svm_oraprd03                  /vol/Vol11ORAPRD03RITO/lun11ORAPRD03RITO /dev/rdsk/c0t600A0980383139476F5D573375585A4Dd0s2 qlc10      FCP        500g    cDOT

Listar SVN, identificador único utilizado para reconhecer e rastrear volumes de armazenamento (LUNs) entre o servidor e o storage da ldom:

#!/bin/bash
SERVER_NAME=$1
if [ -z "$SERVER_NAME" ]; then
    echo "---------------------------------------------------"
    read -p "Digite o nome do servidor (LDOM): " SERVER_NAME
    echo "---------------------------------------------------"
fi
for disco in $(ldm list -o disk ${SERVER_NAME} | awk 'NR>1 {print $1}'); do
    caminho_fisico=$(ldm list-services -p | grep "$disco" | grep "dev=" | sed 's/.*dev=//;s/|.*//' | head -n 1)
    if [ ! -z "$caminho_fisico" ]; then
        svm_nome=$(sanlun lun show -d "$caminho_fisico" | awk '/^-----/ {getline; print $1}')
        if [ ! -z "$svm_nome" ]; then
             echo "Volume: $disco -> SVM: $svm_nome"
        else
             echo "Volume: $disco -> SVM: Não identificado (verificar output manual)"
        fi
    else
        echo "Caminho físico não encontrado para o volume: $disco"
    fi
done

Executando:

root@m7-1-control:~# ./listar_discos_svn.sh
---------------------------------------------------
Digite o nome do servidor (LDOM): srv326v
---------------------------------------------------
Caminho físico não encontrado para o volume: srv326v
Caminho físico não encontrado para o volume: DISK
Caminho físico não encontrado para o volume: NAME
Caminho físico não encontrado para o volume: vdisk58
Caminho físico não encontrado para o volume: vdisk59
Caminho físico não encontrado para o volume: vdisk60
Caminho físico não encontrado para o volume: vdisk61
Caminho físico não encontrado para o volume: vdisk62
Volume: srv326boot02 -> SVM: svmBootBin
Volume: lun01Srv326vRoot -> SVM: svmBootBin
Volume: lun01OclSigepatArch -> SVM: svmOclLfePRD01
Volume: lun01ORAPRD03 -> SVM: svm_oraprd03
Volume: lun02ORAPRD03 -> SVM: svm_oraprd03
Volume: lun03ORAPRD03 -> SVM: svm_oraprd03
Volume: lun04ORAPRD03 -> SVM: svm_oraprd03
Volume: lun05ORAPRD03 -> SVM: svm_oraprd03
Volume: lun06ORAPRD03 -> SVM: svm_oraprd03
Volume: lun7ORAPRD03RECO -> SVM: svm_oraprd03
Volume: lun8ORAPRD03RECO -> SVM: svm_oraprd03
Volume: lun9ORAPRD03ASM -> SVM: svm_oraprd03
Volume: lun10ORAPRD03RITO -> SVM: svm_oraprd03
Volume: lun11ORAPRD03RITO -> SVM: svm_oraprd03
search previous next tag category expand menu location phone mail time cart zoom edit close